{ "cells": [ { "cell_type": "markdown", "id": "3eefedc4", "metadata": {}, "source": [ "**MACHINE LEARNING COURSEWORK - REGRESSION**" ] }, { "cell_type": "code", "execution_count": 1, "id": "d8f1f6b6", "metadata": {}, "outputs": [], "source": [ "import pandas as pd\n", "import numpy as np\n", "from sklearn.ensemble import RandomForestRegressor\n", "import numpy as np\n", "import matplotlib.pyplot as plt\n", "import warnings\n", "import plotly.offline as py\n", "import plotly.graph_objs as go\n", "from sklearn.metrics import mean_squared_error\n", "from sklearn.model_selection import train_test_split, GridSearchCV, cross_val_score\n", "from sklearn.metrics import r2_score\n", "from sklearn.svm import SVR \n", "from sklearn.linear_model import Lasso\n", "from sklearn.feature_selection import RFE\n", "import xgboost as xgb\n", "from sklearn.metrics import mean_absolute_error\n", "from sklearn.feature_selection import SelectKBest, f_regression\n", "import seaborn as sns\n", "from sklearn.preprocessing import MinMaxScaler\n", "from sklearn.linear_model import SGDRegressor\n", "from sklearn.neural_network import MLPRegressor\n", "import pickle\n", "\n", "warnings.filterwarnings('ignore') #ignore warning messages" ] }, { "cell_type": "code", "execution_count": 2, "id": "b376f248", "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", "
IDpCR (outcome)RelapseFreeSurvival (outcome)AgeERPgRHER2TrippleNegativeChemoGradeProliferation...original_glszm_SmallAreaHighGrayLevelEmphasisoriginal_glszm_SmallAreaLowGrayLevelEmphasisoriginal_glszm_ZoneEntropyoriginal_glszm_ZonePercentageoriginal_glszm_ZoneVarianceoriginal_ngtdm_Busynessoriginal_ngtdm_Coarsenessoriginal_ngtdm_Complexityoriginal_ngtdm_Contrastoriginal_ngtdm_Strength
0TRG0021741144.041.0000133...0.5171720.3751263.3253320.0023143880771.500473.4648520.0007680.1826150.0305080.000758
1TRG0021780142.039.0110033...0.4443910.4443913.0321440.0056122372009.74459.4597100.0043830.0320120.0010060.003685
2TRG0022041135.031.0000121...0.5345490.5345492.4858480.0067521540027.42133.9353840.0075840.0240620.0005290.006447
3TRG002206012.035.0000133...0.5061850.5061852.6062550.0037556936740.79446.8592650.0054240.0137070.0001780.004543
4TRG0022100109.061.0100021...0.4622820.4622822.8092790.0065211265399.05439.6210230.0065850.0341480.0010830.005626
\n", "

5 rows × 120 columns

\n", "
" ], "text/plain": [ " ID pCR (outcome) RelapseFreeSurvival (outcome) Age ER PgR \\\n", "0 TRG002174 1 144.0 41.0 0 0 \n", "1 TRG002178 0 142.0 39.0 1 1 \n", "2 TRG002204 1 135.0 31.0 0 0 \n", "3 TRG002206 0 12.0 35.0 0 0 \n", "4 TRG002210 0 109.0 61.0 1 0 \n", "\n", " HER2 TrippleNegative ChemoGrade Proliferation ... \\\n", "0 0 1 3 3 ... \n", "1 0 0 3 3 ... \n", "2 0 1 2 1 ... \n", "3 0 1 3 3 ... \n", "4 0 0 2 1 ... \n", "\n", " original_glszm_SmallAreaHighGrayLevelEmphasis \\\n", "0 0.517172 \n", "1 0.444391 \n", "2 0.534549 \n", "3 0.506185 \n", "4 0.462282 \n", "\n", " original_glszm_SmallAreaLowGrayLevelEmphasis original_glszm_ZoneEntropy \\\n", "0 0.375126 3.325332 \n", "1 0.444391 3.032144 \n", "2 0.534549 2.485848 \n", "3 0.506185 2.606255 \n", "4 0.462282 2.809279 \n", "\n", " original_glszm_ZonePercentage original_glszm_ZoneVariance \\\n", "0 0.002314 3880771.500 \n", "1 0.005612 2372009.744 \n", "2 0.006752 1540027.421 \n", "3 0.003755 6936740.794 \n", "4 0.006521 1265399.054 \n", "\n", " original_ngtdm_Busyness original_ngtdm_Coarseness \\\n", "0 473.464852 0.000768 \n", "1 59.459710 0.004383 \n", "2 33.935384 0.007584 \n", "3 46.859265 0.005424 \n", "4 39.621023 0.006585 \n", "\n", " original_ngtdm_Complexity original_ngtdm_Contrast original_ngtdm_Strength \n", "0 0.182615 0.030508 0.000758 \n", "1 0.032012 0.001006 0.003685 \n", "2 0.024062 0.000529 0.006447 \n", "3 0.013707 0.000178 0.004543 \n", "4 0.034148 0.001083 0.005626 \n", "\n", "[5 rows x 120 columns]" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "dataset = pd.read_excel(\"TrainDataset2023.xls\")\n", "dataset.head()" ] }, { "cell_type": "code", "execution_count": 3, "id": "40590821", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(400, 120)" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df = dataset\n", "df.shape" ] }, { "cell_type": "code", "execution_count": 4, "id": "86915732", "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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
pCR (outcome)RelapseFreeSurvival (outcome)AgeERPgRHER2TrippleNegativeChemoGradeProliferationHistologyType...original_glszm_SmallAreaHighGrayLevelEmphasisoriginal_glszm_SmallAreaLowGrayLevelEmphasisoriginal_glszm_ZoneEntropyoriginal_glszm_ZonePercentageoriginal_glszm_ZoneVarianceoriginal_ngtdm_Busynessoriginal_ngtdm_Coarsenessoriginal_ngtdm_Complexityoriginal_ngtdm_Contrastoriginal_ngtdm_Strength
count400.000000400.000000400.000000400.000000400.000000400.000000400.000000400.000000400.000000400.00000...4.000000e+024.000000e+024.000000e+02400.0000004.000000e+02400.000000400.000000400.000000400.000000400.000000
mean12.69750056.00020851.8046740.5475002.9025002.7975002.8300009.8750006.5625008.63250...3.957637e-013.911005e-012.722189e+000.0033475.679717e+07178.31124632500.0326200.0569350.0059650.029322
std111.10741727.13758410.9485220.49836249.93211449.93706849.93555886.09291170.44428486.20034...1.666319e-011.615922e-017.648849e-010.0024197.063846e+081045.453432177545.9215680.0471790.0083790.115915
min0.0000000.00000023.0000000.0000000.0000000.0000000.0000001.0000001.0000001.00000...7.050000e-117.050000e-11-3.200000e-160.0000080.000000e+000.0000000.0002480.0000000.0000000.000000
25%0.00000038.00000044.5167690.0000000.0000000.0000000.0000002.0000001.0000001.00000...3.199017e-013.184398e-012.340783e+000.0013891.030473e+0618.7605700.0018260.0186280.0003100.001464
50%0.00000055.00000051.0195071.0000000.0000000.0000000.0000002.0000001.0000001.00000...4.095627e-014.054695e-012.814884e+000.0029443.277334e+0667.9296590.0043830.0477400.0023300.003276
75%0.00000073.00000060.0000001.0000001.0000001.0000001.0000003.0000002.0000001.00000...5.000049e-014.956920e-013.304411e+000.0047989.079686e+06157.3702940.0137690.0853210.0079620.009479
max999.000000144.00000079.6030121.000000999.000000999.000000999.000000999.000000999.000000999.00000...8.773779e-018.571429e-014.947427e+000.0113011.390001e+1020764.6937901000000.0000000.2851000.0607421.145601
\n", "

8 rows × 119 columns

\n", "
" ], "text/plain": [ " pCR (outcome) RelapseFreeSurvival (outcome) Age ER \\\n", "count 400.000000 400.000000 400.000000 400.000000 \n", "mean 12.697500 56.000208 51.804674 0.547500 \n", "std 111.107417 27.137584 10.948522 0.498362 \n", "min 0.000000 0.000000 23.000000 0.000000 \n", "25% 0.000000 38.000000 44.516769 0.000000 \n", "50% 0.000000 55.000000 51.019507 1.000000 \n", "75% 0.000000 73.000000 60.000000 1.000000 \n", "max 999.000000 144.000000 79.603012 1.000000 \n", "\n", " PgR HER2 TrippleNegative ChemoGrade Proliferation \\\n", "count 400.000000 400.000000 400.000000 400.000000 400.000000 \n", "mean 2.902500 2.797500 2.830000 9.875000 6.562500 \n", "std 49.932114 49.937068 49.935558 86.092911 70.444284 \n", "min 0.000000 0.000000 0.000000 1.000000 1.000000 \n", "25% 0.000000 0.000000 0.000000 2.000000 1.000000 \n", "50% 0.000000 0.000000 0.000000 2.000000 1.000000 \n", "75% 1.000000 1.000000 1.000000 3.000000 2.000000 \n", "max 999.000000 999.000000 999.000000 999.000000 999.000000 \n", "\n", " HistologyType ... original_glszm_SmallAreaHighGrayLevelEmphasis \\\n", "count 400.00000 ... 4.000000e+02 \n", "mean 8.63250 ... 3.957637e-01 \n", "std 86.20034 ... 1.666319e-01 \n", "min 1.00000 ... 7.050000e-11 \n", "25% 1.00000 ... 3.199017e-01 \n", "50% 1.00000 ... 4.095627e-01 \n", "75% 1.00000 ... 5.000049e-01 \n", "max 999.00000 ... 8.773779e-01 \n", "\n", " original_glszm_SmallAreaLowGrayLevelEmphasis \\\n", "count 4.000000e+02 \n", "mean 3.911005e-01 \n", "std 1.615922e-01 \n", "min 7.050000e-11 \n", "25% 3.184398e-01 \n", "50% 4.054695e-01 \n", "75% 4.956920e-01 \n", "max 8.571429e-01 \n", "\n", " original_glszm_ZoneEntropy original_glszm_ZonePercentage \\\n", "count 4.000000e+02 400.000000 \n", "mean 2.722189e+00 0.003347 \n", "std 7.648849e-01 0.002419 \n", "min -3.200000e-16 0.000008 \n", "25% 2.340783e+00 0.001389 \n", "50% 2.814884e+00 0.002944 \n", "75% 3.304411e+00 0.004798 \n", "max 4.947427e+00 0.011301 \n", "\n", " original_glszm_ZoneVariance original_ngtdm_Busyness \\\n", "count 4.000000e+02 400.000000 \n", "mean 5.679717e+07 178.311246 \n", "std 7.063846e+08 1045.453432 \n", "min 0.000000e+00 0.000000 \n", "25% 1.030473e+06 18.760570 \n", "50% 3.277334e+06 67.929659 \n", "75% 9.079686e+06 157.370294 \n", "max 1.390001e+10 20764.693790 \n", "\n", " original_ngtdm_Coarseness original_ngtdm_Complexity \\\n", "count 400.000000 400.000000 \n", "mean 32500.032620 0.056935 \n", "std 177545.921568 0.047179 \n", "min 0.000248 0.000000 \n", "25% 0.001826 0.018628 \n", "50% 0.004383 0.047740 \n", "75% 0.013769 0.085321 \n", "max 1000000.000000 0.285100 \n", "\n", " original_ngtdm_Contrast original_ngtdm_Strength \n", "count 400.000000 400.000000 \n", "mean 0.005965 0.029322 \n", "std 0.008379 0.115915 \n", "min 0.000000 0.000000 \n", "25% 0.000310 0.001464 \n", "50% 0.002330 0.003276 \n", "75% 0.007962 0.009479 \n", "max 0.060742 1.145601 \n", "\n", "[8 rows x 119 columns]" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df.describe()" ] }, { "cell_type": "code", "execution_count": 5, "id": "d9063efa", "metadata": {}, "outputs": [], "source": [ "df=df.replace(999, None)" ] }, { "cell_type": "code", "execution_count": 6, "id": "4ccb34a3", "metadata": {}, "outputs": [ { "data": { "text/html": [ " \n", " " ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/vnd.plotly.v1+json": { "config": { "linkText": "Export to plot.ly", "plotlyServerURL": "https://plot.ly", "showLink": false }, "data": [ { "marker": { "color": "lightgrey", "line": { "color": "#000000", "width": 1.5 } }, "opacity": 0.8, "type": "bar", "x": [ "ID", "pCR (outcome)", "RelapseFreeSurvival (outcome)", "Age", "ER", "PgR", "HER2", "TrippleNegative", "ChemoGrade", "Proliferation", "HistologyType", "LNStatus", "TumourStage", "original_shape_Elongation", "original_shape_Flatness", "original_shape_LeastAxisLength", "original_shape_MajorAxisLength", "original_shape_Maximum2DDiameterColumn", "original_shape_Maximum2DDiameterRow", "original_shape_Maximum2DDiameterSlice", "original_shape_Maximum3DDiameter", "original_shape_MeshVolume", "original_shape_MinorAxisLength", "original_shape_Sphericity", "original_shape_SurfaceArea", "original_shape_SurfaceVolumeRatio", "original_shape_VoxelVolume", "original_firstorder_10Percentile", "original_firstorder_90Percentile", "original_firstorder_Energy", "original_firstorder_Entropy", "original_firstorder_InterquartileRange", "original_firstorder_Kurtosis", "original_firstorder_Maximum", "original_firstorder_MeanAbsoluteDeviation", "original_firstorder_Mean", "original_firstorder_Median", "original_firstorder_Minimum", "original_firstorder_Range", "original_firstorder_RobustMeanAbsoluteDeviation", "original_firstorder_RootMeanSquared", "original_firstorder_Skewness", "original_firstorder_TotalEnergy", "original_firstorder_Uniformity", "original_firstorder_Variance", "original_glcm_Autocorrelation", "original_glcm_ClusterProminence", "original_glcm_ClusterShade", "original_glcm_ClusterTendency", "original_glcm_Contrast", "original_glcm_Correlation", "original_glcm_DifferenceAverage", "original_glcm_DifferenceEntropy", "original_glcm_DifferenceVariance", "original_glcm_Id", "original_glcm_Idm", "original_glcm_Idmn", "original_glcm_Idn", "original_glcm_Imc1", "original_glcm_Imc2", "original_glcm_InverseVariance", "original_glcm_JointAverage", "original_glcm_JointEnergy", "original_glcm_JointEntropy", "original_glcm_MCC", "original_glcm_MaximumProbability", "original_glcm_SumAverage", "original_glcm_SumEntropy", "original_glcm_SumSquares", "original_gldm_DependenceEntropy", "original_gldm_DependenceNonUniformity", "original_gldm_DependenceNonUniformityNormalized", "original_gldm_DependenceVariance", "original_gldm_GrayLevelNonUniformity", "original_gldm_GrayLevelVariance", "original_gldm_HighGrayLevelEmphasis", "original_gldm_LargeDependenceEmphasis", "original_gldm_LargeDependenceHighGrayLevelEmphasis", "original_gldm_LargeDependenceLowGrayLevelEmphasis", "original_gldm_LowGrayLevelEmphasis", "original_gldm_SmallDependenceEmphasis", "original_gldm_SmallDependenceHighGrayLevelEmphasis", "original_gldm_SmallDependenceLowGrayLevelEmphasis", "original_glrlm_GrayLevelNonUniformity", "original_glrlm_GrayLevelNonUniformityNormalized", "original_glrlm_GrayLevelVariance", "original_glrlm_HighGrayLevelRunEmphasis", "original_glrlm_LongRunEmphasis", "original_glrlm_LongRunHighGrayLevelEmphasis", "original_glrlm_LongRunLowGrayLevelEmphasis", "original_glrlm_LowGrayLevelRunEmphasis", "original_glrlm_RunEntropy", "original_glrlm_RunLengthNonUniformity", "original_glrlm_RunLengthNonUniformityNormalized", "original_glrlm_RunPercentage", "original_glrlm_RunVariance", "original_glrlm_ShortRunEmphasis", "original_glrlm_ShortRunHighGrayLevelEmphasis", "original_glrlm_ShortRunLowGrayLevelEmphasis", "original_glszm_GrayLevelNonUniformity", "original_glszm_GrayLevelNonUniformityNormalized", "original_glszm_GrayLevelVariance", "original_glszm_HighGrayLevelZoneEmphasis", "original_glszm_LargeAreaEmphasis", "original_glszm_LargeAreaHighGrayLevelEmphasis", "original_glszm_LargeAreaLowGrayLevelEmphasis", "original_glszm_LowGrayLevelZoneEmphasis", "original_glszm_SizeZoneNonUniformity", "original_glszm_SizeZoneNonUniformityNormalized", "original_glszm_SmallAreaEmphasis", "original_glszm_SmallAreaHighGrayLevelEmphasis", "original_glszm_SmallAreaLowGrayLevelEmphasis", "original_glszm_ZoneEntropy", "original_glszm_ZonePercentage", "original_glszm_ZoneVariance", "original_ngtdm_Busyness", "original_ngtdm_Coarseness", "original_ngtdm_Complexity", "original_ngtdm_Contrast", "original_ngtdm_Strength" ], "y": [ 400, 395, 400, 400, 400, 399, 399, 399, 397, 398, 397, 399, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400 ] } ], "layout": { "template": { "data": { "bar": [ { "error_x": { "color": "#2a3f5f" }, "error_y": { "color": "#2a3f5f" }, "marker": { "line": { "color": "#E5ECF6", "width": 0.5 }, "pattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 } }, "type": "bar" } ], "barpolar": [ { "marker": { "line": { "color": "#E5ECF6", "width": 0.5 }, "pattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 } }, "type": "barpolar" } ], "carpet": [ { "aaxis": { "endlinecolor": "#2a3f5f", "gridcolor": "white", "linecolor": "white", "minorgridcolor": "white", "startlinecolor": "#2a3f5f" }, "baxis": { "endlinecolor": "#2a3f5f", "gridcolor": "white", "linecolor": "white", "minorgridcolor": "white", "startlinecolor": "#2a3f5f" }, "type": "carpet" } ], "choropleth": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "choropleth" } ], "contour": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "contour" } ], "contourcarpet": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "contourcarpet" } ], "heatmap": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "heatmap" } ], "heatmapgl": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "heatmapgl" } ], "histogram": [ { "marker": { "pattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 } }, "type": "histogram" } ], "histogram2d": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "histogram2d" } ], "histogram2dcontour": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "histogram2dcontour" } ], "mesh3d": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "mesh3d" } ], "parcoords": [ { "line": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "parcoords" } ], "pie": [ { "automargin": true, "type": "pie" } ], "scatter": [ { "fillpattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 }, "type": "scatter" } ], "scatter3d": [ { "line": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatter3d" } ], "scattercarpet": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattercarpet" } ], "scattergeo": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattergeo" } ], "scattergl": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattergl" } ], "scattermapbox": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattermapbox" } ], "scatterpolar": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterpolar" } ], "scatterpolargl": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterpolargl" } ], "scatterternary": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterternary" } ], "surface": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "surface" } ], "table": [ { "cells": { "fill": { "color": "#EBF0F8" }, "line": { "color": "white" } }, "header": { "fill": { "color": "#C8D4E3" }, "line": { "color": "white" } }, "type": "table" } ] }, "layout": { "annotationdefaults": { "arrowcolor": "#2a3f5f", "arrowhead": 0, "arrowwidth": 1 }, "autotypenumbers": "strict", "coloraxis": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "colorscale": { "diverging": [ [ 0, "#8e0152" ], [ 0.1, "#c51b7d" ], [ 0.2, "#de77ae" ], [ 0.3, "#f1b6da" ], [ 0.4, "#fde0ef" ], [ 0.5, "#f7f7f7" ], [ 0.6, "#e6f5d0" ], [ 0.7, "#b8e186" ], [ 0.8, "#7fbc41" ], [ 0.9, "#4d9221" ], [ 1, "#276419" ] ], "sequential": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "sequentialminus": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ] }, "colorway": [ "#636efa", "#EF553B", "#00cc96", "#ab63fa", "#FFA15A", "#19d3f3", "#FF6692", "#B6E880", "#FF97FF", "#FECB52" ], "font": { "color": "#2a3f5f" }, "geo": { "bgcolor": "white", "lakecolor": "white", "landcolor": "#E5ECF6", "showlakes": true, "showland": true, "subunitcolor": "white" }, "hoverlabel": { "align": "left" }, "hovermode": "closest", "mapbox": { "style": "light" }, "paper_bgcolor": "white", "plot_bgcolor": "#E5ECF6", "polar": { "angularaxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" }, "bgcolor": "#E5ECF6", "radialaxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" } }, "scene": { "xaxis": { "backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white" }, "yaxis": { "backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white" }, "zaxis": { "backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white" } }, "shapedefaults": { "line": { "color": "#2a3f5f" } }, "ternary": { "aaxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" }, "baxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" }, "bgcolor": "#E5ECF6", "caxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" } }, "title": { "x": 0.05 }, "xaxis": { "automargin": true, "gridcolor": "white", "linecolor": "white", "ticks": "", "title": { "standoff": 15 }, "zerolinecolor": "white", "zerolinewidth": 2 }, "yaxis": { "automargin": true, "gridcolor": "white", "linecolor": "white", "ticks": "", "title": { "standoff": 15 }, "zerolinecolor": "white", "zerolinewidth": 2 } } }, "title": { "text": "Missing Values" } } }, "text/html": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "#This part of the code is to visually represent the missing values in the data\n", "null_feat = pd.DataFrame(len(df['ID']) - df.isnull().sum(), columns = ['Count'])\n", "\n", "trace = go.Bar(x = null_feat.index, y = null_feat['Count'] ,opacity = 0.8, marker=dict(color = 'lightgrey',\n", " line=dict(color='#000000',width=1.5)))\n", "\n", "layout = dict(title = \"Missing Values\")\n", " \n", "fig = dict(data = [trace], layout=layout)\n", "py.iplot(fig)" ] }, { "cell_type": "code", "execution_count": 7, "id": "a58bd077", "metadata": {}, "outputs": [], "source": [ "#Taking the first 12 columns in order to handle the missing values efficiently. \n", "#The rest columns are values derived from the image scans\n", "# the ID column is not needed.\n", "\n", "Df_ = df.iloc[:,1:13]" ] }, { "cell_type": "code", "execution_count": 8, "id": "10d280a2", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "pCR (outcome) object\n", "RelapseFreeSurvival (outcome) float64\n", "Age float64\n", "ER int64\n", "PgR object\n", "HER2 object\n", "TrippleNegative object\n", "ChemoGrade object\n", "Proliferation object\n", "HistologyType object\n", "LNStatus object\n", "TumourStage int64\n", "dtype: object" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Df_.dtypes" ] }, { "cell_type": "code", "execution_count": 9, "id": "67a38250", "metadata": {}, "outputs": [], "source": [ "# we do not handle missing values for the target variable\n", "Df_outcome = Df_[\"RelapseFreeSurvival (outcome)\"]\n", "Df_ = Df_.drop(\"pCR (outcome)\", axis = 1)\n", "Df_ = Df_.drop(\"RelapseFreeSurvival (outcome)\", axis = 1)" ] }, { "cell_type": "code", "execution_count": 10, "id": "21f38d5d", "metadata": {}, "outputs": [ { "data": { "application/vnd.plotly.v1+json": { "config": { "linkText": "Export to plot.ly", "plotlyServerURL": "https://plot.ly", "showLink": false }, "data": [ { "marker": { "color": "lightgrey", "line": { "color": "#000000", "width": 1.5 } }, "opacity": 0.8, "type": "bar", "x": [ "Age", "ER", "PgR", "HER2", "TrippleNegative", "ChemoGrade", "Proliferation", "HistologyType", "LNStatus", "TumourStage" ], "y": [ 400, 400, 399, 399, 399, 397, 398, 397, 399, 400 ] } ], "layout": { "template": { "data": { "bar": [ { "error_x": { "color": "#2a3f5f" }, "error_y": { "color": "#2a3f5f" }, "marker": { "line": { "color": "#E5ECF6", "width": 0.5 }, "pattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 } }, "type": "bar" } ], "barpolar": [ { "marker": { "line": { "color": "#E5ECF6", "width": 0.5 }, "pattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 } }, "type": "barpolar" } ], "carpet": [ { "aaxis": { "endlinecolor": "#2a3f5f", "gridcolor": "white", "linecolor": "white", "minorgridcolor": "white", "startlinecolor": "#2a3f5f" }, "baxis": { "endlinecolor": "#2a3f5f", "gridcolor": "white", "linecolor": "white", "minorgridcolor": "white", "startlinecolor": "#2a3f5f" }, "type": "carpet" } ], "choropleth": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "choropleth" } ], "contour": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "contour" } ], "contourcarpet": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "contourcarpet" } ], "heatmap": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "heatmap" } ], "heatmapgl": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "heatmapgl" } ], "histogram": [ { "marker": { "pattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 } }, "type": "histogram" } ], "histogram2d": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "histogram2d" } ], "histogram2dcontour": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "histogram2dcontour" } ], "mesh3d": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "mesh3d" } ], "parcoords": [ { "line": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "parcoords" } ], "pie": [ { "automargin": true, "type": "pie" } ], "scatter": [ { "fillpattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 }, "type": "scatter" } ], "scatter3d": [ { "line": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatter3d" } ], "scattercarpet": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattercarpet" } ], "scattergeo": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattergeo" } ], "scattergl": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattergl" } ], "scattermapbox": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattermapbox" } ], "scatterpolar": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterpolar" } ], "scatterpolargl": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterpolargl" } ], "scatterternary": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterternary" } ], "surface": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "surface" } ], "table": [ { "cells": { "fill": { "color": "#EBF0F8" }, "line": { "color": "white" } }, "header": { "fill": { "color": "#C8D4E3" }, "line": { "color": "white" } }, "type": "table" } ] }, "layout": { "annotationdefaults": { "arrowcolor": "#2a3f5f", "arrowhead": 0, "arrowwidth": 1 }, "autotypenumbers": "strict", "coloraxis": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "colorscale": { "diverging": [ [ 0, "#8e0152" ], [ 0.1, "#c51b7d" ], [ 0.2, "#de77ae" ], [ 0.3, "#f1b6da" ], [ 0.4, "#fde0ef" ], [ 0.5, "#f7f7f7" ], [ 0.6, "#e6f5d0" ], [ 0.7, "#b8e186" ], [ 0.8, "#7fbc41" ], [ 0.9, "#4d9221" ], [ 1, "#276419" ] ], "sequential": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "sequentialminus": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ] }, "colorway": [ "#636efa", "#EF553B", "#00cc96", "#ab63fa", "#FFA15A", "#19d3f3", "#FF6692", "#B6E880", "#FF97FF", "#FECB52" ], "font": { "color": "#2a3f5f" }, "geo": { "bgcolor": "white", "lakecolor": "white", "landcolor": "#E5ECF6", "showlakes": true, "showland": true, "subunitcolor": "white" }, "hoverlabel": { "align": "left" }, "hovermode": "closest", "mapbox": { "style": "light" }, "paper_bgcolor": "white", "plot_bgcolor": "#E5ECF6", "polar": { "angularaxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" }, "bgcolor": "#E5ECF6", "radialaxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" } }, "scene": { "xaxis": { "backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white" }, "yaxis": { "backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white" }, "zaxis": { "backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white" } }, "shapedefaults": { "line": { "color": "#2a3f5f" } }, "ternary": { "aaxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" }, "baxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" }, "bgcolor": "#E5ECF6", "caxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" } }, "title": { "x": 0.05 }, "xaxis": { "automargin": true, "gridcolor": "white", "linecolor": "white", "ticks": "", "title": { "standoff": 15 }, "zerolinecolor": "white", "zerolinewidth": 2 }, "yaxis": { "automargin": true, "gridcolor": "white", "linecolor": "white", "ticks": "", "title": { "standoff": 15 }, "zerolinecolor": "white", "zerolinewidth": 2 } } }, "title": { "text": "Missing Values in first 12 columns" } } }, "text/html": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "null_feat = pd.DataFrame(len(Df_['Age']) - Df_.isnull().sum(), columns = ['Count'])\n", "\n", "trace = go.Bar(x = null_feat.index, y = null_feat['Count'] ,opacity = 0.8, marker=dict(color = 'lightgrey',\n", " line=dict(color='#000000',width=1.5)))\n", "\n", "layout = dict(title = \"Missing Values in first 12 columns\")\n", " \n", "fig = dict(data = [trace], layout=layout)\n", "py.iplot(fig)" ] }, { "cell_type": "code", "execution_count": 11, "id": "a85388b5", "metadata": {}, "outputs": [], "source": [ "columns = Df_.columns" ] }, { "cell_type": "code", "execution_count": 12, "id": "dfd26bad", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Index(['Age', 'ER', 'PgR', 'HER2', 'TrippleNegative', 'ChemoGrade',\n", " 'Proliferation', 'HistologyType', 'LNStatus', 'TumourStage'],\n", " dtype='object')" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "columns" ] }, { "cell_type": "code", "execution_count": 13, "id": "61316b79", "metadata": {}, "outputs": [ { "data": { "application/vnd.plotly.v1+json": { "config": { "linkText": "Export to plot.ly", "plotlyServerURL": "https://plot.ly", "showLink": false }, "data": [ { "marker": { "color": "lightgrey", "line": { "color": "#000000", "width": 1.5 } }, "opacity": 0.8, "type": "bar", "x": [ "Age", "ER", "PgR", "HER2", "TrippleNegative", "ChemoGrade", "Proliferation", "HistologyType", "LNStatus", "TumourStage" ], "y": [ 400, 400, 400, 400, 400, 400, 400, 400, 400, 400 ] } ], "layout": { "template": { "data": { "bar": [ { "error_x": { "color": "#2a3f5f" }, "error_y": { "color": "#2a3f5f" }, "marker": { "line": { "color": "#E5ECF6", "width": 0.5 }, "pattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 } }, "type": "bar" } ], "barpolar": [ { "marker": { "line": { "color": "#E5ECF6", "width": 0.5 }, "pattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 } }, "type": "barpolar" } ], "carpet": [ { "aaxis": { "endlinecolor": "#2a3f5f", "gridcolor": "white", "linecolor": "white", "minorgridcolor": "white", "startlinecolor": "#2a3f5f" }, "baxis": { "endlinecolor": "#2a3f5f", "gridcolor": "white", "linecolor": "white", "minorgridcolor": "white", "startlinecolor": "#2a3f5f" }, "type": "carpet" } ], "choropleth": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "choropleth" } ], "contour": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "contour" } ], "contourcarpet": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "contourcarpet" } ], "heatmap": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "heatmap" } ], "heatmapgl": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "heatmapgl" } ], "histogram": [ { "marker": { "pattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 } }, "type": "histogram" } ], "histogram2d": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "histogram2d" } ], "histogram2dcontour": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "histogram2dcontour" } ], "mesh3d": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "mesh3d" } ], "parcoords": [ { "line": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "parcoords" } ], "pie": [ { "automargin": true, "type": "pie" } ], "scatter": [ { "fillpattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 }, "type": "scatter" } ], "scatter3d": [ { "line": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatter3d" } ], "scattercarpet": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattercarpet" } ], "scattergeo": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattergeo" } ], "scattergl": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattergl" } ], "scattermapbox": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattermapbox" } ], "scatterpolar": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterpolar" } ], "scatterpolargl": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterpolargl" } ], "scatterternary": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterternary" } ], "surface": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "surface" } ], "table": [ { "cells": { "fill": { "color": "#EBF0F8" }, "line": { "color": "white" } }, "header": { "fill": { "color": "#C8D4E3" }, "line": { "color": "white" } }, "type": "table" } ] }, "layout": { "annotationdefaults": { "arrowcolor": "#2a3f5f", "arrowhead": 0, "arrowwidth": 1 }, "autotypenumbers": "strict", "coloraxis": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "colorscale": { "diverging": [ [ 0, "#8e0152" ], [ 0.1, "#c51b7d" ], [ 0.2, "#de77ae" ], [ 0.3, "#f1b6da" ], [ 0.4, "#fde0ef" ], [ 0.5, "#f7f7f7" ], [ 0.6, "#e6f5d0" ], [ 0.7, "#b8e186" ], [ 0.8, "#7fbc41" ], [ 0.9, "#4d9221" ], [ 1, "#276419" ] ], "sequential": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "sequentialminus": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ] }, "colorway": [ "#636efa", "#EF553B", "#00cc96", "#ab63fa", "#FFA15A", "#19d3f3", "#FF6692", "#B6E880", "#FF97FF", "#FECB52" ], "font": { "color": "#2a3f5f" }, "geo": { "bgcolor": "white", "lakecolor": "white", "landcolor": "#E5ECF6", "showlakes": true, "showland": true, "subunitcolor": "white" }, "hoverlabel": { "align": "left" }, "hovermode": "closest", "mapbox": { "style": "light" }, "paper_bgcolor": "white", "plot_bgcolor": "#E5ECF6", "polar": { "angularaxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" }, "bgcolor": "#E5ECF6", "radialaxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" } }, "scene": { "xaxis": { "backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white" }, "yaxis": { "backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white" }, "zaxis": { "backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white" } }, "shapedefaults": { "line": { "color": "#2a3f5f" } }, "ternary": { "aaxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" }, "baxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" }, "bgcolor": "#E5ECF6", "caxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" } }, "title": { "x": 0.05 }, "xaxis": { "automargin": true, "gridcolor": "white", "linecolor": "white", "ticks": "", "title": { "standoff": 15 }, "zerolinecolor": "white", "zerolinewidth": 2 }, "yaxis": { "automargin": true, "gridcolor": "white", "linecolor": "white", "ticks": "", "title": { "standoff": 15 }, "zerolinecolor": "white", "zerolinewidth": 2 } } }, "title": { "text": "After treating missing values" } } }, "text/html": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "for col in Df_.columns:\n", " Df_[col].fillna(Df_[col].mode()[0], inplace=True)\n", "\n", "null_feat = pd.DataFrame(len(Df_['Age']) - Df_.isnull().sum(), columns = ['Count'])\n", "\n", "trace = go.Bar(x = null_feat.index, y = null_feat['Count'] ,opacity = 0.8, marker=dict(color = 'lightgrey',\n", " line=dict(color='#000000',width=1.5)))\n", "\n", "layout = dict(title = \"After treating missing values\")\n", " \n", "fig = dict(data = [trace], layout=layout)\n", "py.iplot(fig)" ] }, { "cell_type": "code", "execution_count": 14, "id": "79a251eb", "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", "
AgeERPgRHER2TrippleNegativeChemoGradeProliferationHistologyTypeLNStatusTumourStage
count400.000000400.000000400.000000400.000000400.000000400.000000400.000000400.000000400.000000400.000000
mean51.8046740.5475000.4050000.3000000.3325002.3975001.5725001.1475000.5350002.607500
std10.9485220.4983620.4915070.4588310.4716990.5001190.7656430.3550480.4993980.897473
min23.0000000.0000000.0000000.0000000.0000001.0000001.0000001.0000000.0000001.000000
25%44.5167690.0000000.0000000.0000000.0000002.0000001.0000001.0000000.0000002.000000
50%51.0195071.0000000.0000000.0000000.0000002.0000001.0000001.0000001.0000002.000000
75%60.0000001.0000001.0000001.0000001.0000003.0000002.0000001.0000001.0000003.000000
max79.6030121.0000001.0000001.0000001.0000003.0000003.0000002.0000001.0000004.000000
\n", "
" ], "text/plain": [ " Age ER PgR HER2 TrippleNegative \\\n", "count 400.000000 400.000000 400.000000 400.000000 400.000000 \n", "mean 51.804674 0.547500 0.405000 0.300000 0.332500 \n", "std 10.948522 0.498362 0.491507 0.458831 0.471699 \n", "min 23.000000 0.000000 0.000000 0.000000 0.000000 \n", "25% 44.516769 0.000000 0.000000 0.000000 0.000000 \n", "50% 51.019507 1.000000 0.000000 0.000000 0.000000 \n", "75% 60.000000 1.000000 1.000000 1.000000 1.000000 \n", "max 79.603012 1.000000 1.000000 1.000000 1.000000 \n", "\n", " ChemoGrade Proliferation HistologyType LNStatus TumourStage \n", "count 400.000000 400.000000 400.000000 400.000000 400.000000 \n", "mean 2.397500 1.572500 1.147500 0.535000 2.607500 \n", "std 0.500119 0.765643 0.355048 0.499398 0.897473 \n", "min 1.000000 1.000000 1.000000 0.000000 1.000000 \n", "25% 2.000000 1.000000 1.000000 0.000000 2.000000 \n", "50% 2.000000 1.000000 1.000000 1.000000 2.000000 \n", "75% 3.000000 2.000000 1.000000 1.000000 3.000000 \n", "max 3.000000 3.000000 2.000000 1.000000 4.000000 " ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Df_.describe()" ] }, { "cell_type": "code", "execution_count": 15, "id": "cb746d16", "metadata": {}, "outputs": [], "source": [ "#data after handling missing values\n", "Df_concat1 = pd.concat((Df_outcome, Df_), axis=1)\n", "Df_imputed = pd.concat((Df_concat1, df.iloc[:,13:]), axis=1)" ] }, { "cell_type": "code", "execution_count": 16, "id": "fb0a171f", "metadata": {}, "outputs": [], "source": [ "Df_imputed.to_csv(\"treated_missing_vals2_regression_final.csv\") " ] }, { "cell_type": "code", "execution_count": 17, "id": "405ac92c", "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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
RelapseFreeSurvival (outcome)AgeERPgRHER2TrippleNegativeChemoGradeProliferationHistologyTypeLNStatus...original_glszm_SmallAreaHighGrayLevelEmphasisoriginal_glszm_SmallAreaLowGrayLevelEmphasisoriginal_glszm_ZoneEntropyoriginal_glszm_ZonePercentageoriginal_glszm_ZoneVarianceoriginal_ngtdm_Busynessoriginal_ngtdm_Coarsenessoriginal_ngtdm_Complexityoriginal_ngtdm_Contrastoriginal_ngtdm_Strength
count400.000000400.000000400.000000400.000000400.000000400.000000400.000000400.000000400.000000400.000000...4.000000e+024.000000e+024.000000e+02400.0000004.000000e+02400.000000400.000000400.000000400.000000400.000000
mean56.00020851.8046740.5475000.4050000.3000000.3325002.3975001.5725001.1475000.535000...3.957637e-013.911005e-012.722189e+000.0033475.679717e+07178.31124632500.0326200.0569350.0059650.029322
std27.13758410.9485220.4983620.4915070.4588310.4716990.5001190.7656430.3550480.499398...1.666319e-011.615922e-017.648849e-010.0024197.063846e+081045.453432177545.9215680.0471790.0083790.115915
min0.00000023.0000000.0000000.0000000.0000000.0000001.0000001.0000001.0000000.000000...7.050000e-117.050000e-11-3.200000e-160.0000080.000000e+000.0000000.0002480.0000000.0000000.000000
25%38.00000044.5167690.0000000.0000000.0000000.0000002.0000001.0000001.0000000.000000...3.199017e-013.184398e-012.340783e+000.0013891.030473e+0618.7605700.0018260.0186280.0003100.001464
50%55.00000051.0195071.0000000.0000000.0000000.0000002.0000001.0000001.0000001.000000...4.095627e-014.054695e-012.814884e+000.0029443.277334e+0667.9296590.0043830.0477400.0023300.003276
75%73.00000060.0000001.0000001.0000001.0000001.0000003.0000002.0000001.0000001.000000...5.000049e-014.956920e-013.304411e+000.0047989.079686e+06157.3702940.0137690.0853210.0079620.009479
max144.00000079.6030121.0000001.0000001.0000001.0000003.0000003.0000002.0000001.000000...8.773779e-018.571429e-014.947427e+000.0113011.390001e+1020764.6937901000000.0000000.2851000.0607421.145601
\n", "

8 rows × 118 columns

\n", "
" ], "text/plain": [ " RelapseFreeSurvival (outcome) Age ER PgR \\\n", "count 400.000000 400.000000 400.000000 400.000000 \n", "mean 56.000208 51.804674 0.547500 0.405000 \n", "std 27.137584 10.948522 0.498362 0.491507 \n", "min 0.000000 23.000000 0.000000 0.000000 \n", "25% 38.000000 44.516769 0.000000 0.000000 \n", "50% 55.000000 51.019507 1.000000 0.000000 \n", "75% 73.000000 60.000000 1.000000 1.000000 \n", "max 144.000000 79.603012 1.000000 1.000000 \n", "\n", " HER2 TrippleNegative ChemoGrade Proliferation HistologyType \\\n", "count 400.000000 400.000000 400.000000 400.000000 400.000000 \n", "mean 0.300000 0.332500 2.397500 1.572500 1.147500 \n", "std 0.458831 0.471699 0.500119 0.765643 0.355048 \n", "min 0.000000 0.000000 1.000000 1.000000 1.000000 \n", "25% 0.000000 0.000000 2.000000 1.000000 1.000000 \n", "50% 0.000000 0.000000 2.000000 1.000000 1.000000 \n", "75% 1.000000 1.000000 3.000000 2.000000 1.000000 \n", "max 1.000000 1.000000 3.000000 3.000000 2.000000 \n", "\n", " LNStatus ... original_glszm_SmallAreaHighGrayLevelEmphasis \\\n", "count 400.000000 ... 4.000000e+02 \n", "mean 0.535000 ... 3.957637e-01 \n", "std 0.499398 ... 1.666319e-01 \n", "min 0.000000 ... 7.050000e-11 \n", "25% 0.000000 ... 3.199017e-01 \n", "50% 1.000000 ... 4.095627e-01 \n", "75% 1.000000 ... 5.000049e-01 \n", "max 1.000000 ... 8.773779e-01 \n", "\n", " original_glszm_SmallAreaLowGrayLevelEmphasis \\\n", "count 4.000000e+02 \n", "mean 3.911005e-01 \n", "std 1.615922e-01 \n", "min 7.050000e-11 \n", "25% 3.184398e-01 \n", "50% 4.054695e-01 \n", "75% 4.956920e-01 \n", "max 8.571429e-01 \n", "\n", " original_glszm_ZoneEntropy original_glszm_ZonePercentage \\\n", "count 4.000000e+02 400.000000 \n", "mean 2.722189e+00 0.003347 \n", "std 7.648849e-01 0.002419 \n", "min -3.200000e-16 0.000008 \n", "25% 2.340783e+00 0.001389 \n", "50% 2.814884e+00 0.002944 \n", "75% 3.304411e+00 0.004798 \n", "max 4.947427e+00 0.011301 \n", "\n", " original_glszm_ZoneVariance original_ngtdm_Busyness \\\n", "count 4.000000e+02 400.000000 \n", "mean 5.679717e+07 178.311246 \n", "std 7.063846e+08 1045.453432 \n", "min 0.000000e+00 0.000000 \n", "25% 1.030473e+06 18.760570 \n", "50% 3.277334e+06 67.929659 \n", "75% 9.079686e+06 157.370294 \n", "max 1.390001e+10 20764.693790 \n", "\n", " original_ngtdm_Coarseness original_ngtdm_Complexity \\\n", "count 400.000000 400.000000 \n", "mean 32500.032620 0.056935 \n", "std 177545.921568 0.047179 \n", "min 0.000248 0.000000 \n", "25% 0.001826 0.018628 \n", "50% 0.004383 0.047740 \n", "75% 0.013769 0.085321 \n", "max 1000000.000000 0.285100 \n", "\n", " original_ngtdm_Contrast original_ngtdm_Strength \n", "count 400.000000 400.000000 \n", "mean 0.005965 0.029322 \n", "std 0.008379 0.115915 \n", "min 0.000000 0.000000 \n", "25% 0.000310 0.001464 \n", "50% 0.002330 0.003276 \n", "75% 0.007962 0.009479 \n", "max 0.060742 1.145601 \n", "\n", "[8 rows x 118 columns]" ] }, "execution_count": 17, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Df_imputed.describe()" ] }, { "cell_type": "code", "execution_count": 18, "id": "af6d0d6f", "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.boxplot(Df_imputed['Age'])\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 19, "id": "1cc4213b", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "400" ] }, "execution_count": 19, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Df_imputed[\"RelapseFreeSurvival (outcome)\"].count()" ] }, { "cell_type": "code", "execution_count": 20, "id": "c5cf6496", "metadata": {}, "outputs": [], "source": [ "Df_imputed.to_excel(\"preprocessed_dataregression_final.xlsx\") " ] }, { "cell_type": "markdown", "id": "262c95b2", "metadata": {}, "source": [ "As our data does not have string categorical values, there is no need to perform any encoding such as (OneHot encoding)" ] }, { "cell_type": "code", "execution_count": 21, "id": "3a46164e", "metadata": {}, "outputs": [], "source": [ "X = Df_imputed.drop(['RelapseFreeSurvival (outcome)'], axis=1)\n", "y = Df_imputed['RelapseFreeSurvival (outcome)']" ] }, { "cell_type": "markdown", "id": "9d91d7c6", "metadata": {}, "source": [ "Random Forest Regressor is considered good for feature selection due to the following reasons:\n", "1. Importance ranking: Random Forest Regressor assigns an importance score to each feature based on how much it contributes to the predictive performance of the model. This score is calculated by measuring the decrease in model performance when a particular feature is randomly shuffled. Features with higher importance scores are considered more relevant for prediction, while features with lower scores are considered less important. This ranking allows you to identify the most influential features in your dataset.\n", "2. Random Forest handles non-linear relationships: Random Forest Regressor can capture complex non-linear relationships between features and the target variable. \n", "3. Random Forest handles high-dimensional data. As our data has 120 features, it needs to be handled effectively. This allows you to focus on the most informative features and avoid overfitting caused by using too many irrelevant features.\n", "\n", "Overall, Random Forest Regressor's ability to rank feature importance, handle non-linear relationships, handle noise and outliers, and handle high-dimensional data make it a popular choice for feature selection in regression problems. It can help identify the most relevant features for accurate predictions and improve the interpretability of the model." ] }, { "cell_type": "code", "execution_count": 22, "id": "2f796dc2", "metadata": {}, "outputs": [], "source": [ "# Split the data into training and testing sets\n", "X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=62)" ] }, { "cell_type": "code", "execution_count": 23, "id": "e3aadffd", "metadata": {}, "outputs": [], "source": [ "#Random forest algorithm does not require any scaling so we are not performing any scaling here" ] }, { "cell_type": "code", "execution_count": 24, "id": "24e091d3", "metadata": {}, "outputs": [], "source": [ "# Create a random forest regressor model\n", "rf_model = RandomForestRegressor()" ] }, { "cell_type": "code", "execution_count": 25, "id": "4808c3ba", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
RandomForestRegressor()
In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook.
On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.
" ], "text/plain": [ "RandomForestRegressor()" ] }, "execution_count": 25, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Fit the model on the training data\n", "rf_model.fit(X_train, y_train)" ] }, { "cell_type": "code", "execution_count": 26, "id": "5b3233f3", "metadata": {}, "outputs": [], "source": [ "pickle.dump(rf_model, open('RF_feature_selection.pkl', 'wb'))" ] }, { "cell_type": "code", "execution_count": 27, "id": "1c72867a", "metadata": {}, "outputs": [], "source": [ "# Get feature importances\n", "importances = rf_model.feature_importances_" ] }, { "cell_type": "code", "execution_count": 28, "id": "52c6d8b4", "metadata": {}, "outputs": [], "source": [ "# Sort feature importances in descending order\n", "indices = (-importances).argsort()" ] }, { "cell_type": "code", "execution_count": 29, "id": "f231ab24", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Feature ranking:\n", "1. Feature 'original_firstorder_Kurtosis' with importance: 0.05510470152605795\n", "2. Feature 'original_firstorder_Range' with importance: 0.04698628865012044\n", "3. Feature 'original_firstorder_Variance' with importance: 0.03330954424019979\n", "4. Feature 'original_firstorder_Skewness' with importance: 0.032010548596237066\n", "5. Feature 'Age' with importance: 0.03024069319061367\n", "6. Feature 'original_shape_MinorAxisLength' with importance: 0.028898985261354357\n", "7. Feature 'original_glszm_SizeZoneNonUniformity' with importance: 0.027399796117440284\n", "8. Feature 'original_firstorder_RobustMeanAbsoluteDeviation' with importance: 0.025360266435637487\n", "9. Feature 'original_shape_Elongation' with importance: 0.023859022222655853\n", "10. Feature 'original_firstorder_90Percentile' with importance: 0.02244411579869\n", "11. Feature 'original_shape_Maximum2DDiameterRow' with importance: 0.022142005237018675\n", "12. Feature 'original_firstorder_MeanAbsoluteDeviation' with importance: 0.021798934922080473\n", "13. Feature 'original_shape_Flatness' with importance: 0.0207162341004492\n", "14. Feature 'original_glszm_ZonePercentage' with importance: 0.018241876303718187\n", "15. Feature 'original_firstorder_Minimum' with importance: 0.018237812370784767\n", "16. Feature 'original_glrlm_ShortRunHighGrayLevelEmphasis' with importance: 0.015779050452803613\n", "17. Feature 'original_shape_MajorAxisLength' with importance: 0.015434114875923477\n", "18. Feature 'original_firstorder_Maximum' with importance: 0.015413447449160176\n", "19. Feature 'original_firstorder_InterquartileRange' with importance: 0.015225096744826108\n", "20. Feature 'original_glszm_SmallAreaHighGrayLevelEmphasis' with importance: 0.014704382648126657\n", "21. Feature 'original_glszm_ZoneEntropy' with importance: 0.014094973894422949\n", "22. Feature 'original_shape_LeastAxisLength' with importance: 0.013817007842811469\n", "23. Feature 'original_gldm_SmallDependenceLowGrayLevelEmphasis' with importance: 0.012771347042107402\n", "24. Feature 'original_glrlm_RunLengthNonUniformityNormalized' with importance: 0.012749633639124213\n", "25. Feature 'original_glszm_SizeZoneNonUniformityNormalized' with importance: 0.012743614689650296\n", "26. Feature 'original_shape_Sphericity' with importance: 0.011296396183672775\n", "27. Feature 'original_glrlm_RunEntropy' with importance: 0.011288361902931768\n", "28. Feature 'original_glrlm_RunLengthNonUniformity' with importance: 0.010679008822485141\n", "29. Feature 'original_glcm_Imc1' with importance: 0.010584726702234284\n", "30. Feature 'original_gldm_DependenceNonUniformityNormalized' with importance: 0.010462607849498106\n", "31. Feature 'original_gldm_LargeDependenceLowGrayLevelEmphasis' with importance: 0.010375322891210554\n", "32. Feature 'original_gldm_SmallDependenceHighGrayLevelEmphasis' with importance: 0.010370283326824596\n", "33. Feature 'original_gldm_SmallDependenceEmphasis' with importance: 0.0103381143447608\n", "34. Feature 'original_gldm_DependenceVariance' with importance: 0.010107656723690827\n", "35. Feature 'original_firstorder_Median' with importance: 0.009813604807177514\n", "36. Feature 'original_shape_Maximum2DDiameterSlice' with importance: 0.009654680379164244\n", "37. Feature 'original_shape_Maximum2DDiameterColumn' with importance: 0.00939050987773466\n", "38. Feature 'original_glszm_SmallAreaLowGrayLevelEmphasis' with importance: 0.00921459604745768\n", "39. Feature 'original_gldm_DependenceEntropy' with importance: 0.009067406564436529\n", "40. Feature 'original_glszm_GrayLevelNonUniformity' with importance: 0.008274077186055023\n", "41. Feature 'original_glrlm_ShortRunEmphasis' with importance: 0.008107216824995468\n", "42. Feature 'original_glrlm_GrayLevelNonUniformity' with importance: 0.007985779819763455\n", "43. Feature 'original_glrlm_RunPercentage' with importance: 0.007748793705396456\n", "44. Feature 'original_glcm_Correlation' with importance: 0.007591990734104632\n", "45. Feature 'original_glcm_Imc2' with importance: 0.00750119338004583\n", "46. Feature 'original_glszm_ZoneVariance' with importance: 0.007355451446616765\n", "47. Feature 'original_glrlm_RunVariance' with importance: 0.006791279109203258\n", "48. Feature 'original_shape_SurfaceArea' with importance: 0.006642333774730016\n", "49. Feature 'original_gldm_LargeDependenceHighGrayLevelEmphasis' with importance: 0.006633748499112226\n", "50. Feature 'original_shape_SurfaceVolumeRatio' with importance: 0.006591051691512214\n", "51. Feature 'original_firstorder_10Percentile' with importance: 0.0065022649046105096\n", "52. Feature 'original_shape_Maximum3DDiameter' with importance: 0.006403978363569163\n", "53. Feature 'original_glrlm_LongRunHighGrayLevelEmphasis' with importance: 0.006210926183977349\n", "54. Feature 'original_firstorder_RootMeanSquared' with importance: 0.006064878904413886\n", "55. Feature 'original_glcm_MCC' with importance: 0.00593959823464032\n", "56. Feature 'original_glszm_LargeAreaLowGrayLevelEmphasis' with importance: 0.005931983978439075\n", "57. Feature 'original_glszm_SmallAreaEmphasis' with importance: 0.0057685996672992975\n", "58. Feature 'original_glrlm_LongRunLowGrayLevelEmphasis' with importance: 0.005697989502196085\n", "59. Feature 'original_gldm_GrayLevelNonUniformity' with importance: 0.0056703120363287285\n", "60. Feature 'original_gldm_DependenceNonUniformity' with importance: 0.005665725530244449\n", "61. Feature 'original_firstorder_Mean' with importance: 0.005634021402698187\n", "62. Feature 'Proliferation' with importance: 0.005487290998915312\n", "63. Feature 'original_glszm_GrayLevelVariance' with importance: 0.0051343465048214985\n", "64. Feature 'original_glszm_LargeAreaHighGrayLevelEmphasis' with importance: 0.005124092659730522\n", "65. Feature 'original_shape_VoxelVolume' with importance: 0.005102741657972128\n", "66. Feature 'original_gldm_LargeDependenceEmphasis' with importance: 0.004893700922297336\n", "67. Feature 'original_glcm_ClusterProminence' with importance: 0.004887411498961974\n", "68. Feature 'original_glrlm_ShortRunLowGrayLevelEmphasis' with importance: 0.004860244399910072\n", "69. Feature 'original_ngtdm_Strength' with importance: 0.004820932579820711\n", "70. Feature 'original_glszm_HighGrayLevelZoneEmphasis' with importance: 0.004702604531454731\n", "71. Feature 'HER2' with importance: 0.004666051216822496\n", "72. Feature 'original_glcm_ClusterShade' with importance: 0.004494362395061254\n", "73. Feature 'TumourStage' with importance: 0.004354753422446837\n", "74. Feature 'original_ngtdm_Busyness' with importance: 0.003888056006036395\n", "75. Feature 'LNStatus' with importance: 0.003746669279131159\n", "76. Feature 'original_firstorder_Energy' with importance: 0.0033927211742185116\n", "77. Feature 'original_shape_MeshVolume' with importance: 0.0033809862503630813\n", "78. Feature 'original_firstorder_TotalEnergy' with importance: 0.003331560982658568\n", "79. Feature 'original_glrlm_LowGrayLevelRunEmphasis' with importance: 0.003236323085346128\n", "80. Feature 'original_glszm_LargeAreaEmphasis' with importance: 0.0031592258680977004\n", "81. Feature 'original_ngtdm_Coarseness' with importance: 0.0029278497338304393\n", "82. Feature 'PgR' with importance: 0.002792908264317765\n", "83. Feature 'original_glrlm_LongRunEmphasis' with importance: 0.0027361205990063297\n", "84. Feature 'original_glszm_LowGrayLevelZoneEmphasis' with importance: 0.0025901914196228386\n", "85. Feature 'TrippleNegative' with importance: 0.0025394860710902397\n", "86. Feature 'original_gldm_LowGrayLevelEmphasis' with importance: 0.002407448151426572\n", "87. Feature 'original_gldm_HighGrayLevelEmphasis' with importance: 0.0023164479075900688\n", "88. Feature 'original_glrlm_GrayLevelNonUniformityNormalized' with importance: 0.002203335345741068\n", "89. Feature 'HistologyType' with importance: 0.0021562577110362914\n", "90. Feature 'original_ngtdm_Complexity' with importance: 0.002137621247296956\n", "91. Feature 'original_glrlm_GrayLevelVariance' with importance: 0.002068370263032635\n", "92. Feature 'original_ngtdm_Contrast' with importance: 0.002006643645834402\n", "93. Feature 'original_glcm_SumSquares' with importance: 0.001993492702415769\n", "94. Feature 'ChemoGrade' with importance: 0.0019627148908485177\n", "95. Feature 'original_glszm_GrayLevelNonUniformityNormalized' with importance: 0.0019194086963259674\n", "96. Feature 'original_glrlm_HighGrayLevelRunEmphasis' with importance: 0.0018092417461757927\n", "97. Feature 'original_glcm_JointAverage' with importance: 0.0016786539514660182\n", "98. Feature 'original_glcm_Autocorrelation' with importance: 0.0015711679503627657\n", "99. Feature 'original_glcm_SumEntropy' with importance: 0.0015183677087820871\n", "100. Feature 'original_glcm_Idmn' with importance: 0.0013428575044471644\n", "101. Feature 'original_glcm_DifferenceAverage' with importance: 0.001252329921340965\n", "102. Feature 'original_gldm_GrayLevelVariance' with importance: 0.0012431811580960559\n", "103. Feature 'original_glcm_ClusterTendency' with importance: 0.0012118202135541739\n", "104. Feature 'ER' with importance: 0.001027393316153202\n", "105. Feature 'original_glcm_DifferenceEntropy' with importance: 0.0010195942297473956\n", "106. Feature 'original_glcm_Idn' with importance: 0.0010048704306055013\n", "107. Feature 'original_glcm_Idm' with importance: 0.0010013968943942881\n", "108. Feature 'original_firstorder_Entropy' with importance: 0.000980804976599234\n", "109. Feature 'original_glcm_SumAverage' with importance: 0.0009401438903624559\n", "110. Feature 'original_glcm_Contrast' with importance: 0.0009249227274021068\n", "111. Feature 'original_glcm_JointEnergy' with importance: 0.0008338496348948925\n", "112. Feature 'original_glcm_DifferenceVariance' with importance: 0.0008112098405622771\n", "113. Feature 'original_firstorder_Uniformity' with importance: 0.0007487807694215254\n", "114. Feature 'original_glcm_InverseVariance' with importance: 0.0007375776336981828\n", "115. Feature 'original_glcm_Id' with importance: 0.000733579297977616\n", "116. Feature 'original_glcm_JointEntropy' with importance: 0.0007117613829358172\n", "117. Feature 'original_glcm_MaximumProbability' with importance: 0.0006341571822918172\n" ] } ], "source": [ "# Print the feature ranking\n", "print(\"Feature ranking:\")\n", "for i, idx in enumerate(indices):\n", " print(f\"{i+1}. Feature '{X.columns[idx]}' with importance: {importances[idx]}\")" ] }, { "cell_type": "code", "execution_count": 30, "id": "3f8b4176", "metadata": {}, "outputs": [], "source": [ "# Select features with importance greater than 0.025\n", "selected_features = X.columns[importances > 0.025]" ] }, { "cell_type": "code", "execution_count": 31, "id": "66a392a3", "metadata": {}, "outputs": [], "source": [ "# Filter the dataset to include only the selected features\n", "X_selected = X[selected_features]" ] }, { "cell_type": "code", "execution_count": 32, "id": "46073993", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Selected Features:\n", "Index(['Age', 'original_shape_MinorAxisLength', 'original_firstorder_Kurtosis',\n", " 'original_firstorder_Range',\n", " 'original_firstorder_RobustMeanAbsoluteDeviation',\n", " 'original_firstorder_Skewness', 'original_firstorder_Variance',\n", " 'original_glszm_SizeZoneNonUniformity'],\n", " dtype='object')\n" ] } ], "source": [ "# Print the selected features\n", "print(\"Selected Features:\")\n", "print(X_selected.columns)" ] }, { "cell_type": "code", "execution_count": 33, "id": "12384040", "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", "
Ageoriginal_shape_MinorAxisLengthoriginal_firstorder_Kurtosisoriginal_firstorder_Rangeoriginal_firstorder_RobustMeanAbsoluteDeviationoriginal_firstorder_Skewnessoriginal_firstorder_Varianceoriginal_glszm_SizeZoneNonUniformity
Age1.000000-0.039905-0.2371000.0039890.1840210.0464790.120923-0.005217
original_shape_MinorAxisLength-0.0399051.0000000.2131890.5668470.1202340.2512250.2228450.488662
original_firstorder_Kurtosis-0.2371000.2131891.0000000.073074-0.528313-0.006455-0.3042410.012039
original_firstorder_Range0.0039890.5668470.0730741.0000000.6627130.5329420.7840920.332502
original_firstorder_RobustMeanAbsoluteDeviation0.1840210.120234-0.5283130.6627131.0000000.4174890.9383490.107124
original_firstorder_Skewness0.0464790.251225-0.0064550.5329420.4174891.0000000.4530370.121859
original_firstorder_Variance0.1209230.222845-0.3042410.7840920.9383490.4530371.0000000.128130
original_glszm_SizeZoneNonUniformity-0.0052170.4886620.0120390.3325020.1071240.1218590.1281301.000000
\n", "
" ], "text/plain": [ " Age \\\n", "Age 1.000000 \n", "original_shape_MinorAxisLength -0.039905 \n", "original_firstorder_Kurtosis -0.237100 \n", "original_firstorder_Range 0.003989 \n", "original_firstorder_RobustMeanAbsoluteDeviation 0.184021 \n", "original_firstorder_Skewness 0.046479 \n", "original_firstorder_Variance 0.120923 \n", "original_glszm_SizeZoneNonUniformity -0.005217 \n", "\n", " original_shape_MinorAxisLength \\\n", "Age -0.039905 \n", "original_shape_MinorAxisLength 1.000000 \n", "original_firstorder_Kurtosis 0.213189 \n", "original_firstorder_Range 0.566847 \n", "original_firstorder_RobustMeanAbsoluteDeviation 0.120234 \n", "original_firstorder_Skewness 0.251225 \n", "original_firstorder_Variance 0.222845 \n", "original_glszm_SizeZoneNonUniformity 0.488662 \n", "\n", " original_firstorder_Kurtosis \\\n", "Age -0.237100 \n", "original_shape_MinorAxisLength 0.213189 \n", "original_firstorder_Kurtosis 1.000000 \n", "original_firstorder_Range 0.073074 \n", "original_firstorder_RobustMeanAbsoluteDeviation -0.528313 \n", "original_firstorder_Skewness -0.006455 \n", "original_firstorder_Variance -0.304241 \n", "original_glszm_SizeZoneNonUniformity 0.012039 \n", "\n", " original_firstorder_Range \\\n", "Age 0.003989 \n", "original_shape_MinorAxisLength 0.566847 \n", "original_firstorder_Kurtosis 0.073074 \n", "original_firstorder_Range 1.000000 \n", "original_firstorder_RobustMeanAbsoluteDeviation 0.662713 \n", "original_firstorder_Skewness 0.532942 \n", "original_firstorder_Variance 0.784092 \n", "original_glszm_SizeZoneNonUniformity 0.332502 \n", "\n", " original_firstorder_RobustMeanAbsoluteDeviation \\\n", "Age 0.184021 \n", "original_shape_MinorAxisLength 0.120234 \n", "original_firstorder_Kurtosis -0.528313 \n", "original_firstorder_Range 0.662713 \n", "original_firstorder_RobustMeanAbsoluteDeviation 1.000000 \n", "original_firstorder_Skewness 0.417489 \n", "original_firstorder_Variance 0.938349 \n", "original_glszm_SizeZoneNonUniformity 0.107124 \n", "\n", " original_firstorder_Skewness \\\n", "Age 0.046479 \n", "original_shape_MinorAxisLength 0.251225 \n", "original_firstorder_Kurtosis -0.006455 \n", "original_firstorder_Range 0.532942 \n", "original_firstorder_RobustMeanAbsoluteDeviation 0.417489 \n", "original_firstorder_Skewness 1.000000 \n", "original_firstorder_Variance 0.453037 \n", "original_glszm_SizeZoneNonUniformity 0.121859 \n", "\n", " original_firstorder_Variance \\\n", "Age 0.120923 \n", "original_shape_MinorAxisLength 0.222845 \n", "original_firstorder_Kurtosis -0.304241 \n", "original_firstorder_Range 0.784092 \n", "original_firstorder_RobustMeanAbsoluteDeviation 0.938349 \n", "original_firstorder_Skewness 0.453037 \n", "original_firstorder_Variance 1.000000 \n", "original_glszm_SizeZoneNonUniformity 0.128130 \n", "\n", " original_glszm_SizeZoneNonUniformity \n", "Age -0.005217 \n", "original_shape_MinorAxisLength 0.488662 \n", "original_firstorder_Kurtosis 0.012039 \n", "original_firstorder_Range 0.332502 \n", "original_firstorder_RobustMeanAbsoluteDeviation 0.107124 \n", "original_firstorder_Skewness 0.121859 \n", "original_firstorder_Variance 0.128130 \n", "original_glszm_SizeZoneNonUniformity 1.000000 " ] }, "execution_count": 33, "metadata": {}, "output_type": "execute_result" } ], "source": [ "data_correlation = X_selected.corr()\n", "data_correlation" ] }, { "cell_type": "code", "execution_count": 34, "id": "28d2b7de", "metadata": { "scrolled": true }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAABFIAAAPiCAYAAABc1/nxAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8pXeV/AAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOzdd1yTxx8H8E8Iey8BURAQERU3brFuxW3d2zrqxr2quEfVuqrVWhe22mrd1jrqwoEbRVGQJUOGLNkbkt8faDQkYFSG8Pu8X6/n9TKXuyd35+UJuXzvHoFYLBaDiIiIiIiIiIg+SqmsK0BEREREREREVF5wIoWIiIiIiIiISEGcSCEiIiIiIiIiUhAnUoiIiIiIiIiIFMSJFCIiIiIiIiIiBXEihYiIiIiIiIhIQZxIISIiIiIiIiJSECdSiIiIiIiIiIgUxIkUIiIiIiIiIiIFcSKFiIiIiIiIiEhBnEghIiIiIiIiojJ348YN9OzZE+bm5hAIBDh16tRHy1y/fh2NGzeGuro6bGxs8Ouvv5Z4PTmRQkRERERERERlLi0tDfXr18f27dsVyh8cHIxu3brByckJjx8/xg8//AAXFxccP368ROspEIvF4hJ9BSIiIiIiIiKiTyAQCHDy5En06dOn0Dzz58/HmTNn4OvrK0mbOHEinjx5gjt37pRY3RiRQkREREREREQlIisrC8nJyVJHVlZWsZz7zp076Ny5s1Raly5d8PDhQ+Tk5BTLa8ijXGJnJiKiYpMT97Ksq1AurXR0LesqlDsP8t6UdRXKpQ4Co7KuQrnTKCu7rKtQLvmrqpZ1Fcod41wG4H+OQFVBWVeh3FkQerCsq1Cosvxbcu3237F8+XKptKVLl2LZsmVffO7Xr1/D1NRUKs3U1BS5ubmIi4tD5cqVv/g15OFEChERERERERGViIULF2LWrFlSaWpqasV2foFAetLv3e4lBdOLEydSiIiIiIiIiCoyUV6ZvbSamlqxTpx8yMzMDK9fv5ZKi4mJgbKyMoyMSi5alHukEBEREREREVG506JFC1y6dEkq7b///oOjoyNUVFRK7HU5kUJEREREREREZS41NRVeXl7w8vICkH97Yy8vL4SFhQHIXyY0cuRISf6JEyciNDQUs2bNgq+vL/bt24e9e/dizpw5JVpPLu0hIiIiIiIiqsjEorKugUIePnyIdu3aSR6/21tl1KhRcHNzQ1RUlGRSBQCsra1x7tw5zJw5E7/88gvMzc3x888/o1+/fiVaT06kEBEREREREVGZa9u2rWSzWHnc3Nxk0r755hs8evSoBGslixMpRERERERERBWZqHxEpJQX3COFiIiIiIiIiEhBjEghIiIiIiIiqsDE5WSPlPKCESlERERERERERAriRAoRERERERERkYK4tIeIiIiIiIioIuNms8WKESlERERERERERApiRAoRERERERFRRcbNZosVI1KIiIiIiIiIiBTEiRQiIiIiIiIiIgVxaQ8RERERERFRRSbKK+saVCiMSCEiIiIiIiIiUhAjUoiIiIiIiIgqMm42W6wYkUJEREREREREpCBGpBARERERERFVZCJGpBQnRqQQERERERERESmIEylERERERERERAri0h4iIiIiIiKiCkzMzWaLFSNSiIiIiIiIiIgUxIgUIiIiIiIiooqMm80WK0akEBEREREREREpiBMpREREREREREQK4tIeIiIiIiIiooqMm80WK0akEBEREREREREpiBEpRERERERERBWZKK+sa1ChMCKFiIiIiIiIiEhBjEghIvqI27dvw8nJCZ06dcKFCxfKujpfhYde3tj/5zH4vAhEbPwbbF3rig5tWpZ1tcpUuxnfovGQ9tDQ00K4VyDOurohNiCiyDK1uzZB+9kDYGhpgjdhMbjy09/wvfhQbl6nyb3Qad4g3Nl3HudXHCyJJpSJYTOHwXmYM7T1tOH32A+/LP4FYf5hhebvOqQrOvTvgGp21QAAgd6BcFvvBn8vf7n5B04ZiO8WfIdTe05h1/JdJdKGktJgREc0mdANWib6iAuIwLXlBxFx36/Q/FWb2aPtkmEwrlEFqTGJePDrWTw5eFUqTw3nJmg9pz/0LE2QFBaDm+uPIrCQMdd0Sk+0mT8Innsv4Nry8jvmqozuDMspvaBqoo80v3AEuLoh6d4LuXlVTfRhu3wkdOrZQNPGDOF7ziPA9YBMvqrfd0OVUZ2hXsUYOW+SEXP2Hl6u/hOirJySbk6JqDOyI+pP6AZNE30k+EfAY/lBvC5irFVubo+WrsNgYFcF6dGJ8Pr1LHwKjLV3qvdqjk6/TEXwxYe4OG6L1HNaZgZotnAwLNvVg1BdFUkvX8N97m7EeYcUY+tKj82ojqg5uTvUTfSR7B+BJ0v+QNw9+f2o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/XzsvGo01HU1EekVhCPD10l9PuqaG0tNWkR4BuD0tO1oM3sA2szuj4SwaJyeuh1RH1yrXpy9Bw0DHbRyeX+NPDr6/TVSnCdCpZoWcPi2NdR1tZAak4iwOz44PWW75LXN6lqjSqP8iOGJNzdJ1XtnqxlIKofRUVR6BGJFd3QjIqKPWr16NX799Ve8elW8a5hz4l4W6/n+X6x0rHh3uylpD/LelHUVyqUOAqOPZyIpjbKyy7oK5ZK/qmpZV6HcMc7l153PEagq+HgmkrIg9GBZV6FQmU/OfTxTCVGv363MXrukMCKFiOgL7NixA02aNIGRkRE8PDywYcMGTJ06tayrRUREREREJYQTKUREXyAgIACrVq3CmzdvYGlpidmzZ2PhwoVlXS0iIiIiovd4++NixYkUIqIvsHnzZmzevLmsq0FERERERKVEqawrQERERERERERUXjAihYiIiIiIiKgi4+2PixUjUoiIiIiIiIiIFMSIFCIiIiIiIqKKjJvNFitGpBARERERERERKYgTKURERERERERECuLSHiIiIiIiIqKKTJRX1jWoUBiRQkRERERERESkIEakEBEREREREVVk3Gy2WDEihYiIiIiIiIhIQZxIISIiIiIiIiJSEJf2EBEREREREVVkIi7tKU6MSCEiIiIiIiIiUhAjUoiIiIiIiIgqMm42W6wYkUJEREREREREpCBGpBARERERERFVZNwjpVgxIoWIiIiIiIiISEGcSCEiIiIiIiIiUhCX9hARERERERFVZFzaU6wYkUJEREREREREpCBGpBARERERERFVYGJxXllXoUJhRAoRERERERERkYI4kUJEREREREREpCAu7SEiIiIiIiKqyLjZbLFiRAoRERERERERkYIYkUJERERERERUkYkZkVKcGJFCRERERERERKQgRqQQERERERERVWTcI6VYMSKFiIiIiIiIiEhBnEghIiIiIiIiIlIQl/YQEZUDKx1dy7oK5ZLrw5VlXYVy50HduWVdhXKp3uiMsq5CuXPBTb2sq1AuNROklHUVyp0sgbCsq1AudWqfXNZVoOJUjjab3bFjBzZs2ICoqCjUqVMHW7ZsgZOTU6H5Dx06hPXr1yMgIAB6enro2rUrfvrpJxgZGZVYHRmRQkRERERERERl7siRI5gxYwYWLVqEx48fw8nJCc7OzggLC5Ob/9atWxg5ciTGjh2L58+f4+jRo3jw4AHGjRtXovXkRAoRERERERFRRSYSldmRlZWF5ORkqSMrK0tuNTdt2oSxY8di3LhxqFWrFrZs2QILCwvs3LlTbv67d+/CysoKLi4usLa2RuvWrTFhwgQ8fPiwJHuTEylEREREREREVDLWrl0LPT09qWPt2rUy+bKzs+Hp6YnOnTtLpXfu3Bm3b9+We+6WLVsiPDwc586dg1gsRnR0NI4dO4bu3buXSFve4R4pRERERERERFQiFi5ciFmzZkmlqampyeSLi4tDXl4eTE1NpdJNTU3x+vVruedu2bIlDh06hEGDBiEzMxO5ubno1asXtm3bVnwNkIMRKUREREREREQVmVhUZoeamhp0dXWlDnkTKe8IBALpqovFMmnv+Pj4wMXFBUuWLIGnpycuXLiA4OBgTJw4sVi7ryBGpBARERERERFRmTI2NoZQKJSJPomJiZGJUnln7dq1aNWqFebOzb/rYL169aClpQUnJyesWrUKlStXLpG6MiKFiIiIiIiIqCIrw81mFaWqqorGjRvj0qVLUumXLl1Cy5Yt5ZZJT0+HkpL0tIZQmH/Lc7FY/ImdpDhOpBARERERERFRmZs1axb27NmDffv2wdfXFzNnzkRYWJhkqc7ChQsxcuRISf6ePXvixIkT2LlzJ16+fAkPDw+4uLigadOmMDc3L7F6cmkPERERERERUUX2CZEhZWnQoEGIj4/HihUrEBUVBQcHB5w7dw7VqlUDAERFRSEsLEySf/To0UhJScH27dsxe/Zs6Ovro3379li3bl2J1pMTKURERERERET0VZg8eTImT54s9zk3NzeZtGnTpmHatGklXCtpXNpDRERERERERKQgRqQQERERERERVWTi8rG0p7xgRAoRERERERERkYIYkUJERERERERUkZWTzWbLC0akEBEREREREREpiBMpREREREREREQK4tIeIiIiIiIiooqMm80WK0akEBEREREREREpiBEpRERERERERBUZN5stVoxIISIiIiIiIiJSECNSiIiIiIiIiCoy7pFSrBiRQkRERERERESkIE6kEBEREREREREpiEt7iIiIiIiIiCoybjZbrBiRQkRERERERESkIEakEBEREREREVVkjEgpVoxIISIiIiIiIiJSECdSiIiIiIiIiIgUxKU9RERERERERBWZWFzWNahQGJFC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IiIiIqKiVdDbEJcVTqRQsbOwsICHh0eZ1qHghqMfqlKlSom/vpWV1SfdGrcgc3PzIttgbm7+2eemz/f333+XdRWIiIiIiKiMcSKFKiRbW9uyrsIXUVZWLvdtICIiIiIiqog4kUJERERERERUkYm5tKc4ffo9VomIiIiIiIiI/k8xIoWIiIiIiIioAhOLPn//RpLFiBQiIiIiIiIiIgVxIoWIiIiIiIiISEFc2kNERERERERUkYm42WxxYkQKEREREREREZGCGJFCREREREREVJHx9sfFihEpREREREREREQK4kQKEREREREREZGCuLSHiIiIiIiIqCITicu6BhUKI1KIiIiIiIiIiBTEiBQiIiIiIiKiioy3Py5WjEghIiIiIiIiIlIQI1KIiIiIiIiIKjJGpBQrRqQQERERERERESmIEylERERERERERAri0h4iIiIiIiKiikzM2x8XJ0akEBEREREREREpiBEpRERERERERBUZN5stVoxIISIiIiIiIiJSECdSiIiIiIiIiIgUxKU9RERERERERBWZiJvNFidGpBARERERERERKYgRKUREREREREQVmZibzRYnRqQQERERERERESmIESlEREREREREFRn3SClWjEghIiIiIiIiIlIQJ1KIiIiIiIiIiBTEpT1EROXAg7w3ZV2FculB3bllXYVyp4n3hrKuQrl0sP6Ssq5CuTM+/lpZV6FcWlW5XVlXodw5hfCyrkK5NOBK1bKuQrkzu6wrUASxiJvNFidGpBARERERERERKYgRKUREREREREQVGTebLVaMSCEiIiIiIiKir8KOHTtgbW0NdXV1NG7cGDdv3iwyf1ZWFhYtWoRq1apBTU0N1atXx759+0q0joxIISIiIiIiIqIyd+TIEcyYMQM7duxAq1atsGvXLjg7O8PHxweWlpZyywwcOBDR0dHYu3cvbG1tERMTg9zc3BKtJydSiIiIiIiIiCoycfnYbHbTpk0YO3Ysxo0bBwDYsmULLl68iJ07d2Lt2rUy+S9cuIDr16/j5cuXMDQ0BABYWVmVeD25tIeIiIiIiIiISkRWVhaSk5OljqysLJl82dnZ8PT0ROfOnaXSO3fujNu3b8s995kzZ+Do6Ij169ejSpUqsLOzw5w5c5CRkVEibXmHEylEREREREREFZlIXGbH2rVroaenJ3XIiy6Ji4tDXl4eTE1NpdJNTU3x+vVruc16+fIlbt26hWfPnuHkyZPYsmULjh07hilTppRIN77DpT1EREREREREVCIWLlyIWbNmSaWpqakVml8gEEg9FovFMmnviEQiCAQCHDp0CHp6egDylwf1798fv/zyCzQ0NL6w9vJxIoWIiIiIiIioIhOV3R4pampqRU6cvGNsbAyhUCgTfRITEyMTpfJO5cqVUaVKFckkCgDUqlULYrEY4eHhqFGjxpdVvhBc2kNEREREREREZUpVVRWNGzfGpUuXpNIvXbqEli1byi3TqlUrREZGIjU1VZLm7+8PJSUlVK1atcTqyokUIiIiIiIiIipzs2bNwp49e7Bv3z74+vpi5syZCAsLw8SJEwHkLxMaOXKkJP/QoUNhZGSE7777Dj4+Prhx4wbmzp2LMWPGlNiyHoBLe4iIiIiIiIgqNpG4rGugkEGDBiE+Ph4rVqxAVFQUHBwccO7cOVSrVg0AEBUVhbCwMEl+bW1tXLp0CdOmTYOjoyOMjIwwcOBArFq1qkTryYkUIiIiIiIiIvoqTJ48GZMnT5b7nJubm0yavb29zHKgksaJFCIiIiIiIqKKTFx2m81WRNwjhYiIiIiIiIhIQZxIISIiIiIiIiJSEJf2EBEREREREVVk5WSz2fKCESlERERERERERApiRAoRERERERFRBSYWcbPZ4sSIFCIiIiIiIiIiBTEihYiIiIiIiKgi4x4pxYoRKURERERERERECuJEChERERERERGRgri0h4iIiIiIiKgi49KeYsWIFCIiIiIiIiIiBTEihYiIiIiIiKgiE/P2x8WJESlERERERERERAriRAoRERERERERkYK4tIeIiIiIiIioIuNms8WKESlERERERERERApiRAoRERERERFRBSZmREqxYkQKVVjLli1DgwYNPqlM27ZtMWPGjDKtx7Jly2BqagqBQIBTp05h9OjR6NOnT7HWqbi5ublBX1+/rKvxVXF3d4dAIEBiYmJZV4WIiIiIiIoRI1KowpozZw6mTZv2SWVOnDgBFRWVEqrRx/n6+mL58uU4efIkmjdvDgMDA7Rr1w5i8ZfNIFtZWWHGjBnFPklUmkJCQmBtbY3Hjx9LJqZSUlLQs2dPvH79GpcuXYKFhcVnndvNzQ0zZswo1kmPli1bIioqCnp6esV2ztI0bOYwOA9zhraeNvwe++GXxb8g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IoX+b1hYWMDDQ8E7FJQQLy+vQp+rUqVK6VXkK7RixQrMmTNH7nO6urqlXBsiIiIiIiL5OJFCVIpsbW3LugpfLRMTE5iYVNw7cBARERERUcXAiRQiIiIiIiKiiqyCLrEpK9wjhYiIiIiIiIhIQYxIISIiIiIiIqrAxIxIKVaMSCEiIiIiIiIiUhAnUoiIiIiIiIiIFMSlPUREREREREQVGZf2FCtGpBARERERERERKYgRKUREREREREQVmaisK1CxMCKFiIiIiIiIiEhBnEghIiIiIiIiIlIQl/YQERERERERVWBibjZbrBiRQkRERERERESkIEakEBEREREREVVkjEgpVoxIISIiIiIiIiJSECNSiIiIiIiIiCoy3v64WDEihYiIiIiIiIhIQZxIISIiIiIiIiJSEJf2EBEREREREVVgvP1x8WJEChERERERERGRghiRQkRERERERFSRcbPZYsWIFCIiIiIiIiIiBXEihYiIiIiIiIhIQVzaQ0RERERERFSBcbPZ4sWIFCIiIiIiIiIiBTEihYiIiIiIiKgi42azxYoRKURERERERERECmJEChEREREREVEFJmZESrFiRAoRERERERERkYI4kUJEREREREREpCAu7SEiKgc6CIzKugrlUr3RGWVdhXLnYP0lZV2Fcmn4kxVlXYVyZ9CRTWVdhXIpzy+krKtQ7kzv0qesq1AuRS/6t6yrQMWJS3uKFSNSiIiIiIiIiIgUxIgUIiIiIiIiogqMm80WL0akEBEREREREREpiBMpREREREREREQK4tIeIiIiIiIiooqMS3uKFSNSiIiIiIiIiIgUxIkUIiIiIiIiogpMLCq741Pt2LED1tbWUFdXR+PGjXHz5k2Fynl4eEBZWRkNGjT49Bf9RJxIISIiIiIiIqIyd+TIEcyYMQOLFi3C48eP4eTkBGdnZ4SFhRVZLikpCSNHjkSHDh1KpZ6cSCEiIiIiIiKqwMpLRMqmTZswduxYjBs3DrVq1cKWLVtgYWGBnTt3FlluwoQJGDp0KFq0aPEFvaQ4TqQQERERERERUYnIyspCcnKy1JGVlSWTLzs7G56enujcubNUeufOnXH79u1Cz79//34EBQVh6dKlxV73wnAihYiIiIiIiIhKxNq1a6Gnpyd1rF27ViZfXFwc8vLyYGpqKpVuamqK169fyz13QEAAFixYgEOH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w6QyRqQUJkakEBERERERERHlEyNSiIiIiIiIiMowGSNSChUjUoiIiIiIiIiI8okdKURERERERERE+cShPURERERERERlmExW0iUoWxiRQkRERERERESUT4xIISIiIiIiIirDuPxx4WJEChERERERERFRPrEjhYiIiIiIiIgonzi0h4iIiIiIiKgMk3FoT6FiRAoRERERERERUT4xIoWIiIiIiIioDOPyx4WLESlERERERERERPnEiBQiIiIiIiKiMozLHxcuRqQQEREREREREeUTO1KIiIiIiIiIiPKJQ3uIiEoBx7T0ki5CqXTSW7Oki1DqjHl3vqSLUCr13/tLSReh1FHvP7Wki1AqJQ/9rqSLUOpofN+kpItQKt2MvF3SRSh1bEu6ALng8seFixEpRERERERERET5xIgUIiIiIiIiojKMk80WLkakEBERERERERHlEztSiIiIiIiIiIjyiUN7iIiIiIiIiMowWUkXoIxhRAoRERERERERUT4xIoWIiIiIiIioDONks4WLESlERERERERERPnEiBQiIiIiIiKiMkzGiJRCxYgUIiIiIiIiIvoqbNiwAZUqVYKmpiYaNGiAy5cv55j24MGD6NixI8zMzKCvr4+mTZvCx8enyMvIjhQiIiIiIiIiKnF79+7FDz/8gLlz5+LevXto2bIlunTpgtDQUJXpL126hI4dO+L48ePw9fVF27Zt0aNHD9y7d69Iy8mhPURERERERERlmLSkC5BPv/zyC0aNGoXRo0cDAFavXg0fHx9s3LgRS5cuzZZ+9erVSu+XLFmC//3vfzh69Cjq169fZOVkRAoRERERERERFYm0tDTEx8crvdLS0rKlS09Ph6+vLzp16qS0vVOnTrh27Vq+jiWVSpGQkABjY+NCKXtO2JFCREREREREVIbJICix19KlS2FgYKD0UhVdEh0dDYlEAgsLC6XtFhYWiIiIyFc9V65ciaSkJPTr169Q2i0nHNpDREREREREREVizpw5mDp1qtI2sVicY3qBQHmFIZlMlm2bKn/99Rc8PDzwv//9D+bm5l9W2HxiRwoRERERERERFQmxWJxrx8lHpqamEIlE2aJP3r59my1KJau9e/di1KhR2L9/Pzp06PCvypsfHNpDREREREREVIZJZSX3yi8NDQ00aNAAp0+fVtp++vRpNGvWLMd8f/31F0aMGIE/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g5aDSuzY30T8WWLHLioFjkgpDC9fvsSpU6fQunVrpKWlYf369QgJCVHMu0JERERERERE9DUqkVnEhEIhvL290bBhQzRv3hz+/v44c+bMv5qcsaA+X5I16+vy5dId+vtvjR8/Pse2GT9+fEkXj4iIiIiIiApAKhCU2KssKpGIFGtra1y9erUkDq1w//79HD8rX7588RXkK+Tp6Ynp06er/Cy3FVOIiIiIiIiIyroS6Uj5GhT1csClmbm5OcwLOIEYERERERER0X/Bf7YjhYiIiIiIiOi/oMRXmCljSmSOFCIiIiIiIiKi0ogRKURERERERERlmLSkC1DGMCKFiIiIiIiIiCif2JFCRERERERERJRPHNpDREREREREVIZJBSVdgrKFESlERERERERERPnEiBQiIiIiIiKiMkwKhqQUJkakEBERERERERHlEztSiIiIiIiIiIjyiUN7iIiIiIiIiMowWUkXoIxhRAoRERERERERUT4xIoWIiIiIiIioDOPyx4WLESlERERERERERPnEiBQiIiIiIiKiMkxa0gUoYxiRQkRERERERESUT+xIISIiIiIiIiLKJw7tISIiIiIiIirDuPxx4WJEChERERERERFRPjEihYiIiIiIiKgM4/LHhYsRKURERERERERE+cSOFCIiIiIiIiKifOLQHiIiIiIiIqIyTFrSBShjGJFCRERERERERJRPjEghIiIiIiIiKsMYkVK4GJFCRERERERERJRPjEghIiIiIiIiKsNkXP64UDEihYiIiIiIiIgon9iRQkRERERERESUTxzaQ0RUCgRpaJR0EUqlxoKEki5CqbPIqm1JF6FUkjx5UdJFKHWSh35X0kUolQx2bi/pIpQ6iRNGlnQRSiURypd0EagQcbLZwsWIFCIiIiIiIiKifGJEChEREREREVEZxoiUwsWIFCIiIiIiIiKifGJHChERERERERFRPnFoDxEREREREVEZJivpApQxjEghIiIiIiIiIsonRqQQERERERERlWFSQUmXoGxhRAoRERERERERUT4xIoWIiIiIiIioDOPyx4WLESlERERERERERPnEjhQiIiIiIiIionzi0B4iIiIiIiKiMoxDewoXI1KIiIiIiIiIiPKJHSlEREREREREZZisBF8FtWHDBlSqVAmamppo0KABLl++nGv6ixcvokGDBtDU1ISdnR02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IiIiKsM42WzhYkQKEREREREREVE+MSKFiIiIiIiIqAyTco6UQsWIFCIiIiIiIiKifGJHChERERERERFRPnFoDxEREREREVEZxoE9hYsRKURERERERERE+cSIFCIiIiIiIqIyjJPNFi5GpBARERERERER5RM7UoiIiIiIiIiI8olDe4iIiIiIiIjKMGlJF6CMYUQKEREREREREVE+MSKFiIiIiIiIqAyTcbLZQsWIFCIiIiIiIiKifGJEChEREREREVEZxjlSChcjUoiIiIiIiIiI8okdKURERERERERE+cShPUREpYBpJicI+xJpAlFJF6HUOYzXJV2EUul7514lXYRSR+P7JiVdhFIpccLIki5CqaO7cVtJF6FUEtaaV9JFoELEyWYLFyNSiIiIiIiIiIjyiREpRERERERERGUYJ5stXIxIISIiIiIiIiLKJ3akEBERERERERHlE4f2EBEREREREZVhUhknmy1MjEghIiIiIiIiIsonRqQQERERERERlWGMRylcjEghIiIiIiIiIsonRqQQERERERERlWFSxqQUKkakEBERERERERHlEztSiIiIiIiIiIjyiUN7iIiIiIiIiMowGYf2FCpGpBARERERERER5RMjUoiIiIiIiIjKMGlJF6CMYUQKEREREREREVE+sSOFiIiIiIiIiCifOLSHiIiIiIiIqAyTcrLZQsWIFCIiIiIiIiIqVWJiYjB06FAYGBjAwMAAQ4cORWxsbI7pMzIyMGvWLNSuXRs6OjooV64chg0bhjdv3hT42OxIISIiIiIiIirDZCX4X1EZNGgQ7t+/j5MnT+LkyZO4f/8+hg4dmmP65ORk3L17F+7u7rh79y4OHjyIoKAg9OzZs8DH5tAeIiIiIiIiIioSaWlpSEtLU9omFoshFou/eJ+BgYE4efIkbty4gcaNGwMAtmzZgqZNm+LJkyeoWrVqtjwGBgY4ffq00rZ169ahUaNGCA0NhY2NTb6Pz4gUIiIiIiIiojJMWoKvpUuXKobffHwtXbr0X9Xn+vXrMDAwUHSiAECTJk1gYGCAa9eu5Xs/cXFxEAgEMDQ0LNDxGZFCREREREREREVizpw5mDp1qtK2fxONAgAREREwNzfPtt3c3BwRERH52kdqaipmz56NQYMGQV9fv0DHZ0QKERERERERERUJsVgMfX19pVdOHSkeHh4QCAS5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5fxb9uzrpW6//Th//ny+5RCjoUOHZnpuhg4dKnQ8IiIiIqJCRSaTCfZRGHFEChVKZcuWhb9/+s7y+SkoKCjTfaVLl86/ICI0a9asTPuQ6OpmvCQlERERERGRGLCQQpRHcns54MLExMQEJiZFqys9EREREREVDiykEBERERERERViUi5/nKvYI4WIiIiIiIiIKJs4IoWIiIiIiIioEJNxREqu4ogUIiIiIiIiIqJsYiGFiIiIiIiIiCibOLWHiIiIiIiIqBCTyji1JzdxRAoRERERERERUTZxRAoRERERERFRIcbxKLmLI1KIiIiIiIiIiLKJhRQiIiIiIiIiomzi1B4iIiIiIiKiQkzKyT25iiNSiIiIiIiIiIiyiSNSiIiIiIiIiAoxjkjJXRyRQkRERERERESUTRyRQkRERERERFSIyWQckZKbOCKFiIiIiIiIiCibWEghIiIiIiIiIsomTu0hIiIiIiIiKsTYbDZ3cUQKEREREREREVE2cUQKERERERERUSEm44iUXMURKURERERERERE2cRCChERERERERFRNnFqDxEREREREVEhJpNxak9u4ogUIiIiIiIiIqJs4ogUIiIiIiIiokKMyx/nLo5IISIiIiIiIiLKJo5IISIiIiIiIirE2CMld3FEChERERERERFRNrGQQkRERERERESUTZzaQ0RUADxQkwgdoUBq2SxO6AgFTvfTZYSOUCC9nHpM6AgFzpWXV4WOUCApo7TQEQocpaq/Cx2hQGp/e47QESgXsdls7uKIFCIiIiIiIiKibOKIFCIiIiIiIqJCTMYRKbmKI1KIiIiIiIiIiLKJhRQiIiIiIiIiomzi1B4iIiIiIiKiQkwq49Se3MQRKURERERERERE2cQRKURERERERESFGJvN5i6OSCEiIiIiIiIiyiaOSCEiIiIiIiIqxNgjJXdxRAoRERERERERUTaxkEJERERERERElE2c2kNERERERERUiLHZbO7iiBQiIiIiIiIiomziiBQiIiIiIiKiQozNZnMXR6QQEREREREREWUTCylERERERERERNnEqT1EREREREREhRibzeYujkghIiIiIiIiIsomjkghIiIiIiIiKsTYbDZ3cUQKEREREREREVE2sZBCREREREREVIjJBPwvr7x9+xb9+/eHnp4e9PT00L9/f8TGxmb78f/73/8gkUiw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x/u9x74cUkwDRlPcoGxSHLKkJKQ8forXU+cjwccvv19ennh6+DLUDbRRZWxnaJjo4929ZzjfbxES/vt9UsxEH5qlFfuZOZ76cl0ZVreEWZeGiH/6GkfrjAYAaJQwUDjGeng7WA9vh1cX7+JsV8+8f1H54Nnhy1Az0Ebl/85b3L1nuPDVedPI4Ly1/Oa8lfvvvB3/77yVd2kBZXVV1F8/WuFxd//Yh7uL9+fp68kPzw99utasx3b5dM5Cn8G/70J8/HzOSqQ/Z81Pz5N/blDdEuW6fjpnJ2uPAgCoaKqjxvxBKFbSEGmJyXj/4AWujvgbzw9dzr8XJiK3Q+9j0MgvNz0X/rkWANCxdQt4/j5OqFhURElkLE2JnlQqReXKldGjRw/Mni3OJnkFISOR0Fq2bInKlStjxYqc3+mdb9YvDxIVfsOaFbyeIkJbf9r0+wdROl0NC8dIhPx05SXvIP+In1u/rWhS4tudH9L+9pzvH0QKVItnvAKoGBjrVRLse79+d0+w751XOCJFhJ48eQIfHx80adIESUlJWLlyJcLDw9GnTx+ho8kVhIxEYvHmzRv4+PjgzJkzWLlypdBxiIiIiIjoJ7CQIkJKSkrw9vbG+PHjIZPJULVqVZw6dSpfmmV+9vVqM986fvw4zM3NBc+YmfPnz6N169aZ7v/wIecrPhD9DHt7e7x9+xYLFixApUrC3Q0gIiIioqKJE1FyFwspIlS2bFn4+/sLmiEoKCjTfaVLl0axYsUEz5iZWrVqZZmfKL89fvxY6AhERERERJRLWEihDOXmkrT5rVixYgU6PxEREREREYkXCylEREREREREhZiUU3tylZLQAYiIiIiIiIiICgqOSCEiIiIiIiIqxNhsNndxRAoRERERERERUTaxkEJERERERERElE2c2kNERERERERUiEnBqT25iSNSiIiIiIiIiIiyiSNSiIiIiIiIiAoxNpvNXRyRQkRERERERESUTSykEBERERERERFlE6f2EBERERERERViUk7tyVUckUJERERERERElE0ckUJERERERERUiMm4/HGu4ogUIiIiIiIiIqJs4ogUIiIiIiIiokKMPVJyF0ekEBERERERERFlEwspRERERERERETZxKk9RERERERERIWYjFN7chVHpBARERERERERZRNHpBAREREREREVYlz+OHdxRAoRERERERERUTaxkEJERERERERElE2c2kNERERERERUiLHZbO7iiBQiIiIiIiIiomziiBQiIiIiIiKiQowjUnIXR6QQEREREREREWUTR6QQERERERERFWIcj5K7OCKFiIiIiIiIiCibWEghIiIiIiIiIsomiYxdZ4iI6AclJSVh3rx5mDx5MtTV1YWOUyDwnP0Ynrec4zn7MTxvOcdz9mN43nKO54zEgoUUIiL6YXFxcdDT08O7d++gq6srdJwCgefsx/C85RzP2Y/hecs5nrMfw/OWczxnJBac2kNERERERERElE0spBARERERERERZRMLKURERERERERE2cRCChER/TB1dXXMmDGDDd9ygOfsx/C85RzP2Y/hecs5nrMfw/OWczxnJBZsNktERERERERElE0ckUJERERERERElE0spBARERERERERZRMLKURERERERERE2cRCChERERERERFRNrGQQkRERERERESUTSykEBFRjiUnJ+PevXtITU0VOgoRZSIxMVHoCFSIPX36FM+ePZN/HRAQgNGjR2Pt2rUCpqLCyMXFBefOnRM6BpECFaEDEBFRwZGQkICRI0di06ZNAICwsDBYWlrCzc0NpUqVwqRJkwROKF6xsbEICAjAq1evIJVKFfY5OzsLlErcTpw4AW1tbTRq1AgA8Ndff2HdunWwsbHBX3/9BQMDA4ETio9UKoWnpydWr16Nly9fyn9Gp02bBnNzc7i6ugodUbT4M5ozffr0wZAhQ9C/f39ERUWhZcuWqFKlCrZu3YqoqChMnz5d6IiitWXLFqxevRrh4eG4dOkSzMzMsGzZMlhYWKBjx45CxxOd9+/fo1WrVihbtiwGDhyIAQMGoHTp0kLHoqJORkRElE1ubm6ymjVrys6fPy/T0tKSPXz4UCaTyWSHDh2S1ahRQ+B04nX48GGZjo6OTElJSaanpyfT19eXfxgYGAgdT7SqVq0qO3bsmEwmk8lu3rwpU1dXl02ePFlWt25dmYuLi8DpxMnDw0NmaWkp27p1q6xYsWLyn9Fdu3bJ6tWrJ3A68eLPaM7p6+vLQkNDZTKZTLZ8+XJZgwYNZDKZTHby5EmZhYWFkNFE7e+//5YVL15cNmfOHIWfUS8vL5mDg4PA6cQrOjpatmzZMlmNGjVkKioqMicnJ9mePXtkycnJQkejIopTe4iIKNsOHjyIlStXolGjRpBI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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.subplots(figsize=(10, 8))\n", "sns.heatmap(data_correlation, annot=True)\n", "plt.show()" ] }, { "cell_type": "markdown", "id": "8b277c0d", "metadata": {}, "source": [ "**SELECTED MODEL**" ] }, { "cell_type": "markdown", "id": "47b3434f", "metadata": {}, "source": [ "**Using SVR for regression**" ] }, { "cell_type": "markdown", "id": "f91390ef", "metadata": {}, "source": [ "As the Random forest algorthm was not giving good results for regression, we use SVR to see if that works better." ] }, { "cell_type": "markdown", "id": "ecc45f95", "metadata": {}, "source": [ "Support Vector Regression (SVR) is a popular choice for regression due to its ability to handle non-linear relationships, robustness to outliers, flexibility in kernel selection, and regularization to prevent overfitting. SVR can capture complex patterns and provide accurate predictions by transforming the input features using the kernel trick. It is less affected by outliers, as it focuses on fitting the majority of data within a given tolerance. The choice of kernel allows SVR to handle different types of relationships. Regularization techniques help generalize the model, and support vectors offer interpretability. SVR is effective in high-dimensional spaces, making it suitable for diverse regression tasks." ] }, { "cell_type": "code", "execution_count": 183, "id": "aaf52f7c", "metadata": {}, "outputs": [], "source": [ "# Split the data into training and testing sets from selected data from Random Forest\n", "X_train, X_test, y_train, y_test = train_test_split(X_selected, y, test_size=0.2, random_state=62)" ] }, { "cell_type": "code", "execution_count": 184, "id": "148b450a", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(320, 8)" ] }, "execution_count": 184, "metadata": {}, "output_type": "execute_result" } ], "source": [ "X_train.shape" ] }, { "cell_type": "code", "execution_count": 185, "id": "fe4380a8", "metadata": {}, "outputs": [], "source": [ "# Create a scaler object\n", "scaler = MinMaxScaler()\n", "\n", "# Scale the data\n", "X_train_scaled = scaler.fit_transform(X_train)\n", "X_test_scaled = scaler.transform(X_test)" ] }, { "cell_type": "code", "execution_count": 186, "id": "59a3029d", "metadata": {}, "outputs": [], "source": [ "# Create an SVR model\n", "svr_model = SVR()" ] }, { "cell_type": "code", "execution_count": 187, "id": "adf1ce37", "metadata": {}, "outputs": [], "source": [ "# Define the hyperparameters to tune\n", "parameters = {\n", " 'kernel': ['linear', 'rbf'], \n", " 'C': [0.1, 1, 2, 3, 4, 5, 6, 7, 10, 11, 12, 13, 14, 15, 20, 25], \n", " 'gamma': ['scale', 'auto']\n", "}" ] }, { "cell_type": "code", "execution_count": 188, "id": "dc9a0e11", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
GridSearchCV(cv=30, estimator=SVR(),\n",
       "             param_grid={'C': [0.1, 1, 2, 3, 4, 5, 6, 7, 10, 11, 12, 13, 14, 15,\n",
       "                               20, 25],\n",
       "                         'gamma': ['scale', 'auto'],\n",
       "                         'kernel': ['linear', 'rbf']})
In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook.
On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.
" ], "text/plain": [ "GridSearchCV(cv=30, estimator=SVR(),\n", " param_grid={'C': [0.1, 1, 2, 3, 4, 5, 6, 7, 10, 11, 12, 13, 14, 15,\n", " 20, 25],\n", " 'gamma': ['scale', 'auto'],\n", " 'kernel': ['linear', 'rbf']})" ] }, "execution_count": 188, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Perform grid search with cross-validation to find the best hyperparameters\n", "grid_search = GridSearchCV(estimator=svr_model, param_grid=parameters, cv=30)\n", "grid_search.fit(X_train_scaled, y_train)" ] }, { "cell_type": "code", "execution_count": 189, "id": "7a843b8e", "metadata": {}, "outputs": [], "source": [ "# Get the best hyperparameters and model\n", "best_params = grid_search.best_params_\n", "best_model = grid_search.best_estimator_" ] }, { "cell_type": "code", "execution_count": 190, "id": "1ce5f054", "metadata": {}, "outputs": [], "source": [ "pickle.dump(best_model, open('svr_gridsearch_optimised_using_rf_for_fs.pkl', 'wb'))" ] }, { "cell_type": "code", "execution_count": 191, "id": "1aefc62c", "metadata": {}, "outputs": [], "source": [ "# Predict the target variable for the test data using the best model\n", "y_pred = best_model.predict(X_test_scaled)" ] }, { "cell_type": "code", "execution_count": 192, "id": "edfd23cd", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Mean Squared Error: 549.5702131125488\n", "Best Hyperparameters: {'C': 25, 'gamma': 'auto', 'kernel': 'rbf'}\n" ] } ], "source": [ "# Calculate the mean squared error\n", "mse = mean_squared_error(y_test, y_pred)\n", "print(\"Mean Squared Error:\", mse)\n", "print(\"Best Hyperparameters:\", best_params)" ] }, { "cell_type": "code", "execution_count": 193, "id": "830f0a56", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Root Mean Squared Error: 23.442913921109483\n" ] } ], "source": [ "# Calculate the root mean squared error\n", "rmse = mse ** 0.5\n", "\n", "print(\"Root Mean Squared Error:\", rmse)" ] }, { "cell_type": "code", "execution_count": 194, "id": "74daf99f", "metadata": {}, "outputs": [], "source": [ "# Calculate evaluation metric (MAE)\n", "mae_svr = mean_absolute_error(y_test, y_pred)" ] }, { "cell_type": "code", "execution_count": 195, "id": "d6e1fe60", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Mean Absolute Error (MAE): 18.7882805155843\n" ] } ], "source": [ "# Print the evaluation metric\n", "print(\"Mean Absolute Error (MAE):\", mae_svr)" ] }, { "cell_type": "markdown", "id": "a84c96ec", "metadata": {}, "source": [ "**Other models and methods tried for regression**" ] }, { "cell_type": "markdown", "id": "56dfcae8", "metadata": {}, "source": [ "Random Forest Regressor" ] }, { "cell_type": "code", "execution_count": 48, "id": "3a67b5cf", "metadata": {}, "outputs": [], "source": [ "# Split the data into training and testing sets from selected data from Random Forest\n", "X_train, X_test, y_train, y_test = train_test_split(X_selected, y, test_size=0.2, random_state=42)" ] }, { "cell_type": "code", "execution_count": 49, "id": "854ae5b0", "metadata": {}, "outputs": [], "source": [ "#Random forest does not require any scaling hence we are not performing any scaling here" ] }, { "cell_type": "code", "execution_count": 50, "id": "7150c7e9", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Shape of Training Data : (320, 8)\n", "Shape of Validation Data : (80, 8)\n", "Shape of Training Labels : (320,)\n", "Shape of Validation Labels : (80,)\n" ] } ], "source": [ "print(\"Shape of Training Data :\",X_train.shape)\n", "print(\"Shape of Validation Data :\",X_test.shape)\n", "print(\"Shape of Training Labels :\",y_train.shape)\n", "print(\"Shape of Validation Labels :\",y_test.shape)" ] }, { "cell_type": "code", "execution_count": 51, "id": "b6332246", "metadata": {}, "outputs": [], "source": [ "# Create a random forest regressor model\n", "rf_model2 = RandomForestRegressor()" ] }, { "cell_type": "code", "execution_count": 52, "id": "1311ff93", "metadata": { "scrolled": true }, "outputs": [ { "data": { "text/html": [ "
RandomForestRegressor()
In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook.
On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.
" ], "text/plain": [ "RandomForestRegressor()" ] }, "execution_count": 52, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Fit the model on the training data\n", "rf_model2.fit(X_train, y_train)" ] }, { "cell_type": "code", "execution_count": 53, "id": "92f0fe51", "metadata": {}, "outputs": [], "source": [ "# Predict the target variable for the test data\n", "y_pred = rf_model2.predict(X_test)" ] }, { "cell_type": "code", "execution_count": 54, "id": "a4295ac7", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Mean Squared Error: 809.5888730121528\n" ] } ], "source": [ "# Calculate the mean squared error\n", "mse = mean_squared_error(y_test, y_pred)\n", "print(\"Mean Squared Error:\", mse)" ] }, { "cell_type": "code", "execution_count": 55, "id": "6ff579eb", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Root Mean Squared Error: 28.453275259838765\n" ] } ], "source": [ "# Calculate the root mean squared error\n", "rmse = mse ** 0.5\n", "\n", "print(\"Root Mean Squared Error:\", rmse)" ] }, { "cell_type": "code", "execution_count": 56, "id": "39edc579", "metadata": {}, "outputs": [], "source": [ "# Calculate evaluation metric (MAE)\n", "mae = mean_absolute_error(y_test, y_pred)" ] }, { "cell_type": "code", "execution_count": 57, "id": "80c7b07b", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Mean Absolute Error (MAE): 22.976177083333333\n" ] } ], "source": [ "# Print the evaluation metric\n", "print(\"Mean Absolute Error (MAE):\", mae)" ] }, { "cell_type": "markdown", "id": "7cda386f", "metadata": {}, "source": [ "The regression results obtained from the Random forest are not upto the mark for regression. In order to fine tune the model more, we use gridSearch for hyperparameter tuning." ] }, { "cell_type": "code", "execution_count": 58, "id": "8b153699", "metadata": {}, "outputs": [], "source": [ "# Create a random forest regressor model with gridSearch\n", "rf_model3 = RandomForestRegressor()" ] }, { "cell_type": "code", "execution_count": 59, "id": "52b3c678", "metadata": {}, "outputs": [], "source": [ "# Define the hyperparameters to tune\n", "parameters = {\n", " 'n_estimators': [100, 200, 300, 400, 500], # number of trees in the forest\n", " 'max_depth': [None, 4, 5, 7, 10, 20], # maximum depth of the tree\n", " 'min_samples_split': [2, 5, 5, 7, 10, 20], # minimum number of samples required to split a node\n", " 'min_samples_leaf': [1, 2, 4, 5, 7, 20] # minimum number of samples required at each leaf node\n", "}" ] }, { "cell_type": "code", "execution_count": 60, "id": "39c653ce", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
GridSearchCV(cv=5, estimator=RandomForestRegressor(), n_jobs=-1,\n",
       "             param_grid={'max_depth': [None, 4, 5, 7, 10, 20],\n",
       "                         'min_samples_leaf': [1, 2, 4, 5, 7, 20],\n",
       "                         'min_samples_split': [2, 5, 5, 7, 10, 20],\n",
       "                         'n_estimators': [100, 200, 300, 400, 500]},\n",
       "             scoring='neg_mean_absolute_error')
In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook.
On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.
" ], "text/plain": [ "GridSearchCV(cv=5, estimator=RandomForestRegressor(), n_jobs=-1,\n", " param_grid={'max_depth': [None, 4, 5, 7, 10, 20],\n", " 'min_samples_leaf': [1, 2, 4, 5, 7, 20],\n", " 'min_samples_split': [2, 5, 5, 7, 10, 20],\n", " 'n_estimators': [100, 200, 300, 400, 500]},\n", " scoring='neg_mean_absolute_error')" ] }, "execution_count": 60, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Perform grid search with cross-validation to find the best hyperparameters\n", "grid_search = GridSearchCV(estimator=rf_model, param_grid=parameters,scoring='neg_mean_absolute_error', cv=5, n_jobs=-1)\n", "grid_search.fit(X_train, y_train)" ] }, { "cell_type": "code", "execution_count": 61, "id": "7dc1ff88", "metadata": {}, "outputs": [], "source": [ "# Get the best hyperparameters and model\n", "best_params = grid_search.best_params_\n", "best_model = grid_search.best_estimator_" ] }, { "cell_type": "code", "execution_count": 62, "id": "2ea4c81e", "metadata": {}, "outputs": [], "source": [ "pickle.dump(best_model, open('RF_gridsearch_optimised_using_rf_for_fs.pkl', 'wb'))" ] }, { "cell_type": "code", "execution_count": 63, "id": "f92c04dd", "metadata": {}, "outputs": [], "source": [ "# Predict the target variable for the test data using the best model\n", "y_pred = best_model.predict(X_test)" ] }, { "cell_type": "code", "execution_count": 64, "id": "3042bbca", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Mean Squared Error: 804.8770403973331\n", "Best Hyperparameters: {'max_depth': 10, 'min_samples_leaf': 7, 'min_samples_split': 5, 'n_estimators': 100}\n" ] } ], "source": [ "# Calculate the mean squared error\n", "mse = mean_squared_error(y_test, y_pred)\n", "print(\"Mean Squared Error:\", mse)\n", "print(\"Best Hyperparameters:\", best_params)" ] }, { "cell_type": "code", "execution_count": 65, "id": "4468bc99", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Root Mean Squared Error: 28.37035495719666\n" ] } ], "source": [ "# Calculate the root mean squared error\n", "rmse = mse ** 0.5\n", "\n", "print(\"Root Mean Squared Error:\", rmse)" ] }, { "cell_type": "code", "execution_count": 66, "id": "c4ad93ac", "metadata": {}, "outputs": [], "source": [ "# Calculate evaluation metric (MAE)\n", "mae_rf = mean_absolute_error(y_test, y_pred)" ] }, { "cell_type": "code", "execution_count": 67, "id": "374f6bfb", "metadata": { "scrolled": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Mean Absolute Error (MAE): 22.649918087324103\n" ] } ], "source": [ "# Print the evaluation metric\n", "print(\"Mean Absolute Error (MAE):\", mae_rf)" ] }, { "cell_type": "markdown", "id": "8422d323", "metadata": {}, "source": [ "**MLP Regression using features selected using Random Forest**" ] }, { "cell_type": "code", "execution_count": 68, "id": "d80f50a1", "metadata": {}, "outputs": [], "source": [ "#Split the data into training and testing sets from selected data from Random Forest\n", "X_train, X_test, y_train, y_test = train_test_split(X_selected, y, test_size=0.2, random_state=62)" ] }, { "cell_type": "code", "execution_count": 69, "id": "618563a2", "metadata": {}, "outputs": [], "source": [ "#Scale the features using MinMaxScaler\n", "scaler = MinMaxScaler()\n", "X_train_scaled = scaler.fit_transform(X_train)\n", "X_test_scaled = scaler.transform(X_test)\n", "\n" ] }, { "cell_type": "code", "execution_count": 70, "id": "9b85896a", "metadata": {}, "outputs": [], "source": [ "#Define the parameter grid for grid search\n", "param_grid = {\n", " 'hidden_layer_sizes': [(50,), (100,), (50, 50),(70,30)],\n", " 'alpha': [0.0001, 0.001, 0.01, 0.1]\n", "}" ] }, { "cell_type": "code", "execution_count": 71, "id": "5c19f858", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
GridSearchCV(estimator=MLPRegressor(random_state=42),\n",
       "             param_grid={'alpha': [0.0001, 0.001, 0.01, 0.1],\n",
       "                         'hidden_layer_sizes': [(50,), (100,), (50, 50),\n",
       "                                                (70, 30)]},\n",
       "             scoring='neg_mean_squared_error')
In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook.
On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.
" ], "text/plain": [ "GridSearchCV(estimator=MLPRegressor(random_state=42),\n", " param_grid={'alpha': [0.0001, 0.001, 0.01, 0.1],\n", " 'hidden_layer_sizes': [(50,), (100,), (50, 50),\n", " (70, 30)]},\n", " scoring='neg_mean_squared_error')" ] }, "execution_count": 71, "metadata": {}, "output_type": "execute_result" } ], "source": [ "#Perform grid search\n", "mlp = MLPRegressor(random_state=42)\n", "grid_search = GridSearchCV(estimator=mlp, param_grid=param_grid, scoring='neg_mean_squared_error')\n", "grid_search.fit(X_train_scaled, y_train)\n", "\n" ] }, { "cell_type": "code", "execution_count": 72, "id": "c1e9668f", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Best Hidden Layer Sizes: (50, 50)\n", "Best Alpha: 0.01\n" ] } ], "source": [ "#Retrieve the best hyperparameters\n", "best_hidden_layer_sizes = grid_search.best_params_['hidden_layer_sizes']\n", "best_alpha = grid_search.best_params_['alpha']\n", "print(\"Best Hidden Layer Sizes:\", best_hidden_layer_sizes)\n", "print(\"Best Alpha:\", best_alpha)\n" ] }, { "cell_type": "code", "execution_count": 73, "id": "52a27eb6", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
MLPRegressor(alpha=0.01, hidden_layer_sizes=(50, 50), random_state=42)
In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook.
On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.
" ], "text/plain": [ "MLPRegressor(alpha=0.01, hidden_layer_sizes=(50, 50), random_state=42)" ] }, "execution_count": 73, "metadata": {}, "output_type": "execute_result" } ], "source": [ "#Fit MLP regression with the best hyperparameters\n", "mlp_best = MLPRegressor(hidden_layer_sizes=(best_hidden_layer_sizes), alpha=best_alpha, random_state=42)\n", "mlp_best.fit(X_train_scaled, y_train)" ] }, { "cell_type": "code", "execution_count": 74, "id": "3facee9d", "metadata": {}, "outputs": [], "source": [ "pickle.dump(mlp_best, open('mlp_regression_using_rf_for_fs.pkl', 'wb'))" ] }, { "cell_type": "code", "execution_count": 75, "id": "cb9e8bb9", "metadata": {}, "outputs": [], "source": [ "# Predict on the test set\n", "y_pred = mlp_best.predict(X_test_scaled)" ] }, { "cell_type": "code", "execution_count": 76, "id": "af544e09", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Mean Squared Error: 579.376506515352\n" ] } ], "source": [ "# Evaluate the model\n", "mse = mean_squared_error(y_test, y_pred)\n", "print(\"Mean Squared Error:\", mse)" ] }, { "cell_type": "code", "execution_count": 77, "id": "d1b0010b", "metadata": {}, "outputs": [], "source": [ "# Calculate evaluation metrics\n", "mse = mean_squared_error(y_test, y_pred)\n", "rmse = mse ** 0.5" ] }, { "cell_type": "code", "execution_count": 78, "id": "ea85d7b0", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Mean Squared Error: 579.376506515352\n", "Root Mean Squared Error: 24.070241097989694\n" ] } ], "source": [ "# Print the evaluation metrics\n", "print(\"Mean Squared Error:\", mse)\n", "print(\"Root Mean Squared Error:\", rmse)" ] }, { "cell_type": "code", "execution_count": 79, "id": "97c75de6", "metadata": {}, "outputs": [], "source": [ "# Calculate evaluation metric (MAE)\n", "mae_mlp = mean_absolute_error(y_test, y_pred)" ] }, { "cell_type": "code", "execution_count": 80, "id": "b87fd8ea", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Mean Absolute Error (MAE): 19.04653346456193\n" ] } ], "source": [ "# Print the evaluation metric\n", "print(\"Mean Absolute Error (MAE):\", mae_mlp)" ] }, { "cell_type": "markdown", "id": "67d867f2", "metadata": {}, "source": [ "**XGBoost for regression on data features selected by random forest regressor**" ] }, { "cell_type": "code", "execution_count": 196, "id": "2e2d5d6e", "metadata": {}, "outputs": [], "source": [ "# Split the data into training and testing sets\n", "X_train, X_test, y_train, y_test = train_test_split(X_selected, y, test_size=0.2, random_state=62)" ] }, { "cell_type": "code", "execution_count": 197, "id": "f81b644d", "metadata": {}, "outputs": [], "source": [ "# Create a scaler object\n", "scaler = MinMaxScaler()\n", "\n", "# Scale the data\n", "X_train_scaled = scaler.fit_transform(X_train)\n", "X_test_scaled = scaler.transform(X_test)" ] }, { "cell_type": "code", "execution_count": 198, "id": "8cab006a", "metadata": {}, "outputs": [], "source": [ "# Define the parameter grid for hyperparameter tuning\n", "param_grid = {\n", " 'max_depth': [2, 3, 5, 7, 9],\n", " 'learning_rate': [0.1, 0.01, 0.001, 0.0001],\n", " 'n_estimators': [100, 200, 300],\n", " 'gamma': [0, 0.1, 0.2],\n", " 'subsample': [0.6, 0.8, 1.0],\n", " 'colsample_bytree': [0.6, 0.8, 1.0]\n", "}" ] }, { "cell_type": "code", "execution_count": 199, "id": "63a49f76", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
GridSearchCV(cv=5,\n",
       "             estimator=XGBRegressor(base_score=None, booster=None,\n",
       "                                    callbacks=None, colsample_bylevel=None,\n",
       "                                    colsample_bynode=None,\n",
       "                                    colsample_bytree=None, device=None,\n",
       "                                    early_stopping_rounds=None,\n",
       "                                    enable_categorical=False, eval_metric=None,\n",
       "                                    feature_types=None, gamma=None,\n",
       "                                    grow_policy=None, importance_type=None,\n",
       "                                    interaction_constraints=None,\n",
       "                                    learning_rate=None, m...\n",
       "                                    monotone_constraints=None,\n",
       "                                    multi_strategy=None, n_estimators=None,\n",
       "                                    n_jobs=None, num_parallel_tree=None,\n",
       "                                    random_state=None, ...),\n",
       "             n_jobs=-1,\n",
       "             param_grid={'colsample_bytree': [0.6, 0.8, 1.0],\n",
       "                         'gamma': [0, 0.1, 0.2],\n",
       "                         'learning_rate': [0.1, 0.01, 0.001, 0.0001],\n",
       "                         'max_depth': [2, 3, 5, 7, 9],\n",
       "                         'n_estimators': [100, 200, 300],\n",
       "                         'subsample': [0.6, 0.8, 1.0]},\n",
       "             scoring='neg_mean_squared_error')
In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook.
On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.
" ], "text/plain": [ "GridSearchCV(cv=5,\n", " estimator=XGBRegressor(base_score=None, booster=None,\n", " callbacks=None, colsample_bylevel=None,\n", " colsample_bynode=None,\n", " colsample_bytree=None, device=None,\n", " early_stopping_rounds=None,\n", " enable_categorical=False, eval_metric=None,\n", " feature_types=None, gamma=None,\n", " grow_policy=None, importance_type=None,\n", " interaction_constraints=None,\n", " learning_rate=None, m...\n", " monotone_constraints=None,\n", " multi_strategy=None, n_estimators=None,\n", " n_jobs=None, num_parallel_tree=None,\n", " random_state=None, ...),\n", " n_jobs=-1,\n", " param_grid={'colsample_bytree': [0.6, 0.8, 1.0],\n", " 'gamma': [0, 0.1, 0.2],\n", " 'learning_rate': [0.1, 0.01, 0.001, 0.0001],\n", " 'max_depth': [2, 3, 5, 7, 9],\n", " 'n_estimators': [100, 200, 300],\n", " 'subsample': [0.6, 0.8, 1.0]},\n", " scoring='neg_mean_squared_error')" ] }, "execution_count": 199, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Perform hyperparameter tuning using GridSearchCV\n", "xgb_model_tuned = xgb.XGBRegressor()\n", "grid_search = GridSearchCV(xgb_model_tuned, param_grid, cv=5, scoring='neg_mean_squared_error', n_jobs=-1)\n", "grid_search.fit(X_train_scaled, y_train)\n" ] }, { "cell_type": "code", "execution_count": 200, "id": "e7d5fb0b", "metadata": {}, "outputs": [], "source": [ "# Get the best model from grid search\n", "best_xgb_model = grid_search.best_estimator_" ] }, { "cell_type": "code", "execution_count": 201, "id": "c068dbc8", "metadata": {}, "outputs": [], "source": [ "pickle.dump(best_xgb_model, open('xgb_regressor_rf_feature_selection.pkl', 'wb'))" ] }, { "cell_type": "code", "execution_count": 202, "id": "70270439", "metadata": {}, "outputs": [], "source": [ "# Predict the target variable for the test data\n", "y_pred = best_xgb_model.predict(X_test_scaled)" ] }, { "cell_type": "code", "execution_count": 203, "id": "8821d844", "metadata": {}, "outputs": [], "source": [ "# Calculate evaluation metrics\n", "mse = mean_squared_error(y_test, y_pred)\n", "rmse = mse ** 0.5" ] }, { "cell_type": "code", "execution_count": 204, "id": "ab897c2a", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Mean Squared Error: 528.1187201886179\n", "Root Mean Squared Error: 22.980833757473157\n" ] } ], "source": [ "# Print the evaluation metrics\n", "print(\"Mean Squared Error:\", mse)\n", "print(\"Root Mean Squared Error:\", rmse)" ] }, { "cell_type": "code", "execution_count": 205, "id": "2cefbb8e", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Mean Absolute Error (MAE): 18.521412754058836\n" ] } ], "source": [ "# Calculate evaluation metric (MAE)\n", "mae_xgb = mean_absolute_error(y_test, y_pred)\n", "\n", "# Print the evaluation metric\n", "print(\"Mean Absolute Error (MAE):\", mae_xgb)" ] }, { "cell_type": "markdown", "id": "8dbd1f26", "metadata": {}, "source": [ "**Using selectKBest for feature selection and XGBoost for regression**" ] }, { "cell_type": "code", "execution_count": 91, "id": "6daecd19", "metadata": {}, "outputs": [], "source": [ "# Split the data into training and testing sets\n", "X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=62)" ] }, { "cell_type": "code", "execution_count": 92, "id": "e36af95b", "metadata": {}, "outputs": [], "source": [ "# Create a scaler object\n", "scaler = MinMaxScaler()\n", "\n", "# Scale the data\n", "X_train_scaled = scaler.fit_transform(X_train)\n", "X_test_scaled = scaler.transform(X_test)" ] }, { "cell_type": "code", "execution_count": 93, "id": "2e6d012d", "metadata": {}, "outputs": [], "source": [ "# Perform feature selection using SelectKBest\n", "k_best_selector = SelectKBest(f_regression, k=5)\n", "X_train_selected_skb = k_best_selector.fit_transform(X_train_scaled, y_train)\n", "X_test_selected_skb = k_best_selector.transform(X_test_scaled)" ] }, { "cell_type": "code", "execution_count": 94, "id": "491bd621", "metadata": {}, "outputs": [], "source": [ "\n", "# Define the parameter grid for hyperparameter tuning\n", "param_grid = {\n", " 'max_depth': [2, 3, 5, 7, 9],\n", " 'learning_rate': [0.1, 0.01, 0.001],\n", " 'n_estimators': [50, 100, 200, 300],\n", " 'gamma': [0, 0.1, 0.2],\n", " 'subsample': [0.6, 0.8, 1.0],\n", " 'colsample_bytree': [0.6, 0.8, 1.0],\n", " 'reg_alpha': [0, 0.1, 0.5],\n", " 'reg_lambda': [0, 0.1, 0.5]\n", "}" ] }, { "cell_type": "code", "execution_count": 95, "id": "26452b20", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
GridSearchCV(cv=3,\n",
       "             estimator=XGBRegressor(base_score=None, booster=None,\n",
       "                                    callbacks=None, colsample_bylevel=None,\n",
       "                                    colsample_bynode=None,\n",
       "                                    colsample_bytree=None, device=None,\n",
       "                                    early_stopping_rounds=None,\n",
       "                                    enable_categorical=False, eval_metric=None,\n",
       "                                    feature_types=None, gamma=None,\n",
       "                                    grow_policy=None, importance_type=None,\n",
       "                                    interaction_constraints=None,\n",
       "                                    learning_rate=None, m...\n",
       "                                    multi_strategy=None, n_estimators=None,\n",
       "                                    n_jobs=None, num_parallel_tree=None,\n",
       "                                    random_state=None, ...),\n",
       "             n_jobs=-1,\n",
       "             param_grid={'colsample_bytree': [0.6, 0.8, 1.0],\n",
       "                         'gamma': [0, 0.1, 0.2],\n",
       "                         'learning_rate': [0.1, 0.01, 0.001],\n",
       "                         'max_depth': [2, 3, 5, 7, 9],\n",
       "                         'n_estimators': [50, 100, 200, 300],\n",
       "                         'reg_alpha': [0, 0.1, 0.5],\n",
       "                         'reg_lambda': [0, 0.1, 0.5],\n",
       "                         'subsample': [0.6, 0.8, 1.0]},\n",
       "             scoring='neg_mean_absolute_error')
In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook.
On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.
" ], "text/plain": [ "GridSearchCV(cv=3,\n", " estimator=XGBRegressor(base_score=None, booster=None,\n", " callbacks=None, colsample_bylevel=None,\n", " colsample_bynode=None,\n", " colsample_bytree=None, device=None,\n", " early_stopping_rounds=None,\n", " enable_categorical=False, eval_metric=None,\n", " feature_types=None, gamma=None,\n", " grow_policy=None, importance_type=None,\n", " interaction_constraints=None,\n", " learning_rate=None, m...\n", " multi_strategy=None, n_estimators=None,\n", " n_jobs=None, num_parallel_tree=None,\n", " random_state=None, ...),\n", " n_jobs=-1,\n", " param_grid={'colsample_bytree': [0.6, 0.8, 1.0],\n", " 'gamma': [0, 0.1, 0.2],\n", " 'learning_rate': [0.1, 0.01, 0.001],\n", " 'max_depth': [2, 3, 5, 7, 9],\n", " 'n_estimators': [50, 100, 200, 300],\n", " 'reg_alpha': [0, 0.1, 0.5],\n", " 'reg_lambda': [0, 0.1, 0.5],\n", " 'subsample': [0.6, 0.8, 1.0]},\n", " scoring='neg_mean_absolute_error')" ] }, "execution_count": 95, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Perform hyperparameter tuning using GridSearchCV\n", "xgb_model_tuned = xgb.XGBRegressor()\n", "grid_search = GridSearchCV(xgb_model_tuned, param_grid, cv=3, scoring='neg_mean_absolute_error', n_jobs=-1)\n", "grid_search.fit(X_train_selected_skb, y_train)" ] }, { "cell_type": "code", "execution_count": 96, "id": "09484ef0", "metadata": {}, "outputs": [], "source": [ "# Get the best model from grid search\n", "best_xgb_model = grid_search.best_estimator_" ] }, { "cell_type": "code", "execution_count": 97, "id": "2422cff7", "metadata": {}, "outputs": [], "source": [ "pickle.dump(best_xgb_model, open('xgb_using_selectKbest_for_fs.pkl', 'wb'))" ] }, { "cell_type": "code", "execution_count": 98, "id": "8a157cd5", "metadata": {}, "outputs": [], "source": [ "# Predict the target variable for the test data\n", "y_pred = best_xgb_model.predict(X_test_selected_skb)" ] }, { "cell_type": "code", "execution_count": 99, "id": "752ab933", "metadata": {}, "outputs": [], "source": [ "# Calculate evaluation metrics\n", "mse = mean_squared_error(y_test, y_pred)\n", "rmse = mse ** 0.5" ] }, { "cell_type": "code", "execution_count": 100, "id": "c46b0ef9", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Mean Squared Error: 525.0120976943329\n", "Root Mean Squared Error: 22.913142466591808\n" ] } ], "source": [ "# Print the evaluation metrics\n", "print(\"Mean Squared Error:\", mse)\n", "print(\"Root Mean Squared Error:\", rmse)" ] }, { "cell_type": "code", "execution_count": 101, "id": "2daff419", "metadata": {}, "outputs": [], "source": [ "# Calculate evaluation metric (MAE)\n", "mae = mean_absolute_error(y_test, y_pred)" ] }, { "cell_type": "code", "execution_count": 102, "id": "5f589836", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Mean Absolute Error (MAE): 18.481542746225994\n" ] } ], "source": [ "# Print the evaluation metric\n", "print(\"Mean Absolute Error (MAE):\", mae)" ] }, { "cell_type": "code", "execution_count": null, "id": "b2fbcd2f", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "id": "1f7172c4", "metadata": {}, "source": [ "**Lasso**" ] }, { "cell_type": "markdown", "id": "a8e5c6a2", "metadata": {}, "source": [ "We are trying our Lasso regression for feature selection to see if that gives us the better results" ] }, { "cell_type": "code", "execution_count": 103, "id": "3c78b702", "metadata": {}, "outputs": [], "source": [ "# Split the data into training and testing sets\n", "X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=62)" ] }, { "cell_type": "code", "execution_count": 104, "id": "01403e09", "metadata": {}, "outputs": [], "source": [ "# Create a scaler object\n", "scaler = MinMaxScaler()\n", "\n", "# Scale the data\n", "X_train_scaled = scaler.fit_transform(X_train)\n", "X_test_scaled = scaler.transform(X_test)" ] }, { "cell_type": "code", "execution_count": 105, "id": "abfec7dc", "metadata": {}, "outputs": [], "source": [ "# Perform feature selection using LassoCV\n", "lasso_model = Lasso(alpha=0.1)\n", "lasso_model.fit(X_train_scaled, y_train)\n", "selected_features = lasso_model.coef_ != 0\n", "X_train_selected = X_train_scaled[:, selected_features]\n", "X_test_selected = X_test_scaled[:, selected_features]" ] }, { "cell_type": "code", "execution_count": 106, "id": "20f2caba", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
Lasso(alpha=0.1)
In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook.
On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.
" ], "text/plain": [ "Lasso(alpha=0.1)" ] }, "execution_count": 106, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Perform Lasso regression on selected features\n", "lasso_selected = Lasso(alpha=0.1) # You can adjust the alpha parameter as per your requirement\n", "lasso_selected.fit(X_train_selected, y_train)" ] }, { "cell_type": "code", "execution_count": 107, "id": "06839f76", "metadata": {}, "outputs": [], "source": [ "# Predict on the test set using selected features\n", "y_pred = lasso_selected.predict(X_test_selected)" ] }, { "cell_type": "code", "execution_count": 108, "id": "1ae05424", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Mean Squared Error: 555.4334213527851\n" ] } ], "source": [ "# Evaluate the model\n", "mse = mean_squared_error(y_test, y_pred)\n", "print(\"Mean Squared Error:\", mse)" ] }, { "cell_type": "code", "execution_count": 109, "id": "41cd54fc", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Root Mean Squared Error: 23.567635039451563\n" ] } ], "source": [ "# Calculate the root mean squared error\n", "rmse = mse ** 0.5\n", "\n", "print(\"Root Mean Squared Error:\", rmse)" ] }, { "cell_type": "code", "execution_count": 110, "id": "d25470bd", "metadata": {}, "outputs": [], "source": [ "# Calculate evaluation metric (MAE)\n", "mae = mean_absolute_error(y_test, y_pred)" ] }, { "cell_type": "code", "execution_count": 111, "id": "a7d4f39e", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Mean Absolute Error (MAE): 19.243401855126702\n" ] } ], "source": [ "# Print the evaluation metric\n", "print(\"Mean Absolute Error (MAE):\", mae)" ] }, { "cell_type": "markdown", "id": "e634767a", "metadata": {}, "source": [ "**Using cross-validation to select the right alpha value for lasso**" ] }, { "cell_type": "markdown", "id": "e23319ca", "metadata": {}, "source": [ "In this updated code, after scaling the features, we perform Lasso regression for feature selection using cross-validation to identify the best alpha value. We then select the features based on non-zero coefficients obtained from Lasso. Next, we fit a Lasso regression model on the selected features and predict on the test set. Finally, we evaluate the model's performance using mean squared error. Additionally, we plot the coefficient paths for different alpha values to visualize the impact of regularization on the coefficients." ] }, { "cell_type": "code", "execution_count": 112, "id": "b023f255", "metadata": {}, "outputs": [], "source": [ "# Split the data into training and testing sets\n", "X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=62)" ] }, { "cell_type": "code", "execution_count": 113, "id": "a8d9d2dd", "metadata": {}, "outputs": [], "source": [ "# Create a scaler object\n", "scaler = MinMaxScaler()\n", "\n", "# Scale the data\n", "X_train_scaled = scaler.fit_transform(X_train)\n", "X_test_scaled = scaler.transform(X_test)" ] }, { "cell_type": "code", "execution_count": 114, "id": "9a8d650e", "metadata": {}, "outputs": [], "source": [ "# Define the alpha values to evaluate\n", "alphas = [0.01, 0.1, 1]\n", "\n", "# Perform cross-validation\n", "cv_scores = []\n", "for alpha in alphas:\n", " lasso = Lasso(alpha=alpha)\n", " scores = cross_val_score(lasso, X_train, y_train, scoring='neg_mean_squared_error', cv=5)\n", " cv_scores.append((-1) * scores.mean())\n", "\n", "# Find the alpha value with the lowest cross-validation error\n", "best_alpha = alphas[np.argmin(cv_scores)]" ] }, { "cell_type": "code", "execution_count": 115, "id": "40b66173", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "1" ] }, "execution_count": 115, "metadata": {}, "output_type": "execute_result" } ], "source": [ "best_alpha" ] }, { "cell_type": "code", "execution_count": 116, "id": "6d96d75e", "metadata": {}, "outputs": [], "source": [ "# Perform feature selection using LassoCV\n", "lasso_model = Lasso(alpha=best_alpha)\n", "lasso_model.fit(X_train_scaled, y_train)\n", "selected_features = lasso_model.coef_ != 0\n", "X_train_selected = X_train_scaled[:, selected_features]\n", "X_test_selected = X_test_scaled[:, selected_features]" ] }, { "cell_type": "code", "execution_count": 117, "id": "15a70136", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([False, False, False, True, False, False, False, False, False,\n", " True, False, False, False, False, False, False, False, False,\n", " False, False, False, False, False, False, False, False, False,\n", " False, False, False, False, False, False, False, False, False,\n", " False, False, False, False, False, False, False, False, False,\n", " False, False, False, False, False, False, False, False, False,\n", " False, False, False, False, False, False, False, False, False,\n", " False, False, False, False, False, False, False, False, False,\n", " False, False, False, False, False, False, False, False, False,\n", " False, False, False, False, False, False, False, False, False,\n", " False, False, False, False, False, False, False, False, False,\n", " False, False, False, False, False, False, False, False, False,\n", " False, False, False, False, False, False, False, False, False])" ] }, "execution_count": 117, "metadata": {}, "output_type": "execute_result" } ], "source": [ "selected_features" ] }, { "cell_type": "code", "execution_count": 118, "id": "2bab1676", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
Lasso(alpha=1)
In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook.
On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.
" ], "text/plain": [ "Lasso(alpha=1)" ] }, "execution_count": 118, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Perform Lasso regression on selected features\n", "lasso_selected = Lasso(alpha=best_alpha) # You can adjust the alpha parameter as per your requirement\n", "lasso_selected.fit(X_train_selected, y_train)" ] }, { "cell_type": "code", "execution_count": 119, "id": "eceb37e7", "metadata": {}, "outputs": [], "source": [ "pickle.dump(lasso_selected, open('lasso_regression_using_lasso_fs.pkl', 'wb'))" ] }, { "cell_type": "code", "execution_count": 120, "id": "526289a7", "metadata": {}, "outputs": [], "source": [ "# Predict on the test set using selected features\n", "y_pred = lasso_selected.predict(X_test_selected)" ] }, { "cell_type": "code", "execution_count": 121, "id": "ac4aae3c", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Mean Squared Error: 542.9868063904175\n" ] } ], "source": [ "# Evaluate the model\n", "mse = mean_squared_error(y_test, y_pred)\n", "print(\"Mean Squared Error:\", mse)" ] }, { "cell_type": "code", "execution_count": 122, "id": "3149f8ac", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Root Mean Squared Error: 23.30207729775218\n" ] } ], "source": [ "# Calculate the root mean squared error\n", "rmse = mse ** 0.5\n", "\n", "print(\"Root Mean Squared Error:\", rmse)" ] }, { "cell_type": "code", "execution_count": 123, "id": "ffb1bfc2", "metadata": {}, "outputs": [], "source": [ "# Calculate evaluation metric (MAE)\n", "mae_lasso = mean_absolute_error(y_test, y_pred)" ] }, { "cell_type": "code", "execution_count": 124, "id": "3fa022e3", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Mean Absolute Error (MAE): 18.801837397309708\n" ] } ], "source": [ "# Print the evaluation metric\n", "print(\"Mean Absolute Error (MAE):\", mae_lasso)" ] }, { "cell_type": "markdown", "id": "63d9b22f", "metadata": {}, "source": [ " A plot will be displayed showing the coefficient paths for different alpha values, allowing you to visualize the regularization effect on the coefficients." ] }, { "cell_type": "code", "execution_count": 125, "id": "20ac6cd7", "metadata": {}, "outputs": [ { "data": { "image/png": "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KysL6HFsnK+99ppXV8Xs7OyODc5PMjMzMWLECI/7Dhw4gL1792L58uWYPXu2tP348eMhGUtCQgIWLVqERYsW4dy5c1I0bOrUqThy5EhIzkkQBBFKKAJGEAQRA3AcB41G4yS+KioqPLogMrRaLcaNG4e///3vAMQmxK7o9XrcdNNNuPfee1FbW4tTp04hISEBI0eOxOrVq50iGTzP48MPP0RBQQH69u3r9bzXXXcdBg8ejGeffRYHDhzweMy3336LlpaWgM41ZcoUHDhwAL169cKIESPcfoIlwPr27YtevXph2bJlHgWuNy6++GLo9XocOnTI4/hGjBgBjUYT8HhcI0odhf0PsWgb46233vJ4bqDjETlGdnY2br/9dtxyyy04evQoWlpagvK8BEEQ4YQiYARBEFHC999/72ZpDgBXX301pkyZgtWrV2Pu3Lm46aabUFpair/+9a/Izc11SuV68sknUVZWhgkTJqCgoAD19fV45ZVXoFarMW7cOADA1KlTMWjQIIwYMUKyJl+yZAl69OghueQ9++yzmDRpEsaPH49HHnkEGo0Gb7zxBg4cOICPP/7YSQi6olQq8dlnn+GKK67A6NGjcc8992D8+PFISEjA6dOn8X//93/44osvUFdXF9C5nn76aaxduxZjxozB/fffj379+sFoNOLUqVP43//+h3/9618Bpw1645///CemTp2KUaNG4aGHHkL37t1RUlKCb7/9Fh999JHHxyQmJuK1117D7NmzUVtbi5tuuglZWVmoqqrC3r17UVVVhTfffDPgsQwePBgbNmzAF198gdzcXCQlJaFfv37tvrb+/fujV69eePTRRyEIAtLS0vDFF19g7dq1Hs8NAK+88gpmz54NtVqNfv36ISkpye/zjRw5ElOmTMH555+P1NRUHD58GB988AFGjx7t1IqAIAgiYuhcDxCCIAiiozA3PW8/zIHuueeeEwoLCwWtVisMGDBAeOeddyQ3PcaXX34pTJ48WcjPzxc0Go2QlZUlXH311cLPP/8sHfPiiy8KY8aMETIyMgSNRiN0795duOOOO4RTp045jevnn38WLr/8ciEhIUGIi4sTRo0aJXzxxRd+X1d9fb3w17/+VRg2bJiQmJgoqNVqoXv37sKtt94q/PLLL+06V1VVlXD//fcLRUVFglqtFtLS0oThw4cLjz/+uGAwGKTjOuqC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DjtMd999d8bv57I/L7vsMj355JN67LHHtHz5cu3bt09nnHGGYrFYoX4N9CLbfm5tbdXKlSt1ww03aOXKlVq6dKk2bNigs846K+15/bKfTXjSMcccY1588cVpj02ePNm85pprirRF6E87duwwJZkvv/yyaZqmGY/HzYaGBvPnP/+5/Zz29naztrbWvPfee4u1meij5uZm84ADDjCXLVtmzpw507z00ktN02Q/l4Krr77aPP7443v8Pvu4NJx++unm9773vbTHzjnnHPO73/2uaZrsZ6+TZD755JP217nszy+++MIsLy83H3vsMfs5W7ZsMQOBgPnXv/61YNuO3HXdz5m8+eabpiTzk08+MU2z//YzGTAP6uzs1IoVKzR79uy0x2fPnq2///3vRdoq9Ke9e/dKkoYOHSpJ2rhxo7Zv3562z0OhkGbOnMk+96Af//jHOv300/W1r30t7XH2s/c99dRTOuqoo/TNb35TI0aM0BFHHKH77rvP/j77uDQcf/zxev7557VhwwZJ0jvvvKPly5fr61//uiT2c6nJZX+uWLFCkUgk7TmNjY2aOnUq+9zD9u7dK8Mw7CqG/trPZf29oRh4O3fuVCwW08iRI9MeHzlypLZv316krUJ/MU1TV1xxhY4//nhNnTpVkuz9mmmff/LJJwXfRvTdY489ppUrV+qtt97q9j32s/d99NFH+u1vf6srrrhCP/3pT/Xmm29qwYIFCoVCuvDCC9nHJeLqq6/W3r17NXnyZAWDQcViMS1cuFDf+c53JHEul5pc9uf27dtVUVGhurq6bs/h2syb2tvbdc011+i8885TTU2NpP7bzwRgHmYYRtrXpml2ewzeM3/+fP3jH//Q8uXLu32Pfe5tmzdv1qWXXqpnn31WlZWVPT6P/exd8XhcRx11lG677TZJ0hFHHKF3331Xv/3tb3XhhRfaz2Mfe9vjjz+u3//+9/rDH/6gQw45RKtXr9Zll12mxsZGXXTRRfbz2M+lpS/7k33uTZFIROeee67i8bjuueeeXp+f736mBNGD6uvrFQwGu0XaO3bs6HZ3Bt7yk5/8RE899ZRefPFFjRkzxn68oaFBktjnHrdixQrt2LFD06dPV1lZmcrKyvTyyy/r17/+tcrKyux9yX72rlGjRmnKlClpjx188MF2gyTO5dLwH//xH7rmmmt07rnnatq0abrgggt0+eWXa9GiRZLYz6Uml/3Z0NCgzs5O7dmzp8fnwBsikYi+9a1vaePGjVq2bJmd/ZL6bz8TgHlQRUWFpk+frmXLlqU9vmzZMh177LFF2ip8GaZpav78+Vq6dKleeOEFTZw4Me37EydOVENDQ9o+7+zs1Msvv8w+95BTTz1Va9as0erVq+0/Rx11lM4//3ytXr1akyZNYj973HHHHddthMSGDRs0fvx4SZzLpaK1tVWBQPolVDAYtNvQs59LSy77c/r06SovL097zrZt27R27Vr2uYdYwdcHH3yg5557TsOGDUv7fr/t5zyahcBFHnvsMbO8vNx84IEHzHXr1pmXXXaZGQ6HzY8//rjYm4Y++NGPfmTW1taaL730krlt2zb7T2trq/2cn//852Ztba25dOlSc82aNeZ3vvMdc9SoUWZTU1MRtxxflrMLommyn73uzTffNMvKysyFCxeaH3zwgfnoo4+a1dXV5u9//3v7Oexj77vooovM0aNHm08//bS5ceNGc+nSpWZ9fb151VVX2c9hP3tLc3OzuWrVKnPVqlWmJHPx4sXmqlWr7O53uezPiy++2BwzZoz53HPPmStXrjRPOeUU87DDDjOj0Wixfi10kW0/RyIR86yzzjLHjBljrl69Ou16rKOjw/4Z/bGfCcA87De/+Y05fvx4s6KiwjzyyCPtluXwHkkZ/zz44IP2c+LxuHnTTTeZDQ0NZigUMk888URzzZo1xdto9IuuARj72fv+9Kc/mVOnTjVDoZA5efJk83e/+13a99nH3tfU1GReeuml5rhx48zKykpz0qRJ5nXXXZd2kcZ+9pYXX3wx4+fwRRddZJpmbvuzra3NnD9/vjl06FCzqqrKPOOMM8xNmzYV4bdBT7Lt540bN/Z4Pfbiiy/aP6M/9rNhmqaZb3oOAAAAAJA/1oABAAAAQIEQgAEAAABAgRCAAQAAAECBEIABAAAAQIEQgAEAAABAgRCAAQAAAECBEIABAAAAQIEQgAEAAABAgRCAAQDgEYZh6I9//GOxNwMA8CUQgAEAimru3LkyDKPbnw8//LBffv6SJUs0ZMiQfvlZfTV37lx94xvfKOo2AADcoazYGwAAwGmnnaYHH3ww7bHhw4cXaWt6FolEVF5eXuzNAAB4GBkwAEDRhUIhNTQ0pP0JBoOSpD/96U+aPn26KisrNWnSJN1yyy2KRqP23128eLGmTZumcDissWPH6pJLLtG+ffskSS+99JL+7d/+TXv37rUzazfffLOkzOV8Q4YM0ZIlSyRJH3/8sQzD0BNPPKGTTjpJlZWV+v3vfy9JevDBB3XwwQersrJSkydP1j333JPX73vSSSdpwYIFuuqqqzR06FA1NDTY22X54IMPdOKJJ6qyslJTpkzRsmXLuv2cLVu26Nvf/rbq6uo0bNgwnX322fr4448lSe+9956qq6v1hz/8wX7+0qVLVVlZqTVr1uS1vQCA/kMABgBwrb/97W/67ne/qwULFmjdunX67//+by1ZskQLFy60nxMIBPTrX/9aa9eu1UMPPaQXXnhBV111lSTp2GOP1a9+9SvV1NRo27Zt2rZtm6688sq8tuHqq6/WggULtH79es2ZM0f33XefrrvuOi1cuFDr16/XbbfdphtuuEEPPfRQXj/3oYceUjgc1htvvKHbb79dt956qx1kxeNxnXPOOQoGg3r99dd177336uqrr077+62trTr55JM1aNAgvfLKK1q+fLkGDRqk0047TZ2dnZo8ebLuuOMOXXLJJfrkk0+0detWzZs3Tz//+c81bdq0vLYVANCPTAAAiuiiiy4yg8GgGQ6H7T//+q//apqmaZ5wwgnmbbfdlvb8Rx55xBw1alSPP++JJ54whw0bZn/94IMPmrW1td2eJ8l88skn0x6rra01H3zwQdM0TXPjxo2mJPNXv/pV2nPGjh1r/uEPf0h77Gc/+5k5Y8aMrL/j2WefbX89c+ZM8/jjj097ztFHH21effXVpmma5t/+9jczGAyamzdvtr//l7/8JW2bH3jgAfOggw4y4/G4/ZyOjg6zqqrK/Nvf/mY/dvrpp5snnHCCeeqpp5qzZs1Kez4AoPBYAwYAKLqTTz5Zv/3tb+2vw+GwJGnFihV666230jJesVhM7e3tam1tVXV1tV588UXddtttWrdunZqamhSNRtXe3q6Wlhb753wZRx11lP3/n3/+uTZv3qzvf//7mjdvnv14NBpVbW1tXj/30EMPTft61KhR2rFjhyRp/fr1GjdunMaMGWN/f8aMGWnPX7FihT788EMNHjw47fH29nb985//tL/+n//5Hx144IEKBAJau3atDMPIazsBAP2LAAwAUHThcFj7779/t8fj8bhuueUWnXPOOd2+V1lZqU8++URf//rXdfHFF+tnP/uZhg4dquXLl+v73/++IpFI1n/TMAyZppn2WKa/4wzi4vG4JOm+++7TV77ylbTnWWvWctW1mYdhGPbP77pd1ved4vG4pk+frkcffbTbc50NTN555x21tLQoEAho+/btamxszGs7AQD9iwAMAOBaRx55pN5///2MwZkkvf3224pGo7rzzjsVCCSWNT/xxBNpz6moqFAsFuv2d4cPH65t27bZX3/wwQdqbW3Nuj0jR47U6NGj9dFHH+n888/P99fJ2ZQpU7Rp0yZt3brVDphee+21tOcceeSRevzxxzVixAjV1NRk/Dm7d+/W3Llzdd1112n79u06//zztXLlSlVVVQ3YtgMAsqMJBwDAtW688UY9/PDDuvnmm/Xuu+9q/fr1evzxx3X99ddLkvbbbz9Fo1Hddddd+uijj/TII4/o3nvvTfsZEyZM0L59+/T8889r586ddpB1yimn6O6779bKlSv19ttv6+KLL86pxfzNN9+sRYsW6b/+67+0YcMGrVmzRg8++KAWL17cb7/31772NR100EG68MIL9c477+jVV1/Vddddl/ac888/X/X19Tr77LP16quvauPGjXr55Zd16aWX6tNPP5UkXXzxxRo7dqyuv/56LV68WKZp5t2EBADQvwjAAACuNWfOHD399NNatmyZjj76aH31q1/V4sWLNX78eEnS4YcfrsWLF+sXv/iFpk6dqkcffVSLFi1K+xnHHnusLr74Yn3729/W8OHDdfvtt0uS7rzzTo0dO1YnnniizjvvPF155ZWqrq7udZt+8IMf6P7779eSJUs0bdo0zZw5U0uWLNHEiRP77fcOBAJ68skn1dHRoWOOOUY/+MEP0tbBSVJ1dbVeeeUVjRs3Tuecc44OPvhgfe9731NbW5tqamr08MMP65lnntEjjzyisrIyVVdX69FHH9X999+vZ555pt+2FQCQH8PMVGgOAAAAAOh3ZMAAAAAAoEAIwAAAAACgQAjAAAAAAKBACMAAAAAAoEAIwAAAAACgQAjAAAAAAKBACMAAAAAAoEAIwAAAAACgQAjAAAAAAKBACMAAAAAAoEAIwAAAAACgQP5/6raHN1cc4TAAAAAASUVORK5CYII=", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Plot coefficient paths\n", "coefficients = []\n", "for alpha in alphas:\n", " lasso.alpha = alpha\n", " lasso.fit(X_train_scaled, y_train)\n", " coefficients.append(lasso.coef_)\n", "\n", "plt.figure(figsize=(10, 6))\n", "for i, alpha in enumerate(alphas):\n", " plt.plot(coefficients[i], label=f'Alpha = {alpha}')\n", "plt.xlabel('Feature Index')\n", "plt.ylabel('Coefficient Value')\n", "plt.legend()\n", "plt.title('Lasso Coefficient Paths')\n", "plt.show()" ] }, { "cell_type": "markdown", "id": "cb96e7ab", "metadata": {}, "source": [ "**JUST EXPERIMENTING**" ] }, { "cell_type": "markdown", "id": "61ef3675", "metadata": {}, "source": [ "**Using RFE for feature selection**" ] }, { "cell_type": "code", "execution_count": 126, "id": "98bef0d3", "metadata": {}, "outputs": [], "source": [ "# Split the data into training and testing sets\n", "X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=62)" ] }, { "cell_type": "code", "execution_count": 127, "id": "09ee7df9", "metadata": {}, "outputs": [], "source": [ "# Create a scaler object\n", "scaler = MinMaxScaler()\n", "\n", "# Scale the data\n", "X_train_scaled = scaler.fit_transform(X_train)\n", "X_test_scaled = scaler.transform(X_test)" ] }, { "cell_type": "code", "execution_count": 128, "id": "7e9eb5e6", "metadata": {}, "outputs": [], "source": [ "# Perform feature selection using RFE\n", "rf_model = RandomForestRegressor()\n", "rfe_selector = RFE(estimator=rf_model, n_features_to_select=5, step=1)\n", "rfe_selector.fit(X_train_scaled, y_train)\n", "X_train_selected = rfe_selector.transform(X_train_scaled)\n", "X_test_selected = rfe_selector.transform(X_test_scaled)" ] }, { "cell_type": "code", "execution_count": 129, "id": "d3719d2a", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(320, 5)" ] }, "execution_count": 129, "metadata": {}, "output_type": "execute_result" } ], "source": [ "X_train_selected.shape" ] }, { "cell_type": "markdown", "id": "dd84e484", "metadata": {}, "source": [ "5 features are selected" ] }, { "cell_type": "code", "execution_count": 130, "id": "971d0629", "metadata": {}, "outputs": [], "source": [ "# Define the parameter grid for hyperparameter tuning\n", "param_grid = {\n", " 'n_estimators': [100, 200, 300],\n", " 'max_depth': [None, 5, 10],\n", " 'min_samples_split': [2, 5, 10],\n", " 'min_samples_leaf': [1, 2, 4],\n", " 'max_features': ['auto', 'sqrt', 'log2'],\n", " 'bootstrap': [True, False],\n", " 'criterion': ['friedman_mse', 'friedman_mse']\n", "}" ] }, { "cell_type": "code", "execution_count": 131, "id": "e344130f", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
GridSearchCV(cv=5, estimator=RandomForestRegressor(), n_jobs=-1,\n",
       "             param_grid={'bootstrap': [True, False],\n",
       "                         'criterion': ['friedman_mse', 'friedman_mse'],\n",
       "                         'max_depth': [None, 5, 10],\n",
       "                         'max_features': ['auto', 'sqrt', 'log2'],\n",
       "                         'min_samples_leaf': [1, 2, 4],\n",
       "                         'min_samples_split': [2, 5, 10],\n",
       "                         'n_estimators': [100, 200, 300]},\n",
       "             scoring='neg_mean_squared_error')
In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook.
On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.
" ], "text/plain": [ "GridSearchCV(cv=5, estimator=RandomForestRegressor(), n_jobs=-1,\n", " param_grid={'bootstrap': [True, False],\n", " 'criterion': ['friedman_mse', 'friedman_mse'],\n", " 'max_depth': [None, 5, 10],\n", " 'max_features': ['auto', 'sqrt', 'log2'],\n", " 'min_samples_leaf': [1, 2, 4],\n", " 'min_samples_split': [2, 5, 10],\n", " 'n_estimators': [100, 200, 300]},\n", " scoring='neg_mean_squared_error')" ] }, "execution_count": 131, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Perform hyperparameter tuning using GridSearchCV\n", "rf_model_tuned = RandomForestRegressor()\n", "grid_search = GridSearchCV(rf_model_tuned, param_grid, cv=5, scoring='neg_mean_squared_error', n_jobs=-1)\n", "grid_search.fit(X_train_selected, y_train)" ] }, { "cell_type": "code", "execution_count": 132, "id": "a878a24b", "metadata": {}, "outputs": [], "source": [ "# Get the best model from grid search\n", "best_rf_model = grid_search.best_estimator_" ] }, { "cell_type": "code", "execution_count": 133, "id": "e4daea64", "metadata": {}, "outputs": [], "source": [ "pickle.dump(best_rf_model, open('random_forest_regressor_using_rfe_for_fs.pkl', 'wb'))" ] }, { "cell_type": "code", "execution_count": 134, "id": "4830d6eb", "metadata": {}, "outputs": [], "source": [ "# Predict the target variable for the test data\n", "y_pred = best_rf_model.predict(X_test_selected)" ] }, { "cell_type": "code", "execution_count": 135, "id": "095997f1", "metadata": {}, "outputs": [], "source": [ "# Calculate evaluation metrics\n", "mse = mean_squared_error(y_test, y_pred)\n", "rmse = mse ** 0.5" ] }, { "cell_type": "code", "execution_count": 136, "id": "fef12483", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Mean Squared Error: 534.3547551659663\n", "Root Mean Squared Error: 23.116114620886577\n" ] } ], "source": [ "# Print the evaluation metrics\n", "print(\"Mean Squared Error:\", mse)\n", "print(\"Root Mean Squared Error:\", rmse)" ] }, { "cell_type": "code", "execution_count": 137, "id": "f5d1db5e", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Mean Absolute Error (MAE): 18.856763868841806\n" ] } ], "source": [ "# Calculate evaluation metric (MAE)\n", "mae = mean_absolute_error(y_test, y_pred)\n", "\n", "# Print the evaluation metric\n", "print(\"Mean Absolute Error (MAE):\", mae)" ] }, { "cell_type": "code", "execution_count": 211, "id": "f1d0f318", "metadata": {}, "outputs": [], "source": [ "mae_values = [mae_svr, mae_rf, mae_mlp, mae_xgb, mae_lasso]\n", "\n", "rounded_mae_values = []\n", "\n", "for var in mae_values:\n", " rounded_var = round(var, 2)\n", " rounded_mae_values.append(rounded_var)" ] }, { "cell_type": "code", "execution_count": 213, "id": "f2d9b520", "metadata": {}, "outputs": [ { "data": { "image/png": "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+ZDydi5yktGLevXj8uXLmdpNnz5dGzZs0Msvv6xPP/1UtWvXdq7r0qWLqlevrvfee09z5syRMUadOnXSyy+/rN69eysuLk6xsbFauHCh7rnnnkyB4ttvv9UzzzyjYcOGae3ateratWu29X788cfy8PDQX/7ylyzXlyhRQn379tWiRYucx5HRi9qvX79s97tgwQJdvnxZ/fv313333aeIiAjNmzdPxpg/9L5FRUXp66+/zhTar7Vu3ToFBwercePGObbLMHnyZD3yyCOqW7euVq1apddff127d+9WkyZNtH//fpe2Fy9eVJcuXdShQwetXr1a7dq10+jRo/Xcc88pJiZG/fv31wcffKBatWqpb9++2rFjR6bXe+SRR1SiRAnnGOx///vfioqKcjmu//73v2rSpIlmz56tdevWady4cfrmm2/UvHlz57V1tWs/N1kpiGsxLi5OM2fO1N/+9jetXLnSGfyvDeNAgTMArtv8+fONJLNt2zazceNGI8l89913xhhj7rzzTtO3b19jjDF169Y1LVq0cG63bNkyI8msXLnSZX/btm0zksysWbOyfL309HRz8eJFEx8fbySZXbt2OdfFxMQYSebdd9912aZ9+/amVq1a13U899xzj/Hx8TEnT550Ob65c+e6tBs/fryRZEaMGOGyfMmSJUaSWbx4sTHGmPfff99IMgkJCdm+5pw5c7Ks+6WXXjKSzLp165zLIiIiTExMjPN5Rn2JiYku22aci40bNzqXdejQwURERGR6/Rs9Fxky3ousHtWqVXO2S0xMdC67cOFClvsYN26cy/K1a9caSWbq1Kkuy1esWGEkmbfeesu5LCIiwnh4eJj//Oc/OdaboV27dqZ27dqZlme8d++99545cOCAcTgc5uOPPzbGGPPggw+aqKgoY0zW72d6erqpXr26qVSpkrl06ZLLsX3xxRdZHnNu71uG9evXG0nm008/zfG4fHx8TOPGja/rPTh58qTx9fU17du3d1l+6NAh4+3tbXr16uVclnF9Xf05uXjxoqlQoYKRZL799lvn8uTkZOPh4WFiY2OdyzI+q507d3Z5ra+//tpIMhMnTsyyxoxr/uDBg0aSWb16tXNddp+bq9dlyO9rUZIJDg42qampzmVJSUmmRIkSZvLkydm+BlAQ6HkFblCLFi1UrVo1zZs3T3v27NG2bduyHTLw8ccf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eeedCggIUMWKFdWpUyf95z//ca6/ePGiRo4cqcjISPn7+yssLEx9+vTR0aNHc933qVOnNHjwYIWGhsrHx0e33nqrPvnkE+f6CRMmyOFwuDxCQkIK5DgBAMiLYj/mFbBVfHy8Bg8erDvvvFOXLl3S888/r9atW2vv3r3y9/fX77//rm+//VZjx45VgwYNdPLkSQ0fPlwPPPCAtm/fnu1+L1y4oFatWqlixYp6//33VblyZR0+fDjTIPm6devq888/dz738PAosGMFAOB6EV6BImrt2rUuz+fPn6+KFStqx44d+stf/qLAwECtX7/epc2MGTP05z//WYcOHVKVKlWy3O+8efP022+/afPmzSpZsqQkKSIiIlM7T09PelsBAEUOwwYAS6SkpEiSgoKCcmzjcDhUpkyZbNusWbNGTZo00eDBgxUcHKx69epp0qRJunz5sku7/fv3KywsTFWrVlWPHj104MCBfDkOAAD+CMIrYAFjjGJjY9W8eXPVq1cvyzbnz5/XqFGj1KtXrxynhTtw4IDef/99Xb58WZ988onGjBmjV155RS+++KKzzV133aVFixbps88+09tvv62kpCQ1bdpUycnJ+X5sAADkhcMYY9xdREFKTU1VYGCgUlJSmOcV1ho8eLDi4uL01VdfZfnNIxcvXtSDDz6oQ4cOadOmTTl+1mvWrKnz588rMTHROY512rRp+sc//qFjx45luc3Zs2dVrVo1Pfvss4qNjc2fgwIA4P/LS15jzCtQxA0dOlRr1qzRl19+mW1wfeihh5SYmKgNGzbketGHhoaqZMmSLjdg3XrrrUpKStKFCxfk5eWVaRt/f39FRkZq//79f/yAAAD4Axg2ABRRxhgNGTJEq1at0oYNG1S1atVMbTKC6/79+/X555+rXLlyue63WbNm+umnn5Senu5c9uOPPyo0NDTL4CpJaWlp2rdvn0JDQ2/8gAAAyAeEV6CIGjx4sBYvXqylS5cqICBASUlJSkpK0rlz5yRJly5dUrdu3bR9+3YtWbJEly9fdra5cOGCcz99+vTR6NGjnc+feOIJJScn68knn9SPP/6ouLg4TZo0SYMHD3a2efrppxUfH6/ExER988036tatm1JTUxUTE1N4bwAAAFlg2ABQRM2ePVuSFBUV5bJ8/vz56tu3r44cOaI1a9ZIkm677TaXNhs3bnRud+jQIZUo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bNt4e3tnO6QAAAAAdnNreD1z5ox++ukn5/PExEQlJCQoKChIQUFBmjBhgrp27arQ0FD9/PPPeu6551S+fHl17tzZjVUDAADAXdwaXrdv366WLVs6n8fGxkqSYmJiNHv2bO3Zs0eLFi3SqVOnFBoaqpYtW2rFihUKCAhwV8kAAABwI7eG16ioKBljsl3/2WefFWI1AAAAKOqsumELAAAANzfCKwAAAKxBeAUAAIA1CK8AAACwBuEVAAAA1iC8AgAAwBqEVwAAAFiD8AoAAABrEF4BAABgDcIrAAAArEF4BQAAgDUIrwAAALAG4RUAAADWILwCAADAGoRXAAAAWIPwCgAAAGsQXgEAAGANwisAAACsQXgFAACANQivAAAAsAbhFQAAANYgvAIAAMAahFcAAABYg/AKAAAAaxBeAQAAYA3CKwAAAKxBeAUAAIA1CK8AAACwBuEVAAAA1iC8AgAAwBqEVwAAAFiD8AoAAABrEF4BAABgDcIrAAAArEF4BQAAgDUIrwAAALAG4RUAAADWILwCAADAGoRXAAAAWIPwCgAAAGsQXgEAAGANwisAAACskafw+u9//1uXL192PjfGuKxPS0vTu+++mz+VAQAAANfIU3ht0qSJkpOTnc8DAwN14MAB5/NTp06pZ8+e+VcdAAAAcJU8hddre1qvfZ7dMgAAACA/5PuYV4fDkd+7BAAAACRxwxYAAAAs4pnXDfbu3aukpCRJV4YI/PDDDzpz5owk6ddff83f6gAAAICr5Dm83nvvvS7jWu+//35JV4YLGGMYNgAAAIACk6fwmpiYWFB1AAAAALnKU3iNiIjItU1CQsJ1tQMAAADyKl9u2EpJSdGsWbN0++23q1GjRvmxSwAAACCTPxReN2zYoIcfflihoaGaMWOG2rdvr+3bt+dXbQAAAICLPN+wdeTIES1YsEDz5s3T2bNn9dBDD+nixYtauXKl6tSpUxA1AgAAAJLy2PPavn171alTR3v37tWMGTN09OhRzZgxo6BqAwAAAFzkqed13bp1GjZsmJ544gnVqFGjoGoCAAAAspSnntd//etfOn36tO644w7dddddmjlzpk6cOFFQtQEAAAAu8hRemzRporffflvHjh3TgAEDtHz5clWqVEnp6elav369Tp8+XVB1AgAAADc224Cfn5/69++vr776Snv27NFTTz2lKVOmqGLF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HTt2NDExMS5ts5PVea5Ro4bp0aNHAVSOnLz++uumbNmy5pdffjEffvihKVmypNm5c6cxxpgtW7YYSeb111/Pctv09HTnv7P6GXz58mVTsmRJ8+677xZU+Te9nK61V155xdSrV8/4+fmZypUrmyeeeMKcPn3auf7nn382999/vylTpozx8/MzderUMXFxccYYY3777TfTq1cvU758eePj42OqV69u5s2b59x29+7dpmXLlsbHx8cEBQWZxx57zGXfMIae12KsVKlSKlWqlD788EOlpaVlWh8ZGak777xT8+fPd1k+b948/fnPf1a9evWy3O+pU6e0dOlSSVLJkiXzv3D8YQcOHNDatWs5P5bp16+fy/U4b9489e/f/w/v18fHRxcvXvzD+0HeDB06VA0aNFCfPn30+OOPa9y4cbrtttskScuWLVOpUqUy/XUkg8PhyHa/ly9f1sKFCyVJt99+e77XjdyVKFFC06dP13fffaeFCxdqw4YNevbZZ53rBw8erLS0NH355Zfas2ePXnrpJZUqVUqSNHbsWO3du1effvqp9u3bp9mzZ6t8+fKSpN9//11t27ZV2bJltW3bNr333nv6/PPPNWTIELccZ5Hl7vSMgvX++++bsmXLGh8fH9O0aVMzevRos2vXLuf62bNnG39/f+f/6k6fPm38/f3Nm2++6Wwzf/58I8n4+/sbPz8/I8lIMg888EChHw+yFhMTYzw8PIy/v7/x8fFxnqNp06Y520RERBgvLy/j7+/vfGTX64PCldHDc+LECePt7W0SExPNzz//bHx8fMyJEyduuOf14sWLzut31qxZBX8gyGTfvn1GkomMjDQXL150Lm/btq2pX7++S9tXXnnF5fo8deqUMcb1Z7C/v78pUaKE8fb2NvPnzy/MQ7np5HatXe3dd9815cqVcz6PjIw0EyZMyLJtdHS06devX5br3nrrLVO2bFlz5swZ57K4uDhTokQJk5SUdP3FF3P0vBZzXbt21dGjR7VmzRq1adNGmzZt0u23364FCxZIknr27Kn09HTneLgVK1bIGKMePXq47CcgIEAJCQnasWOH5syZo2rVqmnOnDmFfTjIQcuWLZWQkKBvvvlGQ4cOVZs2bTR06FCXNs8884wSEhKcjz59+ripWmSlfPny6tChgxYuXKj58+erQ4cOzh6ZvBg5cqRKlSolX19fDR48WM8884wGDBhQABUjN/PmzZOfn58SExN15MgRl3XX9q72799fCQkJevPNN3X27FmX+xEyfgYnJCRo586dmjRpkgYMGKCPPvqoUI4DrjZu3KhWrVqpUqVKCggIUJ8+fZScnKyzZ89KkoYNG6aJEyeqWbNmGj9+vHbv3u3c9oknntDy5ct122236dlnn9XmzZud6/bt26cGDRrI39/fuaxZs2ZKT09nfPNVCK83AR8fH7Vq1Urjxo3T5s2b1bdvX40fP16SFBgYqG7dujn/VDl//nx169ZNpUuXdtlHiRIlVL16ddWuXVsDBgxQ79691b1790I/FmTP399f1atXV/369TV9+nSlpaXphRdecGlTvnx5Va9e3fkoU6aMe4pFtvr3768FCxZo4cKFNzxkIOM/KQcPHtSZM2c0depUlSjBj/vCtmXLFr366qtavXq1mjRpokceecQZSGvUqKH//ve/LsM5ypQpo+rVq6tSpUqZ9pXxMzjjGo+NjVXLli310ksvFdrx4IqDBw+qffv2qlevnlauXKkdO3bojTfekCTn+Xz00Ud14MAB9e7dW3v27NEdd9yhGTNmSJLatWungwcPavjw4Tp69KjuvfdePf3005IkY0y2Q0ZyGkpys+Gn2U2oTp06zv8dStIjjzyir7/+Wh9//LG+/vprPfLII7nuY8SIEdq1a5c++OCDgiwVf8D48eP18ssv6+jRo+4uBXnQtm1bXbhwQRcuXFCbNm1uaB8Z/0kJCwvjF56bnDt3TjExMRowYIDuu+8+vfPOO9q2bZtz2rKePXvqzJkzmjVr1g2/hoeHh8vsFCgc27dv16VLl/TKK6+ocePGqlmzZpY/Z8PDwzVw4ECtWrVKTz31lN5++23nugoVKqhv375avHixXnvtNb311luSrvx+TkhIcPkd/fXXX6tEiRKqWbNmwR+cJTzdXQAKTnJysh588EH1799f9evXV0BAgLZv366pU6eqY8eOznYtWrRQ9erV1adPH1WvXl1/+ctfct136dKl9eijj2r8+PHq1KkTvyCLoKioKNWtW1eTJk3SzJkz3V0OrpOHh4f27dvn/HdWUlJSlJCQ4LIsKCgoz1NqoeCMGjVK6enpzp7RKlWq6JVXXlFsbKzatm2rJk2a6KmnntJTTz2lgwcPqkuXLgoPD9exY8c0d+5cORwOl95yY4ySkpIkXQnG69ev12effeacdgsFI6trrUKFCrp06ZJmzJih6Ohoff3115mG0Q0fPlzt2rVTzZo1dfLkSW3YsEG33nqrJGncuHFq1KiR6tatq7S0NH388cfOdX/96181fvx4xcTEaMKECTpx4oSGDh2q3r17Kzg4uFCO2QpuHXGLAnX+/HkzatQoc/vtt5vAwEDj5+dnatWqZcaMGWN+//13l7aTJk0yksykSZMy7SeraVqMMebgwYPG09PTrFixoqAOAdcpuxsLlixZYry8vMyhQ4eYKqsIy+3GkGtv2NL/vyHv6kfGes6z+23atMl4eHiYf/3rX5nWtW7d2txzzz3OqbBWrFhhoqKiTGBgoClZsqSpXLmy6dWrl9m6datzm4wbtjIe3t7epmbNmubFF180ly5dKrTjutnkdK1NmzbNhIaGGl9fX9OmTRuzaNEiI8mcPHnSGGPMkCFDTLVq1Yy3t7epUKGC6d27t/n111+NMcb8/e9/N7feeqvx9fU1QUFBpmPHjubAgQPO12WqrNw5jMlihnoAAACgCGLMKwAAAKxBeAUAAIA1CK8AAACwBuEVAAAA1iC8AgAAwBqEVwAAAFiD8AoAAABrEF4BAABgDcIrAAAArEF4BQAAgDUIrwAAALAG4RUAAADW+H+0JWFE7Lph7wAAAABJRU5ErkJggg==", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "\n", "models = ['SVR', 'RF', 'MLP', 'XGB', 'Lasso']\n", "\n", "# Define colors for each bar\n", "colors = ['cyan', 'green', 'orange', 'red', 'purple']\n", "\n", "# Create a figure and axis for bar plot\n", "fig, ax = plt.subplots(figsize=(8, 6))\n", "\n", "# Plot the bar plot\n", "bars = ax.bar(models, rounded_mae_values, color=colors)\n", "\n", "# Add value labels to each bar\n", "for bar in bars:\n", " height = bar.get_height()\n", " ax.annotate(f'{height}', xy=(bar.get_x() + bar.get_width() / 2, height),\n", " xytext=(0, 3), textcoords=\"offset points\",\n", " ha='center', va='bottom')\n", "\n", "ax.set_ylabel('MAE')\n", "ax.set_title('Mean Absolute Error (MAE) Comparison')\n", "\n", "# Show the plot\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 144, "id": "e9d9fc2c", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "id": "931171a5", "metadata": {}, "source": [ "**END**" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "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.11.5" } }, "nbformat": 4, "nbformat_minor": 5 }