<?xml version="1.0" encoding="UTF-8"?><?xml-stylesheet href="/rss-styles.xsl" type="text/xsl"?><rss version="2.0"><channel><title>Tim von Hahn - Blog</title><description>Machine learning research at the intersection of manufacturing and data science</description><link>https://www.tvhahn.com/</link><language>en-us</language><item><title>I Taught Claude to Make Beautiful Charts. Then It Forgot How.</title><link>https://www.tvhahn.com/posts/building-a-claude-code-skill/</link><guid isPermaLink="true">https://www.tvhahn.com/posts/building-a-claude-code-skill/</guid><description>How I built a Claude Code skill for publication-quality matplotlib charts over 50 iterations — and what happened when I automated its improvement.</description><pubDate>Fri, 03 Apr 2026 00:00:00 GMT</pubDate><category>Claude Code</category><category>Skills</category><category>Matplotlib</category><category>Data Visualization</category><category>Automation</category><author>Tim von Hahn</author></item><item><title>PyPHM - Machinery data, made easy</title><link>https://www.tvhahn.com/posts/pyphm/</link><guid isPermaLink="true">https://www.tvhahn.com/posts/pyphm/</guid><description>Why build an open-source package for machinery data?</description><pubDate>Thu, 10 Mar 2022 14:14:56 GMT</pubDate><category>Condition Monitoring</category><category>Data Science</category><author>Tim von Hahn</author></item><item><title>Finding Inspiration in Random Ways</title><link>https://www.tvhahn.com/posts/finding-inspiration-in-random-ways/</link><guid isPermaLink="true">https://www.tvhahn.com/posts/finding-inspiration-in-random-ways/</guid><description>A wellspring of ideas</description><pubDate>Mon, 17 Jan 2022 23:40:00 GMT</pubDate><category>Idea Generation</category><category>Inspiration</category><category>Creativity</category><author>Tim von Hahn</author></item><item><title>Beautiful Plots: The Violin</title><link>https://www.tvhahn.com/posts/beautiful-plots-violin/</link><guid isPermaLink="true">https://www.tvhahn.com/posts/beautiful-plots-violin/</guid><description>Music to my ears... err... eyes? The violin plot is a worthy tool for any data visualization tool box. Let&apos;s build one, in Plotly, as we explore historic birth trends in the USA!</description><pubDate>Tue, 28 Sep 2021 00:00:00 GMT</pubDate><category>Plotly</category><category>Violin Plot</category><category>Data Visualization</category><category>Beautiful Plots</category><category>CDC Birth Data</category><author>Tim von Hahn</author></item><item><title>Using Jupyter Notebooks on a High Performance Computer - Tutorial</title><link>https://www.tvhahn.com/posts/jupyter-hpc/</link><guid isPermaLink="true">https://www.tvhahn.com/posts/jupyter-hpc/</guid><description>Using Jupyter Notebooks in a high performance computing environment is easy! This tutorial will show you how.</description><pubDate>Sun, 20 Jun 2021 19:14:56 GMT</pubDate><category>HPC</category><category>Jupyter Notebook</category><category>Tutorial</category><category>Data Science</category><author>Tim von Hahn</author></item><item><title>Analyzing the Results - Advances in Condition Monitoring, Pt VII</title><link>https://www.tvhahn.com/posts/anomaly-results/</link><guid isPermaLink="true">https://www.tvhahn.com/posts/anomaly-results/</guid><description>We&apos;ve trained the variational autoencoders, and in this post, we see how the models perform in anomaly detection. We check both the input and latent space anomaly detection effectiveness.</description><pubDate>Mon, 31 May 2021 13:29:01 GMT</pubDate><category>Precision Recall Curve</category><category>ROC Curve</category><category>Machine Learning</category><category>Condition Monitoring</category><category>Variational Autoencoder</category><category>TensorFlow</category><category>Anomaly Detection</category><category>Milling</category><author>Tim von Hahn</author></item><item><title>Beautiful Plots: The Lollipop</title><link>https://www.tvhahn.com/posts/beautiful-plots-lollipop/</link><guid isPermaLink="true">https://www.tvhahn.com/posts/beautiful-plots-lollipop/</guid><description>The lollipop chart is great at visualizing differences in variables along a single axis. In this post, we create an elegant lollipop chart, in Matplotlib, to show the differences in model performance.</description><pubDate>Fri, 14 May 2021 01:20:01 GMT</pubDate><category>Matplotlib</category><category>Lollipop Chart</category><category>Data Visualization</category><category>Cleveland Plot</category><category>Beautiful Plots</category><category>Dot Plot</category><author>Tim von Hahn</author></item><item><title>Beautiful Plots: The Decision Boundary</title><link>https://www.tvhahn.com/posts/beautiful-plots-decision-boundary/</link><guid isPermaLink="true">https://www.tvhahn.com/posts/beautiful-plots-decision-boundary/</guid><description>How can we communicate complex concepts using data visualization tools? In this first post -- in a series titled &apos;Beautiful Plots&apos; -- we build an elegant chart demonstrating the decision boundary from a KNN classifier.</description><pubDate>Sat, 24 Apr 2021 02:05:00 GMT</pubDate><category>Matplotlib</category><category>KNN</category><category>Data Visualization</category><category>Decision Boundary</category><category>Beautiful Plots</category><author>Tim von Hahn</author></item><item><title>Building a Variational Autoencoder - Advances in Condition Monitoring, Pt VI</title><link>https://www.tvhahn.com/posts/building-vae/</link><guid isPermaLink="true">https://www.tvhahn.com/posts/building-vae/</guid><description>In this post, we&apos;ll explore the variational autoencoder (VAE) and see how we can build one for use on the UC Berkeley milling data set. A variational autoencoder is more expressive than a regular autoencoder, and this feature can be exploited for anomaly detection.</description><pubDate>Fri, 12 Mar 2021 00:00:00 GMT</pubDate><category>Machine Learning</category><category>Condition Monitoring</category><category>Variational Autoencoder</category><category>TensorFlow</category><category>Anomaly Detection</category><category>Milling</category><author>Tim von Hahn</author></item><item><title>Data Exploration - Advances in Condition Monitoring, Pt V</title><link>https://www.tvhahn.com/posts/milling/</link><guid isPermaLink="true">https://www.tvhahn.com/posts/milling/</guid><description>Data exploration is an important first step in any new data science problem. In this post we introduce a metal machining data set that we&apos;ll use to test anomaly detection methods. We&apos;ll explore the data set, see how it is structured, and do some data visualization.</description><pubDate>Mon, 30 Nov 2020 00:05:01 GMT</pubDate><category>AI</category><category>Machine Learning</category><category>Condition Monitoring</category><category>Data Exploration</category><category>Data Visualization</category><category>Seaborn</category><category>Matplotlib</category><author>Tim von Hahn</author></item><item><title>Anomaly Detection - Advances in Condition Monitoring, Pt IV</title><link>https://www.tvhahn.com/posts/anomaly-detection-with-autoencoders/</link><guid isPermaLink="true">https://www.tvhahn.com/posts/anomaly-detection-with-autoencoders/</guid><description>Machines fail. Anomaly detection, using an autoencoder, can be used to identify failures that have never been seen before.</description><pubDate>Tue, 10 Nov 2020 00:00:00 GMT</pubDate><category>AI</category><category>Machine Learning</category><category>Condition Monitoring</category><category>Autoencoders</category><category>Anomaly Detection</category><author>Tim von Hahn</author></item><item><title>The Case for Feature Engineering - Advances in Condition Monitoring, Pt III</title><link>https://www.tvhahn.com/posts/feature-engineering-examples/</link><guid isPermaLink="true">https://www.tvhahn.com/posts/feature-engineering-examples/</guid><description>Feature engineering can be powerful tool, but it doesn&apos;t have to be complicated. Often, the simple solution is best.</description><pubDate>Sun, 11 Oct 2020 19:14:56 GMT</pubDate><category>Machine Learning</category><category>Condition Monitoring</category><category>Feature Engineering</category><category>Total Harmonic Distortion</category><category>Signal Processing</category><category>Logistic Regression</category><category>Mining Industry</category><category>Mobile Equipment</category><author>Tim von Hahn</author></item><item><title>Data-Driven Methods - Advances in Condition Monitoring, Pt II</title><link>https://www.tvhahn.com/posts/data-driven-methods/</link><guid isPermaLink="true">https://www.tvhahn.com/posts/data-driven-methods/</guid><description>In part two, we give an  overview of the two data-driven approaches in condition monitoring; that is, feature engineering and end-to-end deep learning. Which approach should you use? Well, it all depends...</description><pubDate>Wed, 07 Oct 2020 00:00:00 GMT</pubDate><category>Manufacturing</category><category>Machine Learning</category><category>Condition Monitoring</category><category>Feature Engineering</category><category>End-to-End Deep Learning</category><category>Deep Learning</category><category>Tool Wear</category><author>Tim von Hahn</author></item><item><title>The Business Case - Advances in Condition Monitoring, Pt I</title><link>https://www.tvhahn.com/posts/business-case/</link><guid isPermaLink="true">https://www.tvhahn.com/posts/business-case/</guid><description>Why care about data-driven condition monitoring techniques? In this post, we articulate the business case for using these advanced methods in an industrial environment.</description><pubDate>Tue, 29 Sep 2020 13:29:01 GMT</pubDate><category>Manufacturing</category><category>Machine Learning</category><category>Condition Monitoring</category><author>Tim von Hahn</author></item><item><title>What is School For?</title><link>https://www.tvhahn.com/posts/what-is-school-for/</link><guid isPermaLink="true">https://www.tvhahn.com/posts/what-is-school-for/</guid><description>What is school for?</description><pubDate>Thu, 07 Feb 2019 19:14:56 GMT</pubDate><category>Personal</category><category>Education Reform</category><category>Passion</category><author>Tim von Hahn</author></item></channel></rss>