<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Projects | Biswajit Sahoo</title>
    <link>http://localhost:1313/projects/</link>
      <atom:link href="http://localhost:1313/projects/index.xml" rel="self" type="application/rss+xml" />
    <description>Projects</description>
    <generator>HugoBlox Kit (https://hugoblox.com)</generator><language>en-us</language><lastBuildDate>Sun, 19 May 2024 00:00:00 +0000</lastBuildDate>
    <image>
      <url>http://localhost:1313/media/icon_hu_8653216acba6f460.png</url>
      <title>Projects</title>
      <link>http://localhost:1313/projects/</link>
    </image>
    
    <item>
      <title>Data-Driven Remaining Useful Life (RUL) Prediction</title>
      <link>http://localhost:1313/projects/rul_codes_open/</link>
      <pubDate>Sat, 05 Sep 2020 00:00:00 +0000</pubDate>
      <guid>http://localhost:1313/projects/rul_codes_open/</guid>
      <description>&lt;table class=&#34;tfo-notebook-buttons&#34; align=&#34;left&#34;&gt;
  &lt;tr&gt;
  &lt;td align=&#34;left&#34;&gt;
    &lt;iframe src=&#34;https://ghbtns.com/github-btn.html?user=biswajitsahoo1111&amp;repo=rul_codes_open&amp;type=star&amp;count=true&amp;size=large&#34; frameborder=&#34;0&#34; scrolling=&#34;0&#34; width=&#34;170&#34; height=&#34;30&#34; title=&#34;GitHub&#34;&gt;&lt;/iframe&gt;
  &lt;/td&gt;
  &lt;td align=&#34;left&#34; rowspan=&#34;2&#34;&gt;
    &lt;a href=&#34;https://biswajitsahoo1111.github.io/rul_codes_open/&#34;&gt;&lt;img src=&#34;https://www.tensorflow.org/images/GitHub-Mark-32px.png&#34; /&gt;View GitHub Page&lt;/a&gt;
  &lt;/td&gt;
  &lt;!----
  &lt;td align=&#34;center&#34;&gt;
    &lt;a href=&#34;https://github.com/biswajitsahoo1111/rul_codes_open&#34;&gt;&lt;img src=&#34;https://www.tensorflow.org/images/GitHub-Mark-32px.png&#34; /&gt;View source on GitHub&lt;/a&gt;
  &lt;/td&gt;
  ----&gt;
  &lt;td align=&#34;left&#34; rowspan=&#34;2&#34;&gt;
    &lt;a href=&#34;https://codeload.github.com/biswajitsahoo1111/rul_codes_open/zip/master&#34;&gt;&lt;img src=&#34;https://www.tensorflow.org/images/download_logo_32px.png&#34; /&gt;Download all code (.zip)&lt;/a&gt;
  &lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
  &lt;td align=&#34;right&#34;&gt;  
    &lt;iframe src=&#34;https://ghbtns.com/github-btn.html?user=biswajitsahoo1111&amp;repo=rul_codes_open&amp;type=fork&amp;count=true&amp;size=large&#34; frameborder=&#34;0&#34; scrolling=&#34;0&#34; width=&#34;170&#34; height=&#34;30&#34; title=&#34;GitHub&#34; margin-left=&#34;auto&#34; margin-right=&#34;auto&#34;&gt;&lt;/iframe&gt;
  &lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;
&lt;h2 id=&#34;introduction&#34;&gt;Introduction&lt;/h2&gt;
&lt;p&gt;Remaining useful life (RUL) prediction is the study of predicting when something is going to fail, given its present state. The problem has a prophetic charm associated with it. While a soothsayer can make a prediction about almost anything (including RUL of a machine) confidently, many people will not accept the prediction because of its lack of scientific basis. Here, we will try to solve the problem with scientific reasoning.&lt;/p&gt;
&lt;p&gt;A component (or a machine) is said to have failed when it can no longer perform its desired task to the satisfaction of the user. For example, Li-Ion battery of an electric vehicle is said to have failed when it requires frequent recharging to travel a small distance. Similarly, a bearing of a machine is said to have failed, if level of vibration produced at the bearing goes above some acceptable limit. Other examples can be thought of for different applications. The goal then is to predict beforehand when something is going to fail. Knowledge of a component&amp;rsquo;s expected time of failure will help us prepare well for the inevitable. In industrial setting, where any unplanned shutdown of a critical component has huge monetary cost, knowing when a machine is going to fail will result in significant monetary gains.&lt;/p&gt;
&lt;p&gt;There are many techniques developed over the years to predict RUL of a component. All those techniques can be broadly divided into two categories.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Model Based Methods&lt;/li&gt;
&lt;li&gt;Data-Driven Methods&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;In model based methods, we try to formulate a mathematical model of the system under consideration. Then using that model we try to predict RUL of the component. Though model based methods are used in some cases, there are many other applications where formulating a full mathematical model of the system is extremely difficult. In some cases, the underlying physics is so complex that we have to make many simplifying assumptions. Whether the simplifying assumptions are justified or not is determined by collecting real data from the machine. Therefore, it requires extensive domain knowledge and thus is a territory of only a select few who can actually do these things.&lt;/p&gt;
&lt;p&gt;In contrast, in data-driven methods all information about a machine is gained from the data collected from it. With readily available sensors we can collect huge amounts of data for almost any application. By analyzing that data we can get an idea about the condition of the machine. That will help us in making an informed decision about the RUL of the machine. In this process we make no assumptions about the machine. Increasingly, data-driven methods are getting better at making reliable predictions. As the name of the project suggests, we will only focus on data-driven methods for RUL prediction. The problem of RUL prediction is also know as prognosis in some fields. Some people also call it prognostics. We will only use the term RUL prediction. In the beginning, we will mainly focus on predicting RUL of mechanical components. Later we will explore other application areas.&lt;/p&gt;
&lt;h3 id=&#34;aim-of-the-project&#34;&gt;Aim of the project&lt;/h3&gt;
&lt;p&gt;Like my previous project on 
, aim of this project is to produce reproducible results for RUL prediction. RUL prediction is a broad subject that can be applied to many problems such as RUL prediction of Li-Ion batteries, RUL prediction of machinery bearings, RUL prediction of machine tool, etc. We will start with mechanical applications and then gradually move to other applications over time. As our aim is reproducibility, we will use publicly available datasets. Interested readers can download the data and use our code to get exact results as we have obtained. As we will use well known datasets, readers might observe that, in some cases, our results are in fact worse than some reported results elsewhere. Our goal is not to verify someone else&amp;rsquo;s claim. If someone else claims a better result, onus is on them to demonstrate their result. Here, whatever results I have claimed can be reproduced by readers by just running the jupyter notebooks after downloading relevant data.&lt;/p&gt;
&lt;p&gt;This is an ongoing project and modifications and additions of new techniques will be done over time. &lt;strong&gt;Python&lt;/strong&gt; and &lt;strong&gt;R&lt;/strong&gt; are two popular programming languages that are used in machine learning applications. We will use &lt;strong&gt;Python&lt;/strong&gt; to demonstrate our results. At a later stage we might add equivalent &lt;strong&gt;R&lt;/strong&gt; code. To implement deep learning models, we will use &lt;strong&gt;Tensorflow&lt;/strong&gt;.&lt;/p&gt;
&lt;h2 id=&#34;results-using-nasa&#34;&gt;Results using 
&lt;/h2&gt;
&lt;hr&gt;
&lt;p&gt;We will first apply classical machine learning methods (so-called shallow learning methods) to obtain results and then apply deep learning based methods. 
 steps can be found at 
. We will use the same preprocessing steps, with minor changes, in all notebooks. We strongly encourage readers to first go over 
 before using results notebooks. In the table below, we report Root Mean Square Error (RMSE) values. &lt;span style=&#34;color:blue&#34;&gt;Click on the numbers in the table to view corresponding notebooks&lt;/span&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Note on last column of following table&lt;/strong&gt;: The last column specifies the degradation model used in the notebooks. There are two common degradation models that are used for this particular turbofan dataset: Linear degradation model and Piecewise linear degradation model. For more details about both, see 
. When we use piecewise linear degradation model, we have to assume an early RUL value. This is nothing but the value of RUL that is assumed when the component is relatively new. In literature, different people use different early RUL values. In our examples, when we specify an early RUL value, that means that we apply the same early RUL across all 4 datasets.&lt;/p&gt;
&lt;center&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th style=&#34;text-align: center&#34;&gt;Method&lt;/th&gt;
          &lt;th style=&#34;text-align: center&#34;&gt;FD001&lt;/th&gt;
          &lt;th style=&#34;text-align: center&#34;&gt;FD002&lt;/th&gt;
          &lt;th style=&#34;text-align: center&#34;&gt;FD003&lt;/th&gt;
          &lt;th style=&#34;text-align: center&#34;&gt;FD004&lt;/th&gt;
          &lt;th style=&#34;text-align: center&#34;&gt;Degradation Model&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;Gradient Boosting&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;
&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;
&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;
&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;
&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;Piecewise Linear (Early RUL = 125)&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;Random Forest&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;
&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;
&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;
&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;
&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;Piecewise Linear (Early RUL = 125)&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;Support Vector Regression (SVR)&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;
&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;
&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;
&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;
&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;Piecewise Linear (Early RUL: 125 (FD001, FD003), 150 (FD002, FD004))&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;Gradient Boosting&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;
&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;
&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;
&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;
&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;Linear&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;/center&gt;
&lt;h2 id=&#34;enter-deep-learning&#34;&gt;Enter Deep Learning&lt;/h2&gt;
&lt;hr&gt;
&lt;p&gt;In this section, we will apply deep learning to predict RUL of Turbofan dataset. Due to the nondeterministic nature of operations used in deep learning and dependence of libraries like &lt;code&gt;Tensorflow&lt;/code&gt; on computer architecture, readers might obtain slightly different results than those in the notebooks. For reproducibility of our results, we also share the saved models of each notebook. All saved models for Turbofan dataset can be found at this 
. A notebook describing the steps to use the saved models can be found 
.&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th style=&#34;text-align: center&#34;&gt;Method&lt;/th&gt;
          &lt;th style=&#34;text-align: center&#34;&gt;FD001&lt;/th&gt;
          &lt;th style=&#34;text-align: center&#34;&gt;FD002&lt;/th&gt;
          &lt;th style=&#34;text-align: center&#34;&gt;FD003&lt;/th&gt;
          &lt;th style=&#34;text-align: center&#34;&gt;FD004&lt;/th&gt;
          &lt;th style=&#34;text-align: center&#34;&gt;Degradation Model&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;LSTM&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;
&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;
&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;
&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;
&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;Piecewise Linear (Early RUL: 125 (FD001, FD003), 150 (FD002, FD004))&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;1D CNN&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;
&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;
&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;
&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;
&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;Piecewise Linear (Early RUL: 125 (FD001, FD003), 150 (FD002, FD004))&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&#34;attention-based-rul-prediction&#34;&gt;Attention Based RUL Prediction&lt;/h2&gt;
&lt;hr&gt;
&lt;p&gt;What is attention? We recommend 
 of 
 for more details. We provide notebooks that implement GRU based additive attention for RUL prediction. For reproducibility of our results, we share trained weights. All trained weights can be found 
. We also provide 
 describing steps to use trained weights to reproduce exact results as obtained by us.&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th style=&#34;text-align: center&#34;&gt;Method&lt;/th&gt;
          &lt;th style=&#34;text-align: center&#34;&gt;FD001&lt;/th&gt;
          &lt;th style=&#34;text-align: center&#34;&gt;FD002&lt;/th&gt;
          &lt;th style=&#34;text-align: center&#34;&gt;FD003&lt;/th&gt;
          &lt;th style=&#34;text-align: center&#34;&gt;FD004&lt;/th&gt;
          &lt;th style=&#34;text-align: center&#34;&gt;Degradation Model&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;GRU + Additive Attention&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;
&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;
&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;
&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;
&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;Piecewise Linear (Early RUL: 125 (FD001, FD003), 150 (FD002, FD004))&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;(This table will be updated gradually.)&lt;/p&gt;
&lt;h2 id=&#34;frequently-asked-questions-faqs&#34;&gt;
&lt;/h2&gt;
&lt;h2 id=&#34;some-other-related-stuff&#34;&gt;Some other related stuff&lt;/h2&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;hr&gt;
&lt;p&gt;For attribution, cite this project as&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;@misc{Sahoo_Data-Driven_Remaining_Useful_2020,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;author = {Sahoo, Biswajit},
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;doi = {10.5281/zenodo.5890595},
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;month = {9},
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;title = {Data-Driven Remaining Useful Life (RUL) Prediction},
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;url = {https://biswajitsahoo1111.github.io/rul_codes_open/},
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;year = {2020}
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Readers should cite original datasets separately.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Data-Driven Machinery Fault Diagnosis</title>
      <link>http://localhost:1313/projects/cbm_codes_open/</link>
      <pubDate>Thu, 18 Apr 2019 00:00:00 +0000</pubDate>
      <guid>http://localhost:1313/projects/cbm_codes_open/</guid>
      <description>&lt;table class=&#34;tfo-notebook-buttons&#34; align=&#34;left&#34;&gt;
  &lt;tr&gt;
  &lt;td align=&#34;left&#34;&gt;
    &lt;iframe src=&#34;https://ghbtns.com/github-btn.html?user=biswajitsahoo1111&amp;repo=cbm_codes_open&amp;type=star&amp;count=true&amp;size=large&#34; frameborder=&#34;0&#34; scrolling=&#34;0&#34; width=&#34;170&#34; height=&#34;30&#34; title=&#34;GitHub&#34;&gt;&lt;/iframe&gt;
  &lt;/td&gt;
  &lt;td align=&#34;left&#34; rowspan=&#34;2&#34;&gt;
    &lt;a href=&#34;https://biswajitsahoo1111.github.io/cbm_codes_open/&#34;&gt;&lt;img src=&#34;https://www.tensorflow.org/images/GitHub-Mark-32px.png&#34; /&gt;View GitHub Page&lt;/a&gt;
  &lt;/td&gt;
  &lt;!----
  &lt;td align=&#34;center&#34;&gt;
    &lt;a href=&#34;https://github.com/biswajitsahoo1111/cbm_codes_open&#34;&gt;&lt;img src=&#34;https://www.tensorflow.org/images/GitHub-Mark-32px.png&#34; /&gt;View source on GitHub&lt;/a&gt;
  &lt;/td&gt;
  ----&gt;
  &lt;td align=&#34;left&#34; rowspan=&#34;2&#34;&gt;
    &lt;a href=&#34;https://codeload.github.com/biswajitsahoo1111/cbm_codes_open/zip/master&#34;&gt;&lt;img src=&#34;https://www.tensorflow.org/images/download_logo_32px.png&#34; /&gt;Download all code (.zip)&lt;/a&gt;
  &lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
  &lt;td align=&#34;right&#34;&gt;  
    &lt;iframe src=&#34;https://ghbtns.com/github-btn.html?user=biswajitsahoo1111&amp;repo=cbm_codes_open&amp;type=fork&amp;count=true&amp;size=large&#34; frameborder=&#34;0&#34; scrolling=&#34;0&#34; width=&#34;170&#34; height=&#34;30&#34; title=&#34;GitHub&#34; margin-left=&#34;auto&#34; margin-right=&#34;auto&#34;&gt;&lt;/iframe&gt;
  &lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;
&lt;h2 id=&#34;introduction&#34;&gt;Introduction&lt;/h2&gt;
&lt;p&gt;Condition based maintenance (CBM) is the process of doing maintenance only when it is required. Adoption of this maintenance strategy leads to significant monetary gains as it precludes periodic maintenance and reduces unplanned downtime. Another term commonly used for condition based maintenance is predictive maintenance. As the name suggests, in this method we predict in advance when to perform maintenance. Maintenance is required, if fault has already occurred or is imminent. This leads us to the problem of fault diagnosis and prognosis.&lt;/p&gt;
&lt;p&gt;In fault diagnosis, fault has already occurred and our aim is to find what type of fault is there and what is its severity. In fault prognosis, our aim is to predict the time of occurrence of fault in future, given its present state. These two problem are central to condition based maintenance. There are many methods to solve these problems. These methods can be broadly divided into two groups:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Model Based Approaches&lt;/li&gt;
&lt;li&gt;Data-Driven Approaches&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;In model based approach, a complete model of the system is formulated and it is then used for fault diagnosis and prognosis. But this method has several limitations. Firstly, it is a difficult task to accurately model a system. Modeling becomes even more challenging with variations in working conditions. Secondly, we have to formulate different models for different tasks. For example, to diagnose bearing fault and gear fault, we have to formulate two different models. Data-driven methods provide a convenient alternative to these problems.&lt;/p&gt;
&lt;p&gt;In data-driven approach, we use operational data of the machine to design algorithms that are then used for fault diagnosis and prognosis. The operational data may be vibration data, thermal imaging data, acoustic emission data, or something else. These techniques are robust to environmental variations. Accuracy obtained by data-driven methods is also at par and sometimes even better than accuracy obtained by model based approaches. Due to these reasons data-driven methods are becoming increasingly popular at diagnosis and prognosis tasks.&lt;/p&gt;
&lt;h2 id=&#34;aim-of-the-project&#34;&gt;Aim of the project&lt;/h2&gt;
&lt;p&gt;In this project we will apply some of the standard machine learning techniques to publicly available data sets and show their results with code. There are not many publicly available data sets in machinery condition monitoring. So we will manage with those that are publicly available. Unlike machine learning community where almost all data and codes are open, in condition monitoring very few things are open, though some people are gradually making codes open. This project is a step towards that direction, even though a tiny one.&lt;/p&gt;
&lt;p&gt;This is an ongoing project and modifications and additions of new techniques will be done over time. &lt;strong&gt;Python&lt;/strong&gt; and &lt;strong&gt;R&lt;/strong&gt; are two popular programming languages that are used in machine learning applications. We will use those for our demonstrations. &lt;strong&gt;Tensorflow&lt;/strong&gt; will be used for deep learning applications. This page contains results on fault diagnosis only. Results on fault prognosis can be found 
.&lt;/p&gt;
&lt;h2 id=&#34;results-using-case-western-reserve-university-bearing-data&#34;&gt;Results using 
&lt;sup&gt;*&lt;/sup&gt;&lt;/h2&gt;
&lt;hr&gt;
&lt;p&gt;We will first apply classical feature based methods (so-called shallow learning methods) to obtain results and then apply deep learning based methods. In feature based methods, we will extensively use 
 and 
 that are calculated from raw time domain data. Dataset description and 
 steps can be found 
. Steps to 
 are explained in 
. The procedure detailing calculation of wavelet packet energy features can be found at 
 and similar calculations for wavelet packet entropy features can be found at 
. Also see the following two notebooks for computation of wavelet packet features in Python: 
 and 
.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;
 (10 classes, sampling frequency: 48k) (Overall accuracy: &lt;strong&gt;96.5%&lt;/strong&gt;) (
) (
)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
 (10 classes, sampling frequency: 48k) (Overall accuracy: &lt;strong&gt;99.3%&lt;/strong&gt;) (
) (
)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
 (
) (
)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
 (10 classes, sampling frequency: 48k) (Overall accuracy: &lt;strong&gt;99.3%&lt;/strong&gt;) (
) (
)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
 (12 classes, sampling frequency: 12k) (&lt;strong&gt;Achieves 100% test accuracy in one case&lt;/strong&gt;) (
) (
)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
 (10 classes, sampling frequency: 48k) (Overall accuracy: &lt;strong&gt;98.5%&lt;/strong&gt;) (
) (
)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
 (12 classes, sampling frequency: 12k) (Overall accuracy: &lt;strong&gt;99.7%&lt;/strong&gt;) (
) (
)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
 (10 classes, sampling frequency: 48k) (Overall accuracy: &lt;strong&gt;89.8%&lt;/strong&gt;) (
) (
)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
 (12 classes, sampling frequency: 12k) (Overall accuracy: &lt;strong&gt;99.5%&lt;/strong&gt;) (
) (
)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
 (10 classes, sampling frequency: 48k) (Overall accuracy: &lt;strong&gt;96.5%&lt;/strong&gt;) (
) (
)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
 (12 classes, sampling frequency: 12k) (Overall accuracy: &lt;strong&gt;99%&lt;/strong&gt;) (
) (
)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
 (10 classes, sampling frequency: 48k) (Overall accuracy: &lt;strong&gt;89.8%&lt;/strong&gt;) (
) (
)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
 (12 classes, sampling frequency: 12k) (Overall accuracy: &lt;strong&gt;99.5%&lt;/strong&gt;) (
) (
)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
 (10 classes, sampling frequency: 48k) (Overall accuracy: &lt;strong&gt;94.5%&lt;/strong&gt;) (
) (
)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
 (12 classes, sampling frequency: 12k) (Overall accuracy: &lt;strong&gt;99.7%&lt;/strong&gt;) (
) (
)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
 (10 classes, sampling frequency: 48k) (Overall accuracy: &lt;strong&gt;97%&lt;/strong&gt;) (
) (
)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
 (12 classes, sampling frequency: 12k) (Overall accuracy: &lt;strong&gt;100%&lt;/strong&gt;) (
) (
)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
 (10 classes, sampling frequency: 48k) (Overall accuracy: &lt;strong&gt;99%&lt;/strong&gt;) (
) (
)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
 (12 classes, sampling frequency: 12k) (Overall accuracy: &lt;strong&gt;100%&lt;/strong&gt;) (
) (
)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
 (10 classes, sampling frequency: 48k) (Overall accuracy: &lt;strong&gt;98.1%&lt;/strong&gt;) (
) (
)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
 (12 classes, sampling frequency: 12k) (Overall accuracy: &lt;strong&gt;100%&lt;/strong&gt;) (
) (
)&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;sup&gt;*&lt;/sup&gt; This hyperlink points to the actual website of CWRU bearing dataset. Unfortunately, it has been recently observed that the original website remains down most of the time. As the dataset is well known, it can still be found on the internet at different places. Interested readers who want to experiment with this dataset can find it 
 (If it&amp;rsquo;s not down). Actual data are stored in &lt;code&gt;.mat&lt;/code&gt; format. But the data in previous link are first extracted from &lt;code&gt;.mat&lt;/code&gt; format and then individually stored in &lt;code&gt;.csv&lt;/code&gt; format. Readers should first try to download the data from the original website. If that attempt fails, they should explore other options.&lt;/p&gt;
&lt;h2 id=&#34;enter-deep-learning&#34;&gt;Enter Deep Learning&lt;/h2&gt;
&lt;hr&gt;
&lt;p&gt;In this section, we will show results of fault diagnosis task using deep learning on the same Case Western Reserve University bearing dataset. Due to the nondeterministic nature of operations used in deep learning and dependence of libraries like &lt;code&gt;Tensorflow&lt;/code&gt; on computer architecture, readers might obtain slightly different results than those in the notebooks. As a more reliable measure, we report average results of ten iterations. Our models are small enough to permit us to run those that many times in a reasonable amount of time. For reproducibility of our results, we also share the saved models of each notebook. All saved models can be found at 
. A notebook describing the steps to use the saved models can be found 
.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;
 (10 classes, sampling frequency: 48k) (Overall accuracy: &lt;strong&gt;98.7%&lt;/strong&gt;)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
 (10 classes, sampling frequency: 48k) (Overall accuracy: &lt;strong&gt;99.1%&lt;/strong&gt;)&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;(This list will be updated gradually.)&lt;/p&gt;
&lt;h2 id=&#34;frequently-asked-questions-faqs&#34;&gt;
&lt;/h2&gt;
&lt;h2 id=&#34;some-other-related-stuff&#34;&gt;Some other related stuff&lt;/h2&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
 (
)&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;hr&gt;
&lt;p&gt;For attribution, cite this project as&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;@misc{Sahoo_Data-Driven_Machinery_Fault_2019,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;author = {Sahoo, Biswajit},
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;doi = {10.5281/zenodo.5890575},
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;month = {4},
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;title = {Data-Driven Machinery Fault Diagnosis},
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;url = {https://biswajitsahoo1111.github.io/cbm_codes_open/},
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;year = {2019}
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Readers should cite original datasets separately.&lt;/p&gt;
</description>
    </item>
    
  </channel>
</rss>
