{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "## Using MDH Command Line to Get Data\n", "First, we'll install the Machine Data Hub package\n", "- type `pip install mdh` into your terminal\n", "- type `mdh list` to view the datasets and their ID's\n", "- type `mdh download 9 1` to download the first file of the 9th dataset" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import pandas as pd\n", "import numpy as np" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Data Set: FD001\n", "Train trjectories: 100\n", "Test trajectories: 100\n", "Conditions: ONE (Sea Level)\n", "Fault Modes: ONE (HPC Degradation)\n", "\n", "Data Set: FD002\n", "Train trjectories: 260\n", "Test trajectories: 259\n", "Conditions: SIX \n", "Fault Modes: ONE (HPC Degradation)\n", "\n", "Data Set: FD003\n", "Train trjectories: 100\n", "Test trajectories: 100\n", "Conditions: ONE (Sea Level)\n", "Fault Modes: TWO (HPC Degradation, Fan Degradation)\n", "\n", "Data Set: FD004\n", "Train trjectories: 248\n", "Test trajectories: 249\n", "Conditions: SIX \n", "Fault Modes: TWO (HPC Degradation, Fan Degradation)\n", "\n", "\n", "\n", "Experimental Scenario\n", "\n", "Data sets consists of multiple multivariate time series. Each data set is further divided into training and test subsets. Each time series is from a different engine i.e., the data can be considered to be from a fleet of engines of the same type. Each engine starts with different degrees of initial wear and manufacturing variation which is unknown to the user. This wear and variation is considered normal, i.e., it is not considered a fault condition. There are three operational settings that have a substantial effect on engine performance. These settings are also included in the data. The data is contaminated with sensor noise.\n", "\n", "The engine is operating normally at the start of each time series, and develops a fault at some point during the series. In the training set, the fault grows in magnitude until system failure. In the test set, the time series ends some time prior to system failure. The objective of the competition is to predict the number of remaining operational cycles before failure in the test set, i.e., the number of operational cycles after the last cycle that the engine will continue to operate. Also provided a vector of true Remaining Useful Life (RUL) values for the test data.\n", "\n", "The data are provided as a zip-compressed text file with 26 columns of numbers, separated by spaces. Each row is a snapshot of data taken during a single operational cycle, each column is a different variable. The columns correspond to:\n", "1)\tunit number\n", "2)\ttime, in cycles\n", "3)\toperational setting 1\n", "4)\toperational setting 2\n", "5)\toperational setting 3\n", "6)\tsensor measurement 1\n", "7)\tsensor measurement 2\n", "...\n", "26)\tsensor measurement 26\n", "\n", "\n", "Reference: A. Saxena, K. Goebel, D. Simon, and N. Eklund, Damage Propagation Modeling for Aircraft Engine Run-to-Failure Simulation, in the Proceedings of the Ist International Conference on Prognostics and Health Management (PHM08), Denver CO, Oct 2008.\n", "\n" ] } ], "source": [ "f = open('CMAPSSData/readme.txt', 'r', errors='ignore')\n", "file_contents = f.read()\n", "print(file_contents)\n", "f.close()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Training Data" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "ename": "NameError", "evalue": "name 'pd' is not defined", "output_type": "error", "traceback": [ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)", "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mtrain\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mpd\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mread_csv\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'CMAPSSData/train_FD001.txt'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0msep\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m\" \"\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mheader\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mNone\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 2\u001b[0m \u001b[0mtrain\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcolumns\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m[\u001b[0m\u001b[0;34m'unit'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m'cycle'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m'op1'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m'op2'\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m'op3'\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m'sm1'\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m'sm2'\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m'sm3'\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m'sm4'\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m'sm5'\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m'sm6'\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m'sm7'\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m'sm8'\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m'sm9'\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m'sm10'\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m'sm11'\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m'sm12'\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m'sm13'\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m'sm14'\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m'sm15'\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m'sm16'\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m'sm17'\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m'sm18'\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m'sm19'\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m'sm20'\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m'sm21'\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m'sm22'\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m'sm23'\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 3\u001b[0m \u001b[0mtrain\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mtrain\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0miloc\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m:\u001b[0m\u001b[0;36m26\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 4\u001b[0m \u001b[0munits\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mtrain\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'unit'\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 5\u001b[0m \u001b[0mtrain\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mhead\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;31mNameError\u001b[0m: name 'pd' is not defined" ] } ], "source": [ "train = pd.read_csv('CMAPSSData/train_FD001.txt', sep=\" \", header=None)\n", "train.columns = ['unit', 'cycle', 'op1', 'op2','op3','sm1','sm2','sm3','sm4','sm5','sm6','sm7','sm8','sm9','sm10','sm11','sm12','sm13','sm14','sm15','sm16','sm17','sm18','sm19','sm20','sm21','sm22','sm23']\n", "train = train.iloc[:, :26]\n", "units = train['unit']" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Remaining useful life for each unit" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "ename": "NameError", "evalue": "name 'pd' is not defined", "output_type": "error", "traceback": [ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)", "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mRUL\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mpd\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mread_csv\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'CMAPSSData/RUL_FD001.txt'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mheader\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mNone\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 2\u001b[0m \u001b[0mRUL\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcolumns\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m[\u001b[0m\u001b[0;34m'RUL'\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;31mNameError\u001b[0m: name 'pd' is not defined" ] } ], "source": [ "RUL = pd.read_csv('CMAPSSData/RUL_FD001.txt', header=None)\n", "RUL.columns = ['RUL']" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Test Data" ] }, { "cell_type": "code", "execution_count": 49, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
unitcycleop1op2op3sm1sm2sm3sm4sm5...sm12sm13sm14sm15sm16sm17sm18sm19sm20sm21
0110.00230.0003100.0518.67643.021585.291398.2114.62...521.722388.038125.558.40520.033922388100.038.8623.3735
112-0.0027-0.0003100.0518.67641.711588.451395.4214.62...522.162388.068139.628.38030.033932388100.039.0223.3916
2130.00030.0001100.0518.67642.461586.941401.3414.62...521.972388.038130.108.44410.033932388100.039.0823.4166
3140.00420.0000100.0518.67642.441584.121406.4214.62...521.382388.058132.908.39170.033912388100.039.0023.3737
4150.00140.0000100.0518.67642.511587.191401.9214.62...522.152388.038129.548.40310.033902388100.038.9923.4130
\n", "

5 rows × 26 columns

\n", "
" ], "text/plain": [ " unit cycle op1 op2 op3 sm1 sm2 sm3 sm4 \\\n", "0 1 1 0.0023 0.0003 100.0 518.67 643.02 1585.29 1398.21 \n", "1 1 2 -0.0027 -0.0003 100.0 518.67 641.71 1588.45 1395.42 \n", "2 1 3 0.0003 0.0001 100.0 518.67 642.46 1586.94 1401.34 \n", "3 1 4 0.0042 0.0000 100.0 518.67 642.44 1584.12 1406.42 \n", "4 1 5 0.0014 0.0000 100.0 518.67 642.51 1587.19 1401.92 \n", "\n", " sm5 ... sm12 sm13 sm14 sm15 sm16 sm17 sm18 sm19 \\\n", "0 14.62 ... 521.72 2388.03 8125.55 8.4052 0.03 392 2388 100.0 \n", "1 14.62 ... 522.16 2388.06 8139.62 8.3803 0.03 393 2388 100.0 \n", "2 14.62 ... 521.97 2388.03 8130.10 8.4441 0.03 393 2388 100.0 \n", "3 14.62 ... 521.38 2388.05 8132.90 8.3917 0.03 391 2388 100.0 \n", "4 14.62 ... 522.15 2388.03 8129.54 8.4031 0.03 390 2388 100.0 \n", "\n", " sm20 sm21 \n", "0 38.86 23.3735 \n", "1 39.02 23.3916 \n", "2 39.08 23.4166 \n", "3 39.00 23.3737 \n", "4 38.99 23.4130 \n", "\n", "[5 rows x 26 columns]" ] }, "execution_count": 49, "metadata": {}, "output_type": "execute_result" } ], "source": [ "test = pd.read_csv('CMAPSSData/test_FD001.txt', sep=\" \", header=None)\n", "cols = pd.DataFrame(test.columns)\n", "test = test.iloc[:, :26]\n", "test.columns = ['unit', 'cycle', 'op1', 'op2','op3','sm1','sm2','sm3','sm4','sm5','sm6','sm7','sm8','sm9','sm10','sm11','sm12','sm13','sm14','sm15','sm16','sm17','sm18','sm19','sm20','sm21']" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Data Processing" ] }, { "cell_type": "code", "execution_count": 50, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(362, 128, 206.31)" ] }, "execution_count": 50, "metadata": {}, "output_type": "execute_result" } ], "source": [ "max_life = max(train.groupby(\"unit\")[\"cycle\"].max())\n", "min_life = min(train.groupby(\"unit\")[\"cycle\"].max())\n", "mean_life = np.mean(train.groupby(\"unit\")[\"cycle\"].max())\n", "max_life,min_life,mean_life" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Setting up X and y in training and testing data\n", "#### Setting up Remaining Useful Life variable (y)" ] }, { "cell_type": "code", "execution_count": 51, "metadata": {}, "outputs": [], "source": [ "## reversing remaining useful life column so that it counts down until failure\n", "grp = train[\"cycle\"].groupby(train[\"unit\"])\n", "rul_lst = [j for i in train[\"unit\"].unique() for j in np.array(grp.get_group(i)[::-1])] # can be used as y or target for training" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Setting up sensor measurements (X)" ] }, { "cell_type": "code", "execution_count": 52, "metadata": {}, "outputs": [], "source": [ "# getting all columns except target RUL column as X\n", "train_x = train.drop(\"cycle\", axis=1)\n", "test_x = test.drop(\"cycle\", axis=1)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Applying Principal Component Analysis" ] }, { "cell_type": "code", "execution_count": 53, "metadata": {}, "outputs": [], "source": [ "from sklearn.decomposition import PCA\n", "from sklearn.preprocessing import MinMaxScaler\n", "from sklearn.preprocessing import PowerTransformer\n", "from sklearn.model_selection import train_test_split, cross_val_score" ] }, { "cell_type": "code", "execution_count": 54, "metadata": {}, "outputs": [], "source": [ "# fitting PCA on training data, transforming training and testing data\n", "\n", "# setting index to be unit so unit is not used as a column in PCA\n", "train_data = train_x.set_index(\"unit\")\n", "test_data = test_x.set_index(\"unit\")\n", "\n", "# scaling the data\n", "gen = MinMaxScaler(feature_range=(0, 1))\n", "train_x_rescaled = gen.fit_transform(train_data)\n", "test_x_rescaled = gen.transform(test_data)\n", "\n", "# PCA\n", "pca = PCA(n_components=0.95) # 95% of variance\n", "train_data_reduced = pca.fit_transform(train_x_rescaled)\n", "test_data_reduced = pca.transform(test_x_rescaled)\n", "\n", "# save results as dataframes\n", "train_df = pd.DataFrame(train_data_reduced)\n", "test_df = pd.DataFrame(test_data_reduced)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Making Complete Dataframe" ] }, { "cell_type": "code", "execution_count": 55, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
UnitRUL012345678910
01192-0.4102900.329588-0.062926-0.0342720.0398370.150101-0.061206-0.044378-0.0394560.0664690.060335
11191-0.3340790.245318-0.083213-0.020121-0.1096690.088208-0.113706-0.072674-0.0130430.0683310.007763
21190-0.415501-0.251669-0.054831-0.0335930.246061-0.010257-0.0567530.0786620.1450560.0579860.003087
31189-0.517311-0.005695-0.087794-0.027715-0.042761-0.0589950.0273780.0430450.011939-0.166043-0.041628
41188-0.3457670.164130-0.043195-0.0368340.104798-0.0306460.082129-0.092327-0.0300430.006404-0.026205
\n", "
" ], "text/plain": [ " Unit RUL 0 1 2 3 4 5 \\\n", "0 1 192 -0.410290 0.329588 -0.062926 -0.034272 0.039837 0.150101 \n", "1 1 191 -0.334079 0.245318 -0.083213 -0.020121 -0.109669 0.088208 \n", "2 1 190 -0.415501 -0.251669 -0.054831 -0.033593 0.246061 -0.010257 \n", "3 1 189 -0.517311 -0.005695 -0.087794 -0.027715 -0.042761 -0.058995 \n", "4 1 188 -0.345767 0.164130 -0.043195 -0.036834 0.104798 -0.030646 \n", "\n", " 6 7 8 9 10 \n", "0 -0.061206 -0.044378 -0.039456 0.066469 0.060335 \n", "1 -0.113706 -0.072674 -0.013043 0.068331 0.007763 \n", "2 -0.056753 0.078662 0.145056 0.057986 0.003087 \n", "3 0.027378 0.043045 0.011939 -0.166043 -0.041628 \n", "4 0.082129 -0.092327 -0.030043 0.006404 -0.026205 " ] }, "execution_count": 55, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# making dataframe with unit, RUL counting down instead of up, and PCA features\n", "train_df.insert(0, \"Unit\", units, True)\n", "train_df.insert(1, \"RUL\", rul_lst, True)\n", "train_df.head()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Splitting into Train and Validate Sets\n" ] }, { "cell_type": "code", "execution_count": 56, "metadata": {}, "outputs": [], "source": [ "import random" ] }, { "cell_type": "code", "execution_count": 57, "metadata": {}, "outputs": [], "source": [ "unique_units = train_df[\"Unit\"].unique().tolist()\n", "np.random.seed(200)\n", "random.shuffle(unique_units)\n", "train_units = unique_units[:80]\n", "val_units = unique_units[80:]" ] }, { "cell_type": "code", "execution_count": 58, "metadata": {}, "outputs": [], "source": [ "X = train_df.iloc[:,train_df.columns != 'RUL']\n", "y = train_df[[\"Unit\", \"RUL\"]]\n", "\n", "# splitting into train and test data based on units rather than random split\n", "X_train = X[X['Unit'].isin(train_units)] # getting first 80 units\n", "X_validate = X[X['Unit'].isin(val_units)] # getting last 20 units\n", "y_train = y[y['Unit'].isin(train_units)][\"RUL\"] # getting first 80 units\n", "y_validate = y[y['Unit'].isin(val_units)][\"RUL\"] # getting last 20 units\n", "\n", "X_train = X_train.set_index('Unit')\n", "X_validate = X_validate.set_index('Unit')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Making Predictions" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Linear Regression Model" ] }, { "cell_type": "code", "execution_count": 59, "metadata": {}, "outputs": [], "source": [ "from sklearn.linear_model import LinearRegression\n", "from sklearn.metrics import r2_score, mean_squared_error\n", "import matplotlib.pyplot as plt" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Fitting the model" ] }, { "cell_type": "code", "execution_count": 60, "metadata": {}, "outputs": [], "source": [ "reg = LinearRegression()\n", "reg.fit(X_train, y_train)\n", "y_hat = reg.predict(X_validate)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Assessing Performance" ] }, { "cell_type": "code", "execution_count": 62, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Training Cross Validation Score: [0.65181542 0.60621829 0.56514893 0.52319301 0.51774096]\n", "Validation Cross Validation Score: [0.72617618 0.42561359 0.30175429 0.70016344 0.42958844]\n", "Validation R^2: 0.5254642642582465\n", "Validation MSE: 2437.895634893165\n" ] } ], "source": [ "print('Training Cross Validation Score: ', cross_val_score(reg, X_train, y_train, cv=5))\n", "print('Validation Cross Validation Score: ', cross_val_score(reg, X_validate, y_validate, cv=5))\n", "print('Validation R^2: ', r2_score(y_validate, y_hat))\n", "print('Validation MSE: ', mean_squared_error(y_validate, y_hat))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Plotting Predicted vs True Values" ] }, { "cell_type": "code", "execution_count": 63, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "_ = plt.scatter(y_hat, y_validate)\n", "_ = plt.plot([0, 350], [0, 350], \"r\")\n", "_ = plt.xlabel(\"Predicted Remaining Useful Life\")\n", "_ = plt.ylabel(\"True Remaining Useful Life\")" ] }, { "cell_type": "code", "execution_count": 64, "metadata": {}, "outputs": [], "source": [ "log_y_train = np.log(y_train)\n", "log_y_validate = np.log(y_validate)\n", "reg.fit(X_train, log_y_train)\n", "y_hat = reg.predict(X_validate)\n", "#log_y_train.isna().sum()" ] }, { "cell_type": "code", "execution_count": 65, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Training Cross Validation Score: [0.65181542 0.60621829 0.56514893 0.52319301 0.51774096]\n", "Validation Cross Validation Score: [0.86189994 0.57916562 0.62127333 0.84606404 0.71891191]\n", "Validation R^2: 0.7119259657778766\n", "Validation MSE: 0.2747472045111408\n" ] } ], "source": [ "print('Training Cross Validation Score: ', cross_val_score(reg, X_train, y_train, cv=5))\n", "print('Validation Cross Validation Score: ', cross_val_score(reg, X_validate, log_y_validate, cv=5))\n", "print('Validation R^2: ', r2_score(log_y_validate, y_hat))\n", "print('Validation MSE: ', mean_squared_error(log_y_validate, y_hat))" ] }, { "cell_type": "code", "execution_count": 66, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "_ = plt.scatter(y_hat, log_y_validate)\n", "_ = plt.plot([0, 6], [0, 6], \"r\")\n", "_ = plt.xlabel(\"Predicted Log of Remaining Useful Life\")\n", "_ = plt.ylabel(\"True Log of Remaining Useful Life\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Decision Tree Regressor\n", "### Fitting the model" ] }, { "cell_type": "code", "execution_count": 67, "metadata": {}, "outputs": [], "source": [ "# trying decision tree regressor\n", "from sklearn.tree import DecisionTreeRegressor\n", "\n", "dt_reg = DecisionTreeRegressor()\n", "dt_reg.fit(X_train, y_train)\n", "y_hat = dt_reg.predict(X_validate)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Assessing Performance" ] }, { "cell_type": "code", "execution_count": 68, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Training Cross Validation Score: [0.3314608 0.03284172 0.17224829 0.25248153 0.28469372]\n", "Validation Cross Validation Score: [ 0.21143813 0.00097633 -0.03242251 0.25507367 -0.23748143]\n", "Validation R^2: 0.15272460204742866\n", "Validation MSE: 4352.820743820744\n" ] } ], "source": [ "print('Training Cross Validation Score: ', cross_val_score(dt_reg, X_train, y_train, cv=5))\n", "print('Validation Cross Validation Score: ', cross_val_score(dt_reg, X_validate, y_validate, cv=5))\n", "print('Validation R^2: ', r2_score(y_validate, y_hat))\n", "print('Validation MSE: ', mean_squared_error(y_validate, y_hat))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Plotting Predicted vs True Values" ] }, { "cell_type": "code", "execution_count": 69, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "_ = plt.scatter(y_hat, y_validate)\n", "_ = plt.plot([0, 350], [0, 350], \"r\")\n", "_ = plt.xlabel(\"Predicted Remaining Useful Life\")\n", "_ = plt.ylabel(\"True Remaining Useful Life\")" ] }, { "cell_type": "code", "execution_count": 70, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Training Cross Validation Score: [0.77366425 0.7180512 0.73196486 0.68458347 0.67246177]\n", "Validation Cross Validation Score: [0.72003447 0.55813942 0.4954202 0.74433481 0.60379024]\n", "Validation R^2: 0.680685900000316\n", "Validation MSE: 0.3045420479245905\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "dt_reg.fit(X_train, log_y_train)\n", "y_hat = dt_reg.predict(X_validate)\n", "print('Training Cross Validation Score: ', cross_val_score(dt_reg, X_train, log_y_train, cv=5))\n", "print('Validation Cross Validation Score: ', cross_val_score(dt_reg, X_validate, log_y_validate, cv=5))\n", "print('Validation R^2: ', r2_score(log_y_validate, y_hat))\n", "print('Validation MSE: ', mean_squared_error(log_y_validate, y_hat))\n", "_ = plt.scatter(y_hat, log_y_validate)\n", "_ = plt.plot([0, 6], [0, 6], \"r\")\n", "_ = plt.xlabel(\"Predicted Log of Remaining Useful Life\")\n", "_ = plt.ylabel(\"True Log of Remaining Useful Life\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## K-Nearest Neighbors Regressor\n", "### Fitting the Model" ] }, { "cell_type": "code", "execution_count": 71, "metadata": {}, "outputs": [], "source": [ "from sklearn.neighbors import KNeighborsRegressor" ] }, { "cell_type": "code", "execution_count": 72, "metadata": {}, "outputs": [], "source": [ "kn_reg = DecisionTreeRegressor()\n", "kn_reg.fit(X_train, y_train)\n", "y_hat = kn_reg.predict(X_validate)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Assessing Performance" ] }, { "cell_type": "code", "execution_count": 73, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Training Cross Validation Score: [0.33669568 0.06067125 0.19325714 0.25780171 0.29606065]\n", "Validation Cross Validation Score: [ 0.19072975 -0.01737705 -0.04616889 0.28963416 -0.31215523]\n", "Validation R^2: 0.132442225711644\n", "Validation MSE: 4457.020097020097\n" ] } ], "source": [ "print('Training Cross Validation Score: ', cross_val_score(kn_reg, X_train, y_train, cv=5))\n", "print('Validation Cross Validation Score: ', cross_val_score(kn_reg, X_validate, y_validate, cv=5))\n", "print('Validation R^2: ', r2_score(y_validate, y_hat))\n", "print('Validation MSE: ', mean_squared_error(y_validate, y_hat))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Plotting Predicted vs True Values" ] }, { "cell_type": "code", "execution_count": 74, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "_ = plt.scatter(y_hat, y_validate)\n", "_ = plt.plot([0, 350], [0, 350], \"r\")\n", "_ = plt.xlabel(\"Predicted Remaining Useful Life\")\n", "_ = plt.ylabel(\"True Remaining Useful Life\")" ] }, { "cell_type": "code", "execution_count": 75, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Training Cross Validation Score: [0.77184865 0.71060796 0.73260798 0.68050613 0.67374973]\n", "Validation Cross Validation Score: [0.72126975 0.55465672 0.50704406 0.7478887 0.59853228]\n", "Validation R^2: 0.6802101443785232\n", "Validation MSE: 0.3049957942244644\n" ] }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXgAAAEGCAYAAABvtY4XAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nO2dd3gU5fbHPychQAAlIFiINNGLoqBAVBALqAiKBcGG9Wfj2gvKFRQLNlCu197BCjZAIoo0BcQGSkdUVJQWRVAINUBIzu+P2cXNZmZ3tsy2vJ/nyZPslHfOzGzOvHPe836PqCoGg8FgyDyykm2AwWAwGLzBOHiDwWDIUIyDNxgMhgzFOHiDwWDIUIyDNxgMhgylWrINCKRBgwbarFmzZJthMBgMacPcuXP/UtWGdutSysE3a9aMOXPmJNsMg8FgSBtEZIXTOhOiMRgMhgzFOHiDwWDIUIyDNxgMhgzFOHiDwWDIUIyDNxgMhgzFUwcvInkiMkZEfhSRH0Sko5fHMxgMBsM/eJ0m+SQwSVXPEZHqQC2Pj2cwGAwGH5714EVkT+B4YASAqu5U1WKvjmcwGAxpyRdfwKOPetK0lyGaA4B1wKsiMl9EhotI7eCNRKSviMwRkTnr1q3z0ByDwWBIITZvhhtugOOOgxdfhK1b434I8argh4gUALOATqo6W0SeBDap6t1O+xQUFKiZyWowZBaF84sYNnkpvxeX0Cgvl/7dWtKzbX7Y5UXFJWSLUKZKvVo5qMLGktIK28bTxrvGLWbrzjIABLioQxMe7Nk6bseowOTJ0LcvrFoFN90EDz4IdepE1ZSIzFXVAtt1Hjr4fYFZqtrM9/k4YICq9nDaxzh4gyFzKJxfxOAPl7BhW2mF5bk52fRun8/YuUWUlJZVWFe7ejY7d5VTWh7aL2UB5QGfa1TLIjcnm+KS0t0PhXyXD4LC+UXcNnohZTbHvLhDEwqa1rd9EIVr03afv/+Gfv3gjTfgkENgxAjoGFvuSVIcvO/AnwNXqepSEbkPqK2q/Z22Nw7eYEg/7JwZwMD3F1dy4IkmNyebIb1ah3TInYZOo6i4xHadADVzsiucR7jefeH8okrnnlsti9frruSo/94D69fDgAEwaBDUqBHVeVWwMYkO/ghgOFAd+BW4XFU3OG1vHLzBkF7YOTPLKWZRUlruvGMCyc3JYucupUyVbBH6HN24gnNuPmACkXpBAR4//wjbB0fwA6PhlvU8MPV5uv/0NbRvb/XaDz88yrOxsSWEg/c0D15VF6hqgaq2UdWeoZy7wWBIP4ZNXlqpl66QMs4dLFvKfB3ZMlVGzlrJoMLFu9c3ysuNuE3FOnc7fvc7d1XOXTSVT4ZfS+df5zK08//BrFlxde7hMDNZDQZDWArnF9Fp6DSaD5hAp6HTKJxfBAQ4szTj7dmrdv/d5WBbKXUAqmeL4zqnsE6jvFz2L17Dm+/ezbCJT/Jjw2acevnTfNjtEqiWWIX2lNKDNxgM3uA46Ody38AwTFFxCQPft3rAjfJyHR1dKlMWEJr+aOEfjtvVrlGN0m2ljiGctvdPoXhbQGZPm315/u/POfCVIZRJFoNOuY5RR3SnZvUchvjGJhKJ6cEbDBmO30EXFZeg/OOg/b3wcNiFYUpKyxg2eSn9u7XEuY+bumSLZXXh/CKKS0odtyveVspFHZo4rt/gc/5FxSUMf/Ej/m53NG3+ex+bjjqGS299hVFtT6NRvdphB3q9wvTgDYYMJ5SDduN0nMIw/p77RR2aMGrWyogHKpNJlijNB0wgS0I/nhR4a/bKkNtUK9vFNbPHcONX71BSoxaMHMm+F17IuDBtJwLTgzcYMhwnB+02fh5qEHLg+4spaFqfx88/gvwoBiuTRWm55bzLXGQRhkrJP2zNL3z4+i3c/vlIphzUkZOueI5BtdtACjh3MA7eYMh4nBx03dwcV/v379aS3Jxs23WBbwJfDjiRPJdtpjs1SncwYMarfPBGP+qXbOLqXoO48aw7+Lt2XqUsnWRiHLzBkOH079aSnKzKPcqtO3e5isP3bJtP7/bOoZzAQdYU6bh6ylGrvmPiqzdyzeyxvNumK12vfI6pB3WosE1glk4yMQ7eYMhwerbNp07NysNtpWXqmMsdSOH8IsbODf0g8PdYi7c5D1imO3V2bOOBKc/x3lsDyNZy+lzwEHd2v5FNNStryLgJ/SQCM8hqMFQBnBxvUXEJnYZO2y0vYJdKaTdIG8zIWSv5aOEfaTXQGgmdl33Lw5OfZZ8t63n5yJ7879iLKale03H77BR5lTEO3mDIcArnF5HlE+Cyo6i4hP5jFoKyW+QrMNfd7WBsqHTDdKXeto3c8+nLnP39DH7aqwnXXTyQBY3C57P3ObpxAqwLj6daNJFitGgMhvhipxUTCf7MmHSczBQTqpz+4+fc98mL1N2+hWc7nsdzHc5jZzX3g8hu1SxjJZQWjasevIgcCxykqq+KSEOgjqr+Fk8jDQZD/HETXglFUXEJF3doYivtm6nsvflvHpryHF1/mc3CfQ/iogseYmnDZhG3E/gWlIxJTuBikFVE7gXuAAb6FuUAI700ymAwxE7h/KK49LzHzi0KmUWTMahy/sLJfDLiOo5dvoAHu1xBr0v+G5Vz9+NPI00WbnrwZwNtgXkAqvq7iOzhqVUGQxUnGu2YwH3q5uawdecux20FXA+IlpSWMf3HdeTl5mRknB2gyYY/GDL5aTqtWMTXTVozoPuNrKjXKC5tBw5kJ7on78bB71RVFREFsKurajAY4kcocS8nBxG8TyhH7K+oNP3HdRXK4oWiqLiEbJtc+nQnq7yMy+eM5/bPR1Kalc3AbjfwzuGnoBLfDPJkhWvcnMV7IvIikCciVwOfAC97a5bBUHUJpR0TyT5ODOnVmgd7tt49Q9VNzraAbUm7dOZf65bz/sj+3D19BF82bcMpVz7H20d0j7tz95OMcI1jD15EaqjqDlX9r4h0BTYBLYF7VHVqwiw0GKoYTnHzUPF0t6mM+Xm5u3uQkTwUMsm155SVct3Xo7n+6/fYXKMWN53Rn/GHHJ+QabiJ1s8PFaL5GmgnIm+q6iWAceoGQwJwCpmEmjzjRpc9Nyd794QmSN9iHbHQ5o+fePTjJzn4rxUUtjqB+0/qy/padRN2/GiqR8VCKAdfXUQuA44RkV7BK1X1fe/MMhiqLk4hk1ChlC4HN2TkLGdZ22yRCprk4SY/ZRo1S7fT7/NRXDnnA9bWrscVve9h2oFHJdyO/gku+hHKwV8DXATkAWcErVPAOHiDwQPyHXrjoeR4Q1UlgooPB/+AbFVx7h1XLGLopKdoWryGUUd0Z2jny9lcIzm5IimTRaOqXwBfiMgcVR2RQJsMhipN/24tK80+DQ6vBOMmfdGfxRHr5Kd0YY8dWxk4/VUuXDiJ5Xn7cUGfh5nVpE1SbSqcX5RQJx9qkPVEVZ0GbDAhGoMhcQQOgkZTQ9UJfxZHVYi9n/TLbB6a/CwNtxbz4lG9ePzYC9me4ywOligGvr8oNRw8cAIwjcrhGTAhGoPBU3q2zadn2/zdk5dufXfB7hqodg6iXq0cNriQ6vU/MDJVW6b+to3c+8lLnPXDZ/zQsBl9ew1i0X7/SrZZuykpLU/o8UKFaO71/b48eJ2I9PbSKIPBENmEp3vPOJTbRi8Mm6ueVyuH/t1acsu7C7wxOlmocuYPn3HfJy9RZ8c2Hjv2Il7ocA6l2VWjwpQT0coFPw6MDbeRiCwHNgNlwC4nxTODwVAZpwlPgz9c4hi+GfzhkpA9eVXr4RBuu3Ri301/8eCUZzl52bfM368l/zn1Jn5u2DTZZtmS6MnA0Tr4SMzsoqp/RXkcg6FKEkoobMO20t3Ouai4hP6jFzL4wyUUbyslr1ZOSM0Y//IebfYLmVaZDoiW02fhZAZOf4VsLef+E6/mtfanU55lXz82Fbjw6CYJPV60Dr5q5FcZDEnAH5pxS2m57nb4bnrlXf83g1/Wbo3avlSg2foihk56mg6rvuOLpoczsPuNrMrbN9lmhaWgaf2EHi9UFs1i7B25APu4bF+BKT6hshdV9SWb4/QF+gI0aZLYp5vBkEjcKkR6ncb4cxo79+zyMq749gNu+2IkO7Nz+E/3m3ivTde0qfY9bPLSlMmiOT0O7XfyyQvvDUwVkR9VdWbgBj6n/xJYFZ3icEyDIeWIZMC0KqQxRsPBa3/jkYlPcfian5lyUAcGdb2WtXvslWyzIiJltGhUdUWsjavq777fa0VkHHAUMDP0XgZDehKqhx5KITLYwWdyGmM0VN9VyvVfv8t1s0azsWYdrj/zDiYcfGza9NoDSbQWjTe6mFi68f7CID4N+VOA77w6nsGQTPw99KLiEpR/euiF84sA556b3XK/jK8B2hb9yEev3czNX73D+EOO5+SrnmfCIcelpXMHSzMokXjm4LHi9F+IyELgG2CCqk7y8HgGQ9IIp+Hu1HOzW96zbT692+eHVI/MdHJ3bufuT19m7Mj+1N5Zwv+dcx+3nX4bxbl7Jtu0mJj+47qEHi/aLJqwqOqvwOFetW8wpBLheuiR6MsUzi9i7NyiKiMGFswxyxcwdNLTNNn4J2+07cGjJ1zGlhq1km1WXEiZGHyYLBpV1eSq9hgMKUIo6V1/D91JXwag09BpFZZFk0UTSY3VVGXP7Vu4c/orXLBoCr/Wa8R5Fw7lm8aHJdusuJJKevDxyKIxGDKaUNK7wT10v75M8L7BmTXRpEjm1crh3jMOjXr/ZNP151k8OOU59tpazPNHn8MTnfqwI6dGss2KK0IK6cHHI4vGYMh0nHrbwQU23O4brXMu3lZq+5ZQvG0nW3dWbjNLIBVKrDbYuoH7PnmJ03/8nO/3bs6Vve/hu30PTLZZnqCkkB68HxHZzD9vf9WBHGCrqqb3aIfBEAecYqrlqmH/meMZjw0MBQUet/mACQ72xe3Q0aHK2Uumc8+nL1OrtIRHj7+Ul47qxa5sz4YFU4KU0YP3o6p7BH4WkZ5Y+ewGQ5XHKWfdKdYamCsvYol/xQOnV//cnCy2JViiNhyNNq3locnP0uXXucxtdDD/OfVmljVonGyzEkIqzWS1RVULRWSAF8YYDOlGpNkxgdvGM0nm1vcWcMu7C8gPGLwd/OGSlHLuouVcNH8iAz57DVHl3pP/zZttT0tpcbB4kzJZNH6CqjllAQWk/4C9wRAXIqm+5KXGjP9hUVRcQv8xC0EtEbJUofn6IoZOfIqjVy9hZrO23Nn9BlbXdStplTmkUhaNn8CKTruA5cBZnlhjMKQhwXFvJ2LtvbkdGC0tSx3Hnl1extXfjOPWL0axvVp1bj/tFsYcdlLazkSNhXB1db0gVB78I6p6BzBRVd9LoE0Gg2e4VXT0glg1ZlKoQ+6KVn/+yiMTn6T1n8uY+K9juKfrNayrk1i53FShni+NNdFZNKGkCk4TkRzAxNsNGUE4vRivqSoaMzV27eT2mW8w/vVb2HfL31zTcyDXnn1nlXXuALWqV0u4c4fQIZpJwF9AbRHZxD+T5fwzWU2apCGtiETR0QuC4/V1Q1ReSlfarf6BRyc+yYHrVzPmsJN44MSr2Ji7R/gdM5xkSUCHmujUH+gvIh+oqom5G9KeSBQdvWBQ4WLenr2KMlWyRdi5K/1mnDpRa2cJ/We+wWVzP+L3PRtw6bmDmXlA+2SblTIkenDVj5s8+LNEpClwkKp+IiK5QDVV3ey9eQZD/Ig0Zz1W/PH+ouKSSloxZapsK02zoLoDx/02jyGTnqHRpnW80a4Hw46/lK0ZIg4WD5IxuOonrFywiFwNjAFe9C3aHyj00iiDwQvsYuBe/fMFxvshM/OK65ZsZtiEJ3jzvXvYUa065170CPd1vcY49wCyRejd3l2WlRe4SZO8Hmvm6mwAVf3ZV4LPYEgrIslZj4bADB0ndclMofvSL3lg6vPU27aJZzqex9PHXMCOatWTbVbKUabK2LlFFDStn3KDrH52qOpO8eWtikg1MrNDYqgCuM1Zj5TgWaqZ6twbbtnA4KnPc9pPX/HdPi247Nz7+X6fA5JtVkqTyIH8YNw4+M9E5E4gV0S6AtcBH3prlsGQXng5SzUlUOWc7z5l0LTh5Jbu4JETLuPlI8/OeHGweJFyWTQBDACuBBYD/wY+BoZ7aZTBkCq4nRiVrH/gRLD/xj95eNIzHL98Pt/s34oB3W/i1732T7ZZaUUqZ9GUAy8DL4tIfWB/1Qx9/zQYAnAqyAGVdb1jnaWaioiWc+m8Cfzns9dREe7ueg0j256GipelnNMPAapli6NERDKzaCScrxaRGcCZWA+DBcA64DNV7RdvYwoKCnTOnDnxbtZgiIpOQ6fZOu16tXKoVb1apdJ76VpNyY4Wf69i6MSnObLoe2Y0b89d3a6nqK7JrbBDgMfPP6LCBDYRqwhLIuQwRGSuqhbYrnPh4OeralsRuQporKr3isgiL2qyGgdvSCWaD5jgKpsgNyebIb1aA6R9Fk21sl30/eZ9bv7yLbbl5HL/SVcz7tAuVUYcLNratvkJ1jUKJJSDdxODryYi+wHnAXfF1TKDIYVxG3bxZ0l8OeDE3f/gTpWUUplD1/zCoxOf4tC1v/JRy2O5r+u/+at2vWSblVCifSSHCt8lEzfBtPuBycAvqvqtiBwA/OytWQaDNxTOL6LT0Gk0HzCBTkOnhRQai0QcLHiQtW5uTkx2JpIapTv4z2ev8cEb/Wi4dQP/PvtObug5oMo591jxP+hTCTeDrKOB0QGffwV6e2mUweAFkQya+pfNWbG+gn5M9WpCiU2VpOAsiXSJaBSsXsIjE5+ixfoi3m3dlYdOvJJNNesk26y0JdWyqULpwT9NxTcWxVKXnK6qX7g9gIhkA3OAIlU9PVpDDYZYiVRNsnB+EWPnFu2OpZepsqsccrKkQrWk4CyJwvlFbNiW2iqRtXds4z8zX+eyeRNYVXcfLjr/Qb5sdkSyzUp7kpUO6USoHrzdaGd9YJiIvKuqT7g8xs3AD4CRFzYkFbdqkoEiYcGUlqltFk3PtvkUzi9i8IdLUt65d142h4cmP8t+m/9iRMFZPHbcxWyrnlqOKdnk+xx1JKmvyUyHdCKUXPDrdstF5AXgKyCsgxeR/YEewENA3NMqDYZIcBo0zRKh+YAJNMrLpcvBDRk7tyhkuuOGbaUVqvMUzi+i7f1TUt6x55Vs4u5PX6b3kun8vFdjzrn4UeblH5Jss1KS4m072bozfMqrP+smmVk0oYh4nrGqloj7AOMTwH8AR8V/EekL9AVo0qRJpOYYDK7p362lba66PwRTVFzCqFkrXWVS+GP3/r9TOv9dldOWfsngqS+Qt30zTx5zAc92PJ+d1dJnIDjRuHHuYOW/p5pTDyQiB+8TGrsEWO1i29OBtao6V0Q6O22nqi8BL4GVBx+JPQZDJASrSdrlqrv9AgZmTKSyc2+4ZT0PTnmObj/PYtG+B3Lp+ffzw95GHMxtAfNQXNyhSUo7dwg9yLqZyt/3EuAzLE2acHQCzhSR04CawJ4iMlJVL47WWIMhVgLVJJvFmKueahkTFVDl3MVTuXvaCKqXlfJw58sZcWRPyrIyvyZsOHKyBRTKY5iIlgUUNE39GrOhYvAxFVJU1YHAQABfD/5249wNqUS2y9mmTrMbG0UxEJcIGhev4eFJz3DcigXMbnwYA7rfyG/1U7unmUhqV68Wcy3cckiaBHAkGK1PQ5UllHPPy81hY0mp48BrYMZEqsTgs8rL+L+5H3H7529QJlncdcp1vHVEdyMOFkBuTlbcCp2n9Bucj4Q4eFWdAcxIxLEMBrfk5eY4/rPv2FVeYQCtoGl9R9ngOSvWM3LWyoTZbceBf63k0YlP0u73pUw7oIC7ul3PH3s2TKpNyaZWThbbgiallZSWR603E0yq5bzbYXrwhipLqGSw4AlQdpWgUiHvPaeslGtmjeGGr99la/Va3Hz6bXzQqnP6TKX1iNycbHq1z7fNilLCi4rl5mSHfCtLxZx3O8I6eJ8GfDCbVTW1k34NGYPbohuRUhzGMYd6BQ+WPUgGrf/4mUcnPskh65Yz/pDjGXxSX/6unZc0e1IFf076sMlLHZ244jwGE7i//zvX5eCGTP9xnSe1fL3ETQ9+HtAY2ID14MsD/hCRtcDVqjrXQ/sMVZxI9WMiIZxaZKO8XNuHC8Bt7y1MmhxwzdLt3PLFW1z9bSHraudxVa+7+eSgo5NiSyrS5eCG9Gybz63vLnDcxu/Egx/S/p65V7V7E40bBz8JGKeqkwFE5BSgO/Ae8BxgvlkGz4hUPyYSuhzc0DF2npuTTZeDG1Z6uPQfsxA0eUW1j165mKGTnqL5hj946/BuDO18uREHC+Lt2asoaFrfUZNfoEIP3Iu3w1TBjYMvUNVr/B9UdYqIPKyq/USkhoe2GQyu9WOCCex559XKQZXdWTH+f+LpP66z3TdbhCG9Wts+XJzKsnlNnR3bGDDjVS5eMJEVefvS54KH+Lrp4UmxJdUpU2Xg+4sdnftFAROUIumpexUq9BI3Dn69iNwBvOP7fD6wwacSWVk31WCII05hlFAZDMFhncBB0MAQj9NDolw17Ct+Iumy7Fsemvws+2xZz8tH9uSx4y5me07NZJuV0tiNjWSL8Nh5h0fllL0MFXqJmwTZC4H9gULgA6CJb1k2VpUng8Ez7IpuhMtgsOt5B+IP8Tg9JPzLk120o962jTz+4X95dcxgNteoRe+Lh/HQiVcZ5x4lZarc8u4C2t4/JWShFztChQpTGTcFP/4CbnRY/Ut8zTEYKhJNnNTNBJTfi0t4/PwjbDNhfi8uYVDhYteZhuFS6iJGlTN+mMl9n7zIHju28USnPjzb8TxKs404WDg6tajP8r9LQg6eb9hWao2l4L73HW2oMNm4SZP8F3A70Cxwe1U90TuzDIZ/iDSjwU0tVcV6aPRun8+4eUUV1AMVIpq4FE/nvs/mv3hwyvN0/WU2C/Y7iDtOvZmlDZvFrf1MZ97KjfRunx9W8rm0TCMaqI8mVJgKuInBjwZeAIYDyZ+PbTCEwUkWOJii4hLGzi1iewrIDKDKBQsnc+f0V8gpL+OBLlfyasGZlFdBcbB6tXLYsn1XhapZbikpLWP6j+t2D5KHetA7FXqxe1MMlVKZyrhx8LtU9XnPLTEY4kRwWMefRWMnS5AKGjJNNvzB0ElPc8zKRXzVpA0Dut/Iynr7JduspPDE+UcwbPLSmGYH/15csvutr9PQaY5OPrD3HW4QNV1TKkXD5POKyH3AWmAcsMO/XFXXx9uYgoICnTPHrlKgIRNJdNpZ8wET4qJBEi+yysu4fM54bv98JKVZ2Tzc5QreObxblZYZyM/L5ffikpjuU35eLl8OsCLIhfOL6D96YaW3gZxsYdg5/2TUOD0IAttKVURkrqoW2K1z04O/zPe7f8AyBUzVAEPUhOoxQXx7Sv4HSSo593+tW86jE5/iiD9+YuqBRzHolOv4c48GyTYr6fjvebQSzFlQIWzi/97cN37J7je4erVyKpRc9B/XyZ50xk0WTfNEGGKoWjilnQ3+cAnbS8vD5hu77f2ngmZMIDllpVz/9Xtc9/VoNteoxY1n9OfDQ46v0r32QOrm5tjGu3OyhDo1q1G8rTTkg9puYo6bQfp0HUQNR6iKTieq6jQR6WW3XlXf984sQ6bj1DOyi72WlJZx23sLufXdBbb67KEmnYTLiU8kh/++lEcnPknLv1ZS2OoEBp/Ulw216ibbrJRCJHxqbLgC59HIWKTrIGo4QvXgTwCmAWfYrFPAOHhD1ET6Gh6uMLaTPo3TgyRemuBuqFm6nds+H8kVc8aztnY9ruh9D9MOPCpBR08v/AqfoXrd955xKLeEmGUcTVglXQdRwxGqZN+9vt+XJ84cQ1XBqce0vbQsrON1Wh/4jx0u7p4o595xxSKGTnqKpsVrGHnEqQztfDlbatRK0NGTj9uyiH7chER6ts0PWWQl2rBKpihIBuJmolMNoDeVJzrd751ZhkzH/0/69uxVlKmSLULv9vkxVUby/2MXzi+i/5iFSRMGA9hjx1YGTn+FCxdO5rd6+3F+nyHMbtI6afYki0icu9uQSOH8IkehuEwIq8QTN1k0HwAbgbkEpEkaDLFQOL+IsXOLdjuAMlXGzi0KWUYvkOAQS+A/9uAPlyTVuZ/0y2wemvwsDbcW88JRvXji2AurrH6MUw/ev9z/O99lSMRu0Nz/XXDbRlXCjYPfX1W7e26JoUrhlEVTMyfLVbm03u3zHSvsJKuE3l5bi7n305c484eZ/NCwGVf3upvF+x2UFFsSSU62UC1LKAmqf+q/T3YFy4f0ah2VI7b73vide6rnqycDNw7+KxFpraqLw29qMLjDaSCseFspj/tmM/qdd7O9cpn164YKoZwHe6ZQuEOVs76fwb2fvkydHdt47NiLeKHDOVVGHMw/YcgpdTVUwfJIydR8da9w4+CPBf5PRH7DCtEIoKraxlPLDClHPGeehso7Dhzs8r+SB4dyCprWd8yLTyT7bVrHg1Oe46Rl3zKvUUvu6H4TPzdsmlAbkkm+736B8yBlPAcvMzVf3SvcOPhTPbfCkPLEu+CBU7m8Lgc3rPDZTcm+ZExmEi3nwgWTGDDjVbK1nMEnXc3r7U5Pa3GwnGyhdvVqbCwppWZOVqWQSzDJGNDM1Hx1rwg10WlPVd0EbE6gPYYUJd61UZ2yIIKXu3klT/Rkpmbrixg66Wk6rPqOL5oezsDuN7Iqb9+EHd8LssSS0N28fRcK1K9dgy4HN+SjhX/YDnrn5eZw35mHhgzNeEGm5qt7Rage/FvA6VjZM4oVmvETVotGRGoCM4EavuOM8efWG9KPeMc+3bbn5pU8UWGZ7PIyrvy2kH5fjGJndg79T72J0a27ppTMgAioWg47lNputgjlqtTNzWHrzl27s44CJ5SNnVvEkF7WWEegQ+1ycEOm/7iOW99dwOAPl1SQ9k1EKbtMzFf3CseSfap6uu93c1U9wPfb/+NGaGwHcKKqHg4cAXQXkQ7xMduQaMKVt4sUp3J4wcvdlOzLzXFTeTI2Dln7K+PevI07Z7zKzObtOPnK5xjd5pSUcu65Odk8ft4RLB/aI2S5wdycbB4773BhK6cAACAASURBVHB+G9qD2jWqOaaUBr6hfTngRH4b2oP+3Voydm4RRT7Fxw3bSispNaZDKbuqgpsYPCJSDzgI2J3Mq6ozQ+2jlg7xFt/HHN9PKgn6GXy4ecWOJfZp176TXwxe7uaVvGSXd7Xfq+8q5Yav3uHa2WMorrkH1501gI9bdkopx+4n0CGHShX198pDaaX7CV7vNhxmslpSAzczWa8CbsYqvL0A6AB8DYRNOhWRbKwQz4HAs6o622abvkBfgCZNmkRiuyEOuB08jTb26dS+k5Owc0zhXskjmCwZEe2KfuCRiU9x0N+rGHvYiTxw4lUU5+7pzcHihFvH6nZQWrDuof/6u23fZLWkBm4KfiwGjgRmqeoRInIwMFhVz3d9EJE8rIIhN6rqd07bmYIficfrQgdueonBLB/ao8JnuzcA+OdhE2//nrtzO/1nvsH/zf2QP/ZowF3drmdGC9t6CimHP7aO2D/4RKBuTXezhf0Efhfc3M9YJjIZIifWgh/bVXW7iCAiNVT1RxGJKCdJVYtFZAbQHXB08IbE4/TPGm3BhXi3Y/cG0H/MQlCiqtkZjk7LFzB00tM03vgnr7frwaPHX8bWNBIH2y0L4HBpnEoXhiKw126r1R6QXmmyWlILNw5+ta8HXghMFZENwO/hdhKRhkCpz7nnAicDj8RkrSHuhNIKCSZcrN5ufaRqgsHtZNns74XOzJ7bt3DXtBGcv3gqv9ZrxLkXDuXbxofF/ThgDQpvLy2nUV4u23buSpq0QjBO9yow3GLSFNMLNxWdzvb9eZ+ITAfqApNctL0f8LovDp8FvKeqH0VtqcETnJxv8PJwsXqn9ZE6d6gYH45m/0jp9tNXPDDleepv28hzHc7hyWP6sCOnhodHFB4//wh6ts2n+YAJYbfu1KI+81Zu9DTXP5RuTPBAuklTTB8iyaJpjDXpaTNwGDAv1D6qughoG6uB6USii0jHg3yHPPP8oEGycBOdnNZH04NP1KSlBls3cN/UFzl96Rcs2fsALj/nXpbse6Dnxw28bm4Knyz/u4QhvVozbPLSuIXO6tXKoVb1ap7qxhiSj5ssmgeA/wN+5Z+Sh4qLLJqqRLyn8icKt+mP4WL1TtkVZaqV1CHDqUW6IQv7+puuUKXXkmnc8+nL5JZu59HjL+Wlo3qxK9tVfycu+K+X3fW329bfa46HLENOtlQqOu3H9M4zCzczRM4DWqjqCaraxfdjnHsQoXq4qUzPtvm0a1KxLmi7JnUr/ZPbxeQDlzulxeXn5TKkV2vy83KRoM+h2gtHbvVs19sG0mjTWl4bfR//m/A4v+zVmNMuf5rnOp6XUOcO/1yvnm3zQ16PwG3ttvdfg0iuRO3q1YwTryK4+VZ/B+QBaz22Ja1JVxnTQYWL+XLZ+grLvly2nkGFiytI8oaL1Yd6E7DrFTqVXKtdPYtNO8L3TrfujKwHK1rOxfM/5o7PXkdUuffkf/NGux6oeD8LNpjgN6RQvXM3MfDC+UXcNnohZS6zijZGmEVjSF/cOPghwHwR+Y6Aik6qeqZnVqUhXsmYeh3Xf3v2KsflgQ4+XKy+Z9t8Rs9ZWeFhYfcm4MdJbMyNc4+UA/5ezdBJT3HU6u+Z2awtd3a/gdV194n7cdyQLVIpR9x/j4uKSyr0xOvVynEMpQQybPJS184dIK9WDp2GTjNx9iqAGwf/OlZ642JiCHtmOl7ImCYiru82iybc+bl9E/CTiDebamW7uPrbcdzyxVtsr1ad20+7hTGHnZQ0mQG7CUDB9zjwqm8PI9frJ9JruWX7P6mZ6TJWZIgONw7+L1V9ynNL0hynItKx/NPEW6LXDrd58OHyn0O9CdhlZrjJHomFQ/9cxiMTn+KwP5fx8b+O4d6u17KuTj3PjueGktIyBn+4hPvGL9k9KWjbzl2OA6Zu73Uk11Kk8gSxeH+nDKmDGwc/V0SGAOOpGKIJmSZZ1XAqIh1ceSgSEhHX73N0Y9tYeJ+jG1daFirDItSbgN1byP717ItQVxPYFUPqe41dO7nxq3e4ZtYYNtTak2t6DmRSy07RNxhnAic1uXHKbu51/24t6T9mYdgJYKGyl1J9rMgQHW4cvD+XPVDq16RJBuFFbzsR5cn84ZPAN48+RzeOa81Tu+vy89qtttvG4tzbr/6eRyc+RYv1qxl92Mk8eOKVbMzdI/oGUwA399r//Rr84ZLdD5C83BxOP3y/SoXJnXLpjThYZuJmJmuXRBiS7njR2+7frSX93l1QYeAjy7c8HJEMzj7Ys7Urh56qE7lq7Syh/8w3uGzuR/y+Z0MuOe9+Pm/eLtlmxUwkYziR5K+bkndVBzcTnfYBHgYaqeqpItIK6KiqIzy3Lo3Iq5VjqymSV8u58EI45qxYX2lUu9y3PNQ/sxeDs+HadMqyCVdZKFaO/3UuD09+hkab/uL19qcz7PhL2Vbd6o0KoQsQiIPiYipgl20TD4yWTNXCTRLwa8BkoJHv80/ALV4ZlK44OYpYHEiogctQeDHpKlybTpWXalSz/4o5FWE6aO/aruypW7KZ/054nDdG38v2ajU496JHGHzyv3c7d7AernkOlY3ycp3XJRt/xSUvS975KzR9OeBE49wzGDcOvoGqvocvRVJVdwGJq3CcJjhNHollUonbFMZgIg0XFc4votPQaTQfMIFOQ6dROL8o4jZ7ts2vNHC6f72ajql+u8otEa1AOrWoz9R+nSstD6b70i/5ZMS19Fwynac7nk+Py59i7v6tKm23YVupozTuxpJSiuOg4pifl8vFHZrsnqkbSzuBM32N0zXEAzeDrFtFZC98b7u+uqobPbUqDamba19EIVRtzHBEIuUbSCSDs27DOTVzsiixcdY1fV3xi17+utLAqdNAKljhk3krK36N5q3cyKDCxZWW+2m4ZT33T32BU3/6iu/2acFl597P9/u4KQ9cGf99iVQbPRC7oiihCqis2bjd8X7Go7iKwRCMmx58P6wUyRYi8iXwBnCjp1alIW5rjEaCXapiqOV+3BSq9uM2nLPDoe6pf3nwJKdwlGOfXfP27FWVU/lUOWfxJ3wy/FpOXPYtQ0/4P8669H9RO3ew7kss98bpeoa69tHeT4MhWtxk0cwTkROAllgdr6XAUV4blm44ve7HEgaINoUxkoE0t+Ecp4HSeA+gBvdw99/4Jw9Peobjl8/nm/1bMaD7Tfy61/4xHyeaIhv+N6p83/Wcs2I9t723sILN+Xm59G6fXyk9MTDLJZaU1FTNZDKkJo4O3leo4zwgH5ioqktE5HTgJSCXKqb1Hg6vctbdpjAG4zZtzq3dThknXs36zyov49J5E+g/8w1UhEFdr2VU21OTIg4G1qDsgntP2f15UOFi2wliRcUljJ1b5BhHj/Z+QvpKUhuSR6j/lhHAVcBewNMi8iowDHhUVY1zDyKSsEgq4dbuXIdsGP9yp6yYaGjx1yree2sA9336Et/ufyinXPksI5Ok/Ogn+EEWKpPJK5nodJWkNiSPUCGaAqCNqpaLSE3gL+BAVV2TGNPSi3TNL3Zrt90Aa+ByhxB9RFQr28W/Z4/lpq/eZltOLrf26Me4Q7skTRwskOBQW7SZTLGQrpLUhuQRysHvVFV/auR2EfnJOPfQzFmxnjUbt6PAmo3bw05IckO0MddI9nMTzgkXynFaHyoTKHD5oWt+YdjEJ2m19jc+Ovg47ju5L3/Vjk0cLJpygU4o0GLgx7tj5uHajiY0F+6euQmnmRi9IZBQ77wHi8gi38/igM+LRWRRogxMF/wx2UCxsZGzVjKocHHUbfpjrkXFJSj/xFzt8tTjsV8owoVynNYf0LCWbXsN6lhpijVKd3DHjNf44I1+NNhazM3n3c0NZ90Rs3OH+BfsDrynoTJfognNubln4e6BF/fdkN6EcvCHAGf4fk4P+Hy677chgGhnnYYi2pirF7HawFJxdhNynNb/um6bbXt/bt7JUau+Y+KrN3Lt7DGMaX0yJ1/1PB8d0MF2+2AE9+X9oiFUCT1/MZSLOzSpZEO0E5Xc3LNw98DE6A3BOIZoVHVFIg1Jd6KddRqKaGOu0cxkdfNaHy6UM3rOyt0hhKLiEkbPWWl7/nV2bOM/n73OpfMnsKruPlx0/oN82ewIa6XL66XAsiGnAdB8wISQmjPR0L9bS255d4HtOv85xZIRE4zbexbqHpgYvSGYxFYazmCinXUainCzR53Izclim81+uTb7xSv17qKXv7at6BRM52VzeGjys+y3+S9GFJzFf4+7hJLq/0gcuBUAC7ysTucbCwPfX+woVpblwYtDPNJsEyEvbUgvkpd3lmF4MUsx3OxRJ0oc1tstj9drfbiZrHklm3jso8d4bcx9bK2eS++Lh/HASVdXcO5gpV0Gx5ntCEzbdDrfWCgpLXN8K3ASUIuFeKTZpmuqrsE7HL+pIvKp7/cj0TQsIo1FZLqI/CAiS0Tk5miNTAeCY7LZIlzcoUlMr/DRzh6NRNnS89d6VXr88DmfDL+WM3+YyZPHXMDp//ck8/MPtt28pLS8QpzZicA3m0RL/rqtlRoJ4eLriWrDkFmECtHs55MoOFNE3oGK/28uSvbtAm7zSR3sgVX6b6qqfh+byalLPGOyEH3YJ5L9vHyt33vz3zw49XlO+XkWi/Y9kIvPf5Af924e0sZGebkV4sxO4l2B9sWaDuk2ldPu2PEkkqIdXrZhyBxCOfh7gAHA/sD/gtaFLdmnqn8Af/j+3iwiP2DJHsTVwQ8qXOxpublIiHcOciT1UqPdz66eZ0622L7Wh7rWnVrU/ydMo8p5i6YyaPoIapSV8nDnyxlxZE/Ksv4JH/Q5ujHvfrOqQgHonCzruIHHEalcNCQ47OB0vm7IyRbOP7IxY+cWVQhVCdZganAc3oQ8DOlEqCyaMcAYEblbVR+I5SAi0gxLu2a2zbq+QF+AJk2aRNRusB6IP08ZSLiT90InJFqxsdm//h3R8krBZpvOcLhr3bxhHb5ctp7GxWsYOukpOq1YxOzGhzGs923MqdHQ3pbgFwqxMnEC4/mqljm1fAPOdg9Ou+t0QMNa/Lpu2+4euGN1J4WCpvUpaFp/d73SwG01YN98M3HIkGaIuni1FZEzgeN9H2eo6keuDyBSB/gMeEhV3w+1bUFBgc6ZM8dt07QY+LHjq7U/hS5RhNIBT7TWd7MBExzXLR/ao8Jnt3aHu9YH3fEhl8z5kNs/f4MyyWJIlyt4+/BucdOPicc9dXOuqXQfDQY3iMhcVS2wW+emJusQLHngUb5FN4tIJ1Ud6GLfHGAsMCqcc48GL3LPoyVdc5Dd2h3yWi9Zwntv9qftH0v5tMWR3HXK9azZs0Fc7YzHPXVzrul6Hw0GO9x0r3oAXVX1FVV9BejuWxYSEREsRcofVDU4hh8XnAYbvZzh6ITTwFuq5yC7tdvumuaUlXLzV+9A27Y0Lf6Dm864nSt73xN35+50/Ehxc67peh8NBjvcTnTKA/yB0bou9+kEXAIsFhH/lMA7VfXjCOwLSbSDkF7Qv1vLCjF4iM+AXDSDyAftXdu2XJ5dQWunGZvBdgdf6zZ//MQjE5/ikHXL4YILeKH7NYz/YUuldvbZozp/bt5pa8uydVsrDJ5mCXQ8oL5tTn31akLzARMcB6+DB7i7HNywUtENu3uUkyVs27lrd9tdDm5YacDVDKwa0hU3PfghwHwReU1EXgfmAg+H20lVv1BVUdU2qnqE7yduzh2swbHsoGmF2VlCQdPQRZu9wIsc5GgFzK7vcpDd+CXXdzmo0raj59hnnwQv/22d5bxrlm5n4PRXGPfm7dQr2cRj1z0Cb7/Ntrr213zPEDVpg/P5yxWaN6xTYT5Bllhf0pLSckcBLTuRrZGzVlYS3QIq3KO83BwQq7qTf7uxc4vo3T7f5JIbMgK3g6z7AUdi+YnZXskGRzrImukDYtEOIkdyXdwOyDYbMIEOKxcxZNLTNN/wB28d3p0hXS5nc43aLB/aw9HWSAk+t1gGRkPt47ZtgyHViWmQFXbntI+Pq1VxINMHxKIdRI77ddm4kYcmP8NFCyaxPG8/+lzwMF83bRORTW4JbieWgdFQ+7ht22BIZ9JaiybTB8SiHUSO63WZMAEOPZQLFk7hpSPPpvsVT1dy7m5scktwO7EMjIbax23bBkM6k9YOPtPFlaIVMIvkunRqYR877763wEUXwemnQ7163DfgJR4+8Uq259S03d/JJruB3VDLg9txcy522wRjd/6Z/v0xGMI6eBGpb/PjPHKWQHq2zaddk4pJPe2a1E3agFjh/CI6DZ1G8wET6DR0WsyVdB7s2Zp99qheYdk+e1QPm0XTs20+vdvnVxA+693eXqNk1NUd2bNGgJNT5fyfP+eFIZfB6NFw330wdy4PPHxlJad80N61GXV1x5C2Tu3X2Xa/qf06O4qzBV7HYZOXhh30tBvg7tSifoWBWlBufXdBhfviNDAOxPU+GgzJIuwgq4gsBxoDG7AGWfOwNGbWAler6tx4GRPpIGvw9Hk/sao4RkOwVAFYvcFYMjDsNNbB6jX7HWustgQeY99Nf/HglGc5edm3/NKsFQd++C4cdpirNp1sdUqTdLpH8biOdm0EEqo9L+6jweAloQZZ3YRoJgGnqWoDVd0LOBV4D7gOeC5+ZkaOF2XyosWLcmlOGuvhtNcjseXLZesRLafPgklMGXEdnVYs4oEuV3LKuUN2O3c3bTrZZOfcwfkexeM62rXhtj1T9s6QSbjJoilQ1Wv8H1R1iog8rKr9RKSGh7aFxUgV2BOJLU03/M7QSU/TceVivmrShgHdb2Rlvf1iatMNTvcoHsdxs22kxzGZNYZ0xE0Pfr2I3CEiTX0//wE2iEg2EP/KBxFgpArscWVLWRk89hiTXrmRQ9cs447uN3LhBQ/ZOnfXbUaA0z2Kx3HcbBvpcUxmjSEdcePgL8TShC8EPgCa+JZlA+d5Z1p4vCiTFy1eZGQ4Zbg4LXdty+LF0LEj3H4737c6kq5XPce7h3erUOg0+Bjh2nSyKXjg1Y/TPfKqdJ3b9kxmjSGTCOvgVfUvVb0ROAE4VlVvUNV1qrpTVX/x3kRnvCiTFy1eSBWMurpjJccZboA1pC2tGsC990K7drB8ObzzDu0XzOTAI/4V9hjhzs/J1tl3dY3oHnlRuq5erRzycnNctWfK3hkyCTdywa2BN4D6vs9/AZep6nce22YAflm7JeRnJ+asWM+ajdtRYM3G7ayZOgMuGQJLllj57U88AQ0s1cdwDww/Qz7+fvegaVFxCUM+/r6C42vesA6zft2wWxitecM6gHMpQ6cKWG7KzrkRF4tWbsCUvTNkCm7SJL8C7lLV6b7PnYGHVfWYeBtj0iQrcvRDU22zUPbZozqz7+rquF/gdcnduZ3bPn+TK+aMZ/Nee1P39RHQI6zac8S2RHovYrle4dIgI2nLYEh3Yk2TrO137gCqOgOwn4aYYDI9TdIpxdBpuR//+XdcsZBJr97AVXM+YFTbUzn+0meicu5ubIn0XsRyvcKlQUbSlsGQybhJk/xVRO4G3vR9vhj4zTuT3GPSJO2pXbKZgdNfoc+iKfxWbz/O7zOE2U28faOJ9F7Ecr2iFRczGKoabhz8FcBgwF9ybybwf14ZFAnZIo5yuommUV6urfRswtPrPviAqSOuo8HWYl44ujePd7qQHTnWdAUvr0uk9yKW6+W0bzRtGQyZjJssmg2qepOqtvP93AK8mADbwpLpaZJOKYa2y9euhQsugJ490b32oucljzG08+W7nTvEdl3C2RLpvYjlekUrLmYwVDWiVZN0l3bhMZmeJjn7rq62Al4VBlhVYeRIOOQQGDcOHniAfX/6jsPPPimu1yWcLZHei1iul92+F3doYlIbDYYgXFV0qrSTyEpVbRJvYyLNoqnyrFoF11wDH38MHTrAiBHQqlWyrTIYDAkkqopOItLOaRWQEnLBVZbycnjxRbjjDkty4Ikn4IYbIDt02MJgMFQtQg2yPhZi3Y/xNsTgkp9+gquvhpkz4eST4aWXoHnzZFtlMBhSEEcHr6pdEmlItHT93wx+Xrt192d/MYlk4DQzMxYGFS62csnLdtH320L6ffUWObk1rXDM5ZdX0I8JJFifPZTEgf8Y/hmofY5ubBs7D7ed03ovr4uTLV4c02BIN6KKwXtFpDH4YOfuJxlO3ouZrP7ZoYes/ZVHP36S1n8uY/JBHVgw4EHuuOIkx/0iKRTidgZquO2c1ndqUZ95Kzd6cl2cbDFFOwxViVhnsqYsds491HIv8WIm69gvf6XfzDcZ//qt7Lv5b649awD/PvsuXvp5R8j9IikU4nYGarjtnNZ/uWx93K9LOFtM0Q6DwcLNRKeoEJFXgNOBtap6WLjt0524z2T9+mvGv3ojB/29irGHncgDJ15Fce6eQHxn6rqdgRpuu0htimWWaThbUmlWscGQTNwU3RYRuVhE7vF9biIiR7lo+zWge4z2pQ1xKxSxZQvccgt06kSt0u1cdu5gbuvRb7dzh/jOSHVbNCXcdpHaFMss03C2mKIdBoOFmxDNc1gTm/r4Pm8Gng23k6rOBEIXD42Rg/a21zxzWu4lcZnJOnUqtG4NTz4J113HiBfG89kB7SttFm5GaiSFQtzOQA23ndP6Ti3qx32GbzhbTNEOg8HCjYM/WlWvB7aDJV0A2M9bjwIR6Ssic0Rkzrp16yLad2q/zpWcebKyaGKaybphA1xxBZxyClSvbqVAPvMM9/TpENVM3UgKhbidgRpuO6f1o67uGPcZvuFsMUU7DAYLN3rws4FjgG9VtZ2INASmqGrbsI2LNAM+chuDr5IzWceNg+uug3XroH9/q+JSzZrJtspgMKQJsWbRPAWMA/YWkYeAL4CH42hf1WTNGjj3XOjVC/bdF775BoYMMc7dYDDEjbBZNKo6SkTmAidhyRT0VNUfPLcsU1GFN9+0BlK3bYOHH4bbb4cco/5gMBjii5ssmibANuBDYDyw1bcs3H5vA18DLUVktYhcGauxac+KFXDqqXDZZZb644IFMHCgce4Gg8ET3OTBTwAUq/deE2gOLAUODbWTqvYJtb5KUV4Ozz0HAwZYn59+2oq7Z6X1PDODwZDiuAnRVEin8KlM/tszizKNpUvhyivhyy+tLJkXX4RmzZJtlcFgqAJEPJNVVeeJyJFeGBMNqSo21niPHJ5fM51DX34catWC116DSy91FAdz4sCBE9gVkOhUTeCXIeELZ0cituVWbCxanGxxWu61PQZDVcFNmmS/gI9ZQDtgL1XtFm9jMkVs7NA/l/HIxKc47M9lFJ3cg/w3h1uZMhES7Nz9hHPykYhtuRUbixYnW3q3z2fs3KJKy9s1qWurmZOsSl0GQ6oTa5rkHgE/NbBi8mfFz7zoSTWxsfKSEvp/9jofvH4r+2z5m3/3vJPzTuoXlXMHbJ17qOWBtrgV23IrNhYtTra8PXuV7XInobR42WMwVCVChmhEJBuoo6r9E2RP2tLouzm8MfFpWqxfzXutT+bBE69iU806SBIEriIR23IrNhZvWyJtP54CawZDVSFUyb5qqrorROk+A8DmzTBwIKNHPcvqPffmkvPu5/Pm/1yyZAhcNcrLpcjGsdrZki1i6zzjJWjmZIvTcZ2Ip8CawVBVCBWi+cb3e4GIjBeRS0Skl/8nEcaFI+liY5Mnw2GHwXPPsazPFZx1zQsVnHusAlfVHHya03I/kYhtuRUbixYnW/oc3dh2uZNQWrzsMRiqEm5i8PWBv4ETsfTdz/D9TjpJExtbv96arNS9u5Uh8/nntHhrBHdfcFRcBa5+GdKjkjN3k0UTidiWW7GxaHGy5cGerW2Xj7q6o6f2GAxVCccsGhFZDfwPa4KTf6KTH1XV/8XbmLQQGxszBq6/3nLyd9wBgwYZ/RiDwZA0QmXRhBpkzQbqUNGx+6l6I15//GE59nHjoF07KzxzxBHJtspgMBgcCeXg/1DV+xNmSaqiak1S6tcPSkpg6FC47Tao5lm1Q4PBYIgLobyUSVv47Tfo2xc++QSOOw6GD4d//SvZVhkMBoMrQg2ynpQwK1KNsjJ46ikrQ2bWLHj2WZgxwzh3g8GQVjj24FXV03qqKcsPP1jiYF9/bUn7vvACNAmrjmwwGAwph9Gr9VNaCg89ZA2cLl1qFeWYMME4d4PBkLaYkUKAuXOtoteLFsF551l67XvvnWyrDAaDISaqdg++pMTKZT/qKKvo9bhx8O67xrkbDIaMoOr24GfOhKuugp9/tmLu//0v5OUl2yqDwWCIG1WvB79pk1Uu74QTYNcuKwVy+HDj3A0GQ8ZRtRz8xx9bqY8vvAC33gqLF8NJVTcb1GAwZDZVI0Tz11+WQx85Elq1gq++gg4dkm2VwWAweEpm9+BVrUHTVq3gnXfgnntg3jzj3A0GQ5Ugc3vwv/8O114L48dDQYEVa2/TJtlWGQwGQ8LIvB68qjVo2qoVTJkCw4ZZs1KNczcYDFUMT3vwItIdeBJLeni4qg6N9zGaD5iwW7u4cfEahk56ik4rFllZMsOHw4EHxvuQjrS5dxKbdvxTSHrPGtksGtw9pjYvevnrCoWoO7Woz6irO8bUZrQUzi9i2OSl/F5cQqO8XPp3axlTQRMvSSdbDQav8KwH7yvY/SxwKtAK6CMireJ5DL9zzyov48pvC5ky4nra/PEzd3a7HqZNS6pzB9i0o4w2906Kus1g5w7w5bL1XPTy11G3GS2F84sY+P5iiopLUKCouISB7y+mcH5Rwm0JRzrZajB4iZchmqOAX1T1V1XdCbwDnBXPAyiw5/YtjB35H+6eNpyvmrah65XP89YRp0JWYqNPwc493HI3BDv3cMu9ZNjkpZSUVjyXktIyhk1emnBbwpFOthoMXuJliCYfWBXweTVwdPBGItIX6AvQJAphr001arOi3r68WnAG4w85AcTI2HvB78UlES1PJulkq8HgJV52c12Vu83XmgAACq1JREFU+lPVl1S1QFULGjZsGMVRhFvO6M/4Vp2Nc/eQRnm5ES1PJulkq8HgJV46+NVA44DP+wO/x/MATu48GW5+zxrZES13Q6cW9SNa7iX9u7UkN6fiueTmZNO/W8uE2xKOdLLVYPASLx38t8BBItJcRKoDFwDj43mA34b2qOTMxbc80Swa3L2SM481i2bU1R0rOfNkZdH0bJvPkF6tyc/LRYD8vFyG9Gqdkpkp6WSrweAlolopahK/xkVOA57ASpN8RVUfCrV9QUGBzpkzxzN7DAaDIdMQkbmqWmC3ztM8eFX9GPjYy2MYDAaDwZ7Mm8lqMBgMBsA4eIPBYMhYjIM3GAyGDMU4eIPBYMhQPM2iiRQRWQesiHL3BsBfcTQnmWTKuWTKeYA5l1QkU84DYjuXpqpqO0s0pRx8LIjIHKdUoXQjU84lU84DzLmkIplyHuDduZgQjcFgMGQoxsEbDAZDhpJJDv6lZBsQRzLlXDLlPMCcSyqSKecBHp1LxsTgDQaDwVCRTOrBGwwGgyEA4+ANBoMhQ0l7By8i3UVkqYj8IiIDkm1PtIjIKyKyVkS+S7YtsSIijUVkuoj8ICJLROTmZNsULSJSU0S+EZGFvnMZnGybYkFEskVkvoh8lGxbYkFElovIYhFZICJpLUErInkiMkZEfvT9z8RNDzytY/C+wt4/AV2xCox8C/RR1e+TalgUiMjxwBbgDVU9LNn2xIKI7Afsp6rzRGQPYC7QM03viwC1VXWLiOQAXwA3q+qsJJsWFSLSDygA9lTV05NtT7SIyHKgQFXTfqKTiLwOfK6qw321M2qpanE82k73Hrznhb0TharOBBJfTdsDVPUPVZ3n+3sz8ANWjd60Qy22+D7m+H7SslckIvsDPYDhybbFYCEiewLHAyMAVHVnvJw7pL+DtyvsnZaOJFMRkWZAW2B2ci2JHl9YYwGwFpiqqul6Lk8A/wHKk21IHFBgiojMFZG+yTYmBg4A1gGv+kJnw0WkdrwaT3cH76qwtyE5iEgdYCxwi6puSrY90aKqZap6BFZd4aNEJO1CaCJyOrBWVecm25Y40UlV2wGnAtf7QpzpSDWgHfC8qrYFtgJxG0tMdwfveWFvQ3T44tVjgVGq+n6y7YkHvlfnGUD0hXaTRyfgTF/s+h3gRBEZmVyTokdVf/f9XguMwwrXpiOrgdUBb4VjsBx+XEh3B+95YW9D5PgGJkcAP6jq/5JtTyyISEMRyfP9nQucDPyYXKsiR1UHqur+qtoM6/9kmqpenGSzokJEavsG7/GFM04B0jL7TFXXAKtEpKVv0UlA3JIRPK3J6jWquktEbgAm809h7yVJNisqRORtoDPQQERWA/eq6ojkWhU1nYBLgMW+2DXAnb4avenGfsDrvoytLOA9VU3rFMMMYB9gnNWPoBrwlqpOSq5JMXEjMMrXSf0VuDxeDad1mqTBYDAYnEn3EI3BYDAYHDAO3mAwGDIU4+ANBoMhQzEO3mAwGDIU4+ANBoMhQzEOPo0QkTKfet53IjJaRGrF0NZrInKO7+/hItIqxLadReSYKI6xXEQauF3uBSJyk0+hb1TQ8s4istE3PfxHEflvAmz5ysU2Ie9FBMdqFqxMKiL3icjtUbb3togsEpFbQ2zT2U6lMsTy3ecqIuf67tP0aOwz2JPWefBVkBLflHl8DusaYPdEIhHJVtWySBtV1avCbNIZS+kyrINKQa4DTlXV32zWfa6qp/smMM0XkXGq+qVXhqhq2Ieki3uRcERkX+AYVW0az3aDzvVK4DpVNQ4+jpgefPryOXCgr3c0XUTewppYlC0iw0TkW1+P699gzS4VkWdE5HsRmQDs7W9IRGaISIHv7+4iMk8s/fNPfWJh1wC3+t4ejvPN7hzrO8a3ItLJt+9eIjLF1yt+EXutIFtEpKnveIt8v5v4lrcQkVm+49wvIlsc9u/ne7P5TkRu8S17AUvMaXyonqeqlgAL8AnVicgpIvK17zqM9mnq+N88HvatmyMi7URksogsE5FrfNvU8dk/Tyy98t3qpn7bffdshvyjAT5KfLN2gu7FFhF5yHcvZonIPpFckzDX+ybfd2GRiLzjW1ZbrLoE3/ruod/2KcDeAfc/0MYGYskfRIy/HRG5BzgWeMH33bX9DhuiQFXNT5r8AFt8v6sBHwDXYvWutwLNfev6AoN8f9cA5gDNgV7AVKwZv42AYuAc33YzsDTCG2Kpc/rbqu/7fR9we4AdbwHH+v5ugiVJAPAUcI/v7x5Ywm8NbM5jefBy4EPgMt/fVwCFvr8/wtL4B+tBs8WmvfbAYqA2UAdYArR1OpZveWfgI9/f9bA06/cFGgAzsTTgAe4IOKflwLW+vx8HFgF7+K7b2oB7s6fv7wbAL/wzoXBLwLE3YmknZQFfB1zPGVg65/iu3xm+vx8NuK9urkkz4LugZbvvI5ZmUw3f33m+3w8DF/uXYdVaqB3cVpCNDYDlwdfU6VoHLQ9sJ/Bv2+9wsv//0vHH9ODTi1yxpv7PAVbi05AGvtF/QhCnAJf6tpsN7AUchKU5/bZayoi/A9Ns2u8AzPS3papO+vQnA8/4jjEe2FMsbZDjgZG+fScAGyI4t45YDw6AN7F6dP7lo31/vxW8k49jgXGqulUt7fb3geNcHPM4EVkErMFyQGuwrkEr4Evf+V0GBIYm/FpHi4HZqrpZVdcB28XSrBHgYV+7n2C9Fexjc+xvVHW1qpZjvT00s9lmJ5YzB+sB5N/GzTVxmqLuX74Ia3r8xcAu37JTgAG+854B1MR6gCcap++wIUJMDD692B2D9+N7s98auAi4UVUnB213GuGllMXFNmD1OjuqFdoItiVe2heRtOM6FBSEPwb/L+ALERnna2uqqvZx2GeH73d5wN/+z9WAi7B69O1VtdQXvqgZoh2AMuz/F0vV140NsY0Tf2O9mQRSH/B3BHpgPZDPBO4WkUOxzr23qi4N3MkXpgtkF/+Ed+3OLVZsv8OGyDE9+MxjMnCtWHK9iMi/xFLcmwlc4Itv7gd0sdn3a+AEEWnu27e+b/lmrFCEnynADf4PIuJ/6MzEcnCIyKlUdjCh+ApL5RBfG1/4/p4F9Pb9fUHwTgHH7SkitXznejbWGIUrVPUnYAhWOGYW0ElEDvSdRy3fA8AtdbHCNaUi0oWKvf94Efaa+N5k/hCRk2D3veyO9SDLAhqrNaD5H6xwTB2s786NAeMBbR2OvxwrLAZwTsxnUxmn77AhQoyDzzyGY8mNzhMrTe5FrJ7fOOBnrNDC88BnwTv6Qg19gfdFZCHwrm/Vh8DZ/kE24CagwDcA9j1WHBhgMHC8iMzDes1eGcLORSKy2vfzP1+bl/tCG5cA/kLdtwD9ROQbLGXHjTZ2zwNeA77BeqUfrqrzw1ynYF7A6tHWAf4PeNtnyyzg4AjaGYV1beZgPai8kBYOe018XAoM8oU6pgGDVXUZ1jjMSBFZDMwHHldL6/4BrJKEi3zfnQcc2v0vlgP+CisG74aTAu73agldWNrpO2yIEKMmaUhpxMr1L1FVFZELsAYX07Lubrww18TgFvNUNKQ67bEGdAUr8+eKJNuTCphrYnCF6cEbDAZDhmJi8AaDwZChGAdvMBgMGYpx8AaDwZChGAdvMBgMGYpx8AaDwZCh/D8TDIUz2wA9HgAAAABJRU5ErkJggg==\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "kn_reg.fit(X_train, log_y_train)\n", "y_hat = kn_reg.predict(X_validate)\n", "print('Training Cross Validation Score: ', cross_val_score(dt_reg, X_train, log_y_train, cv=5))\n", "print('Validation Cross Validation Score: ', cross_val_score(dt_reg, X_validate, log_y_validate, cv=5))\n", "print('Validation R^2: ', r2_score(log_y_validate, y_hat))\n", "print('Validation MSE: ', mean_squared_error(log_y_validate, y_hat))\n", "_ = plt.scatter(y_hat, log_y_validate)\n", "_ = plt.plot([0, 6], [0, 6], \"r\")\n", "_ = plt.xlabel(\"Predicted Log of Remaining Useful Life\")\n", "_ = plt.ylabel(\"True Log of Remaining Useful Life\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Trying Our Model On Test Data" ] }, { "cell_type": "code", "execution_count": 86, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
unitcycleop1op2op3sm1sm2sm3sm4sm5...sm12sm13sm14sm15sm16sm17sm18sm19sm20sm21
0110.00230.0003100.0518.67643.021585.291398.2114.62...521.722388.038125.558.40520.033922388100.038.8623.3735
112-0.0027-0.0003100.0518.67641.711588.451395.4214.62...522.162388.068139.628.38030.033932388100.039.0223.3916
2130.00030.0001100.0518.67642.461586.941401.3414.62...521.972388.038130.108.44410.033932388100.039.0823.4166
3140.00420.0000100.0518.67642.441584.121406.4214.62...521.382388.058132.908.39170.033912388100.039.0023.3737
4150.00140.0000100.0518.67642.511587.191401.9214.62...522.152388.038129.548.40310.033902388100.038.9923.4130
\n", "

5 rows × 26 columns

\n", "
" ], "text/plain": [ " unit cycle op1 op2 op3 sm1 sm2 sm3 sm4 \\\n", "0 1 1 0.0023 0.0003 100.0 518.67 643.02 1585.29 1398.21 \n", "1 1 2 -0.0027 -0.0003 100.0 518.67 641.71 1588.45 1395.42 \n", "2 1 3 0.0003 0.0001 100.0 518.67 642.46 1586.94 1401.34 \n", "3 1 4 0.0042 0.0000 100.0 518.67 642.44 1584.12 1406.42 \n", "4 1 5 0.0014 0.0000 100.0 518.67 642.51 1587.19 1401.92 \n", "\n", " sm5 ... sm12 sm13 sm14 sm15 sm16 sm17 sm18 sm19 \\\n", "0 14.62 ... 521.72 2388.03 8125.55 8.4052 0.03 392 2388 100.0 \n", "1 14.62 ... 522.16 2388.06 8139.62 8.3803 0.03 393 2388 100.0 \n", "2 14.62 ... 521.97 2388.03 8130.10 8.4441 0.03 393 2388 100.0 \n", "3 14.62 ... 521.38 2388.05 8132.90 8.3917 0.03 391 2388 100.0 \n", "4 14.62 ... 522.15 2388.03 8129.54 8.4031 0.03 390 2388 100.0 \n", "\n", " sm20 sm21 \n", "0 38.86 23.3735 \n", "1 39.02 23.3916 \n", "2 39.08 23.4166 \n", "3 39.00 23.3737 \n", "4 38.99 23.4130 \n", "\n", "[5 rows x 26 columns]" ] }, "execution_count": 86, "metadata": {}, "output_type": "execute_result" } ], "source": [ "test.head()" ] }, { "cell_type": "code", "execution_count": 77, "metadata": {}, "outputs": [], "source": [ "# taking log of y values\n", "y_test = np.log(RUL)" ] }, { "cell_type": "code", "execution_count": 78, "metadata": {}, "outputs": [], "source": [ "#test_grp = train[\"cycle\"].groupby(test[\"unit\"])\n", "#test_rul_lst = [j for i in test[\"unit\"].unique() for j in np.array(test_grp.get_group(i)[::-1])]\n" ] }, { "cell_type": "code", "execution_count": 90, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
012345678910
0-0.330564-0.253382-0.078112-0.013062-0.131955-0.198630-0.0388490.0069400.035415-0.066983-0.067194
1-0.5132130.246559-0.014673-0.0548730.1532010.153750-0.0261920.019489-0.104102-0.089667-0.003584
2-0.317142-0.086241-0.040033-0.030177-0.017871-0.034501-0.026490-0.076152-0.1031110.122481-0.006456
3-0.375733-0.005388-0.104104-0.009910-0.242595-0.052442-0.0081400.0360930.044614-0.0206110.144782
4-0.467751-0.005154-0.085730-0.023812-0.082489-0.073847-0.0999550.0174190.1188530.0264530.055897
\n", "
" ], "text/plain": [ " 0 1 2 3 4 5 6 \\\n", "0 -0.330564 -0.253382 -0.078112 -0.013062 -0.131955 -0.198630 -0.038849 \n", "1 -0.513213 0.246559 -0.014673 -0.054873 0.153201 0.153750 -0.026192 \n", "2 -0.317142 -0.086241 -0.040033 -0.030177 -0.017871 -0.034501 -0.026490 \n", "3 -0.375733 -0.005388 -0.104104 -0.009910 -0.242595 -0.052442 -0.008140 \n", "4 -0.467751 -0.005154 -0.085730 -0.023812 -0.082489 -0.073847 -0.099955 \n", "\n", " 7 8 9 10 \n", "0 0.006940 0.035415 -0.066983 -0.067194 \n", "1 0.019489 -0.104102 -0.089667 -0.003584 \n", "2 -0.076152 -0.103111 0.122481 -0.006456 \n", "3 0.036093 0.044614 -0.020611 0.144782 \n", "4 0.017419 0.118853 0.026453 0.055897 " ] }, "execution_count": 90, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Test Data with PCA (fit on training data) applied \n", "test_df.head()" ] }, { "cell_type": "code", "execution_count": 80, "metadata": {}, "outputs": [], "source": [ "# predict remaining useful life\n", "y_hat_test = reg.predict(test_df)\n", "\n", "#make predictions into a dataframe\n", "y_hat_test = pd.DataFrame(y_hat_test)\n", "\n", "# add unit column back in so that we know which predictions go with which unit\n", "y_hat_test.insert(0, \"unit\", test[\"unit\"])" ] }, { "cell_type": "code", "execution_count": 81, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "_ = plt.plot(y_hat_test[0][0:400])" ] }, { "cell_type": "code", "execution_count": 82, "metadata": {}, "outputs": [], "source": [ "rul_pred = []\n", "\n", "# loop through all units\n", "for each in range(1,101):\n", " # get data for one unit at a time\n", " unit_data = y_hat_test[y_hat_test[\"unit\"] == each]\n", " \n", " # get last prediction for that unit and add it to the list of predictions\n", " rul_pred.append(unit_data.tail(1).iloc[0][0])\n", "rul_pred = pd.DataFrame(rul_pred)" ] }, { "cell_type": "code", "execution_count": 83, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
0
05.276372
14.661821
24.047469
34.276243
44.430838
\n", "
" ], "text/plain": [ " 0\n", "0 5.276372\n", "1 4.661821\n", "2 4.047469\n", "3 4.276243\n", "4 4.430838" ] }, "execution_count": 83, "metadata": {}, "output_type": "execute_result" } ], "source": [ "rul_pred.head()" ] }, { "cell_type": "code", "execution_count": 84, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Training Cross Validation Score: [0.47533422 0.82207707 0.66695714 0.80961257 0.80561609]\n", "Validation Cross Validation Score: [0.47533422 0.82207707 0.66695714 0.80961257 0.80561609]\n", "Validation R^2: 0.7423429266648431\n", "Validation MSE: 0.18018159916559606\n" ] } ], "source": [ "print('Training Cross Validation Score: ', cross_val_score(reg, rul_pred, y_test, cv=5))\n", "print('Validation Cross Validation Score: ', cross_val_score(reg, rul_pred, y_test, cv=5))\n", "print('Validation R^2: ', r2_score(y_test, rul_pred))\n", "print('Validation MSE: ', mean_squared_error(y_test, rul_pred))" ] }, { "cell_type": "code", "execution_count": 85, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "_ = plt.scatter(rul_pred, y_test)\n", "_ = plt.plot([0, 6], [0, 6], \"r\")\n", "_ = plt.xlabel(\"Predicted Log of Remaining Useful Life\")\n", "_ = plt.ylabel(\"True Log of Remaining Useful Life\")" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.8.3" } }, "nbformat": 4, "nbformat_minor": 4 }