-
Notifications
You must be signed in to change notification settings - Fork 0
/
index.html
185 lines (154 loc) · 12.2 KB
/
index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
<head>
<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
</head>
<center>
<pre>
<p style="text-align: center; margin-bottom: 0; padding-bottom: 0; font-size: 14px">
<b>Troy Engelhardt</b>
<a href=https://github.com/yortug>GitHub</a> <a href=https://www.linkedin.com/in/troyengelhardt/>LinkedIn</a>
</p>
<hr>
<div style="text-align: center; margin-top: -4em">
<div style="display: inline-block; text-align: left;">
<h1>Work/Projects:</h1>
<a href="cbh_intranet_article/cbh_analyst_to_rpo_article.pdf" style="font-size: 18px;">CBH Intranet Article</a>
- during the 2021/22 WA grain harvest i spent ~10 weeks in Ravensthorpe working as a frontline operator
- this is an article that was posted on the CBH intranet about my work out in the field
- i gained a much deeper knowledge, and appreciation, for how the business operates
- it was challenging at times, but overall it was a great experience!
<a href="https://www.youtube.com/embed/tDG_xzo6Pho" style="font-size: 18px;">CBH Rainfall Chart Generator</a>
- a simple and lightweight visualisation tool i created using javascript & d3.js
- simply upload a correctly formatted CSV and you'll get a sleek "rainfall visualisation" in return
- many parts of the visualisation can be tweaked on the fly (dimensions, colour, smoothing, axes, etc.)
- once happy with the look/feel of the visualisation you can download it as both a .png and .svg
- this tool has produced countless visualisations which have been used all across the CBH business
+ board presentations
+ senior management presentations
+ frontline operator presentations
+ grower engagement presentations
<input type="button" name="rainfall_video_toggle" value="video" onclick="toggle_by_id('rainfall_video_iframe')">
<iframe id="rainfall_video_iframe" style="display: none;" width="896" height="504" src="https://www.youtube.com/embed/tDG_xzo6Pho" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
<a href="https://www.youtube.com/embed/u4nAQ6SJfrM" style="font-size: 18px;">CBH Catcher Tool</a>
- the "Catcher tool" is a bespoke analytics tool i created that has been used across CBH for a couple years now
- this is a crucial tool within the CBH Operations Planning team (my team) as it helps better inform network investment
- this tool gives us a rough idea of the impact that major changes to our supply-chain network might have:
+ how many tonnes will a new site attract?
+ if we change the storage costs at our site, how many tonnes will we lose/gain?
+ where will the tonnes go if we shutdown site-abc?
- it was built in R using the Shiny package, and is hosted on-prem using ShinyProxy
- the road distances necessary to build the catchments are generated using openrouteservice
- the version being shown is two-years old, there have been minor changes since, but i still have plenty of ideas
<input type="button" name="catcher_video_toggle" value="video" onclick="toggle_by_id('catcher_video_iframe')">
<iframe id="catcher_video_iframe" style="display: none;" width="896" height="504" src="https://www.youtube.com/embed/u4nAQ6SJfrM" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
<a href="https://www.youtube.com/embed/-YpEI2zWS9s" style="font-size: 18px;">CBH GraphQL Mockup</a>
- this was a simple proof-of-concept project i worked on to try better understand data driven web-apps
- after seeing what airbnb's visx was capable of, i was inspired to try and learn how i could leverage it
- i used typescript, typegraphql, apollo, typeORM, react and visx - and somehow i made something work
- although the output is simple, all the magic which makes it work took a massive amount of learning
- i come from a R/Python procedural programming background, so understanding APIs is a massive hurdle
- learning within this domain was extremelly enjoyable/satisfying, and i really want to improve these skills
<input type="button" name="graphql_video_toggle" value="video" onclick="toggle_by_id('graphql_video_iframe')">
<iframe id="graphql_video_iframe" style="display: none;" width="896" height="504" src="https://www.youtube.com/embed/-YpEI2zWS9s" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
<a href="alcoa_industry_project/data_fueled_maintenance_in_mining.pdf" style="font-size: 18px;">Alcoa Industry Project</a>
- data fueled maintenance in mining
- this was a project i undertook with Alcoa during my final semester of studying my BSc (data science)
- i used real engine oil sample data taken from actual haul-trucks (CAT789Ds, among others)
- i reproduced the methodology put forwards from a previous published paper on this topic, and then built upon it
- i worked extremely closely with the reliability engineers to ensure my thinking/results made sense
- a set of recommendations based on the analysis were put forwards at the end of the report
- presentation can be found <a href="alcoa_industry_project_presentation/index.html">here</a>
<a href="https://www.youtube.com/embed/hJMYD79oveI" style="font-size: 18px;">Alcoa Mockup Dashboard</a>
- this was a mockup dashboard which i made during my vacation work at Alcoa
- the dashboard was showcased to senior management as a means to showcase the potential of data science in refining
- although the dashboard itself was a mockup, the data being used was and the business problem were both real
- along with creating this dashboard for management, i also audited the predictive model the dashboard was based upon
- (this video has no sound!)
<input type="button" name="mock_dashboard_video_toggle" value="video" onclick="toggle_by_id('mock_dashboard_video_iframe')">
<iframe id="mock_dashboard_video_iframe" style="display: none;" width="896" height="504" src="https://www.youtube.com/embed/hJMYD79oveI" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
<a href="tree_based_outlier_detection/tree_based_outlier_detection.html" style="font-size: 18px;">Tree Based Outlier Detection</a>
- a dive into how tree-based methods for outlier detection work
- mainly concerned with Isolation Forests (IF) and Extended Isolation Forests (EIF)
- use a common dataset (thyroid function) to compare anomaly scoring the two algorithms
+ leveraging sklearn implementation of IF
+ leveraging the author implementation of EIF (and IF)
+ outlier detection accuracy for both methods
+ anomaly scoring regions (ghosting)
+ etc. etc. etc.
- in order to visualise the data PCA was utilised to reduce the dimensionality to 2D
- all plots were designed to be interactive leveraging the Plotly library
- in the future this entire analysis should be completed across a couple other outlier datasets
- presentation can be found <a href="tree_based_outlier_detection_presentation/index.html">here</a>
<a href="data_mining_assignment/data_mining_assignment.html" style="font-size: 18px;">Data Mining Exercise</a>
- given a dataset with a mixture of categorical and numeric variables, with a target class to predict
- have to exercise the data mining skills required to clean and process the data
+ missing data
+ type casting
+ feature scaling
+ feature selections
+ etc. etc. etc.
- after data cleaning & pre-preocessing was completed, numerous classification models were fit
- this was an exercise in truly diving deep into the sklearn framework (previously unexplored)
- many avenues for research and extended reading/experimentation have come out of this exercise
<a href="optimal_portfolio/optimal_portfolio.html" style="font-size: 18px;">Optimal Portfolio S&P 500</a>
- finding the optimal set of stocks to include within an equity portfolio
- restricted to only using companies who're listed on S&P 500
- the project focuses on finding the optimal weights to distribute a hypothetical $10 million across all stocks
- the final portfolio showcases roughly $1 million profit when it was tested over the Jan-2018 to Jul-2018 period
- as we don't have $10 million to spare, (unfortunately) no money was actually thrown down
<a href="predicting_aromaticity/predicting_aromaticity.html" style="font-size: 18px;">Predicting Aromaticity In Diesel Fuels</a>
- predicting the amount of aromaticity (an 'impurity') in diesel fuels using spectroscopy data
- we go through the process of reducing our large feature set using stepwise variable reduction methods
- we then model this relationship starting with simple linear regression, and moving to the multivariate space
- methods of partial least squares and LASSO are also demonstrated
- showcased some basic, static visualisations looking at model assumptions, outliers, leverage, etc.
- you should (hopefully) be able to understand the introduction and conclusion with almost no prior knowledge
<a href="https://github.com/yortug/electoral-campaign" style="font-size: 18px;">Finding an Optimal Campaign Trail</a>
- an assignment used to learn and explore data structures & algorithms
- scraped wikipedia for the coordinates of all Australian voting electorates
- fed these coordinates through GoogleMap's API to find the estimated driving distance & time
- used this data in combination with the 2016 election data to model an optimal campaign route given a set of 'marginal elecorates'
- documentation.pdf file in the repo explains the project in a lot more depth
- implemented a terminal based program which gives you the option to:
+ filter candidates by state, electorate and party
+ search for candidates by name
+ find a set of marginal electorates
+ find an optimal campaign route through marginal electorates
<a href="weather_analysis/weather_analysis.html" style="font-size: 18px;">Perth Weather Analysis</a>
- a basic look at the weather patterns within Perth (using 2016 BOM data)
- heavy use of the python package 'bokeh' to make my visualisations dynamic and interactive
- the project explores the data to provide evidence for the suitability of renewable energy
- looking into questions like; wind or solar? are we in or heading towards a drought?
- unfortunately BOM doesn't have the data available anymore, still should work, just updating it was a challenge
<a href="afl_project/afl_project.html" style="font-size: 18px;">AFL (Australian Football League) Win/Loss Predictions</a>
- a loose attempt at trying to predict AFL wins and losses
- one of my first projects ever attempted, so the data wrangling, exploration and cleaning is rather basic
- somewhat naively apply logistic regression, k-nearest neighbours and decision trees/random forests
- quite a vast emphasis on visualisation (histograms, pie charts, stacked bar plots, etc.)
<a href="drug_dosage/drug_dosage.html" style="font-size: 18px;">Drug Dosage Simulator</a>
- a drug dosage simulation project, one of my first projects within python
- an attempt to find the optimal dosage of two 'drugs'
- really a test in understanding the language; reading & outputting to files, creating shell scripts, etc.
- although the 'drugs' are contrived examples, the absorbtion formula and the working is actually legitimate
<a href="text_scrape/text_scrape.html" style="font-size: 18px;">Website Text-Scrape & NLP Wordcloud</a>
- a project scraping unstructured, untouched text from an infamous image/discussion board
- then processing that data into something in which a word frequency can be calculated
- a wordcloud visualisation was then created to display the most used words within this sample
- very basic, and not too flashy, but it was just a project carried out in the holidays out of boredom
</div>
</div>
<hr>
Last modified: 26 February, 2022
<i>This is a small collection of my work/projects
hope you enjoy and find something useful.</i>
</pre></center>
<script type="text/javascript">
function toggle_by_id(element_id) {
var x = document.getElementById(element_id);
if (x.style.display === "none") {
x.style.display = "block";
} else {
x.style.display = "none";
}
}
</script>