{
"cells": [
{
"cell_type": "markdown",
"id": "22fda647",
"metadata": {},
"source": [
"
ROAD SURFACE TEMPERATURE ANALYSIS \n",
"\n",
" Influence of weather on road conditions for self driving cars \n",
" ECON 323 PROJECT \n",
"\n",
"*Authors: Martina Chiesa and Pascal Terpstra*"
]
},
{
"cell_type": "markdown",
"id": "d66492d2",
"metadata": {},
"source": [
"# Index\n",
"\n",
"[Introduction](#Introduction)\n",
"\n",
"[Objective and method](#Objective-and-method)\n",
"\n",
"[Libraries](#Libraries)\n",
"\n",
"[Data](#Data)\n",
"\n",
"[Data Exploration](#Data-Exploration)\n",
"\n",
"- [Univariate statistics](#Univariate-statistics)\n",
"\n",
"- [Missing value imputation](#Missing-value-imputation)\n",
"\n",
"- [Date time](#Date-time)\n",
"\n",
"- [Road Surface Temperature graph ](#Road-Surface-Temperature-graph)\n",
"\n",
"- [Road Surface Temperature in a day](#Road-Surface-Temperature-in-a-day)\n",
"\n",
"- [Temperature in a day](#Temperature-in-a-day)\n",
"\n",
"[Regression models](#Regression-models)\n",
"\n",
"- [Linear regression](#Linear-regression)\n",
" - [Prediction RST at 2pm](#Prediction-RST-at-2pm)\n",
" - [Prediction RST at 10pm](#Prediction-RST-at-10pm)\n",
"- [Lasso regression](#Lasso-regression)\n",
" - [Lasso RST at 2pm](#Lasso-RST-at-2pm)\n",
" - [Lasso RST at 10pm](#Lasso-RST-at-10pm)\n",
"\n",
"[Build a new dataframe for classification](#Build-a-new-dataframe-for-classification)\n",
" - [Adding response variable](#Adding-response-variable)\n",
" \n",
"[Pre processing](#Pre-processing)\n",
"- [Split in train and test sets](#Split-in-train-and-test-sets)\n",
"- [Feature scaling](#Feature-scaling)\n",
"\n",
"[Classification analysis](#Classification-analysis)\n",
"- [Logistic regression classifier](#Logistic-regression-classifier)\n",
"- [KNN](#KNN)\n",
"- [SVM linear](#SVM-linear)\n",
"- [SVM non linear](#SVM-non-linear)\n",
"- [Naive bayes classifier](#Naive-bayes-classifier)\n",
"- [Decision tree](#Decision-tree)\n",
"- [Random forest](#Random-forest)\n",
"- [Ada boost](#Ada-boost)\n",
"\n",
"[Conclusions](#Conclusions)"
]
},
{
"cell_type": "markdown",
"id": "fa4dab29",
"metadata": {},
"source": [
"## Introduction\n",
"\n",
"In the context of the development of self-driving cars, it is relevant to be able to predict road surface temperature, since it highly influences the safety of roads and it is therefore important that cars adapt their driving style depending on the road conditions (*Sukuvaara, Timo, et al. \"ITS-Enabled advanced road weather services and infrastructures for vehicle winter testing, professional traffic fleets and future automated driving.\" Proceedings of the 2018 ITS World Congress, Copenhagen, Denmark. 2018.*).\n",
"\n",
"Autonomous vehicles can sense their surroundings and navigate without human intervention. Although promising and proving safety features, the trustworthiness of these cars has to be examined before they can be widely adopted on the road. Unlike traditional network\n",
"security, autonomous vehicles rely heavily on their sensory ability of their surroundings to make driving decision, which incurs a security risk from sensors.\n",
"\n",
"However, these sensors can may not be so accurate yet, thus companies are also collecting weather data available from other sources, such as observations from Earth-orbiting satellites to evaluate the road condition and test the related car performance (*Wentz, Frank J., and Matthias Schabel. \"Precise climate monitoring using complementary satellite data sets.\" Nature 403.6768 (2000): 414-416.*).\n",
"\n",
"\n",
"## Objective and method\n",
"\n",
"Our main goal in this report is to predict road surface temperature - which is usually unknown - based on information about the weather such as air temperature and solar radiation.\n",
"\n",
"Specifically we will perform two different types of analysis: \n",
"\n",
"- Regression\n",
"\n",
"First, we will try to create models that can predict the road surface temperature using linear regression and lasso regularization. Self-driving cars may have to adapt their driving style based on the temperature of the road and since we are yet unable to measure the exact temperature of roads we will have to make decisions on the data that is accessible. In this case we are in possession of many predictors and we will therefore make use of lasso regularization to prevent overfitting. Next, we will fit a linear model on the predictors that are not dropped yet by the lasso regression, because lasso regression is a biased estimator of the true parameters.\n",
"\n",
"- Classification\n",
"\n",
"Then, we will focus on a classification tasks in which the real word application is not limited to automatic cars. Nowadays, also the current commercial vehicles are equipped with the Advanced Driver Assistance Systems (ADASs), which use an environment perception module consisted of several sensors whose objective is to provide relevant data necessary to interpret the surrounding scenes near the vehicle. In normal climatic conditions, the reliability and benefits of the ADASs have gained popularity and confidence. However, in adverse weather conditions, the experience of the driver is required to compensate for the failure of the ADASs to appropriately perceive the surrounding environment, which usually results in severe accidents. \n",
"In particular when the road surface temperature is close to 0°C ice risk is verified. Thus, the ability to distinguish this situation from the others could be helpful in order to prevent accidents.\n",
"\n",
"We identify the Risk class for days in which the temperature is in a range between 0°C + - standard deviation of the distribution of Road Surface Temperature mean.\n",
"\n",
"Methods that will be used are: Logistic Regression, KNN, SVM, Naive Bayes classifier, Decision tree, Random Forest, Ada Boost.\n",
"\n",
"We both work on all tasks, but mainly Pascal focused on regression and Martina on classification."
]
},
{
"cell_type": "markdown",
"id": "341dfc99",
"metadata": {},
"source": [
"## Libraries"
]
},
{
"cell_type": "code",
"execution_count": 41,
"id": "7cb5f9e9",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
" \n",
" "
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"import numpy as np\n",
"import matplotlib.pyplot as plt\n",
"from scipy import interpolate\n",
"import pandas as pd\n",
"import plotly.express as px\n",
"import seaborn as sb\n",
"\n",
"from sklearn.model_selection import cross_val_score\n",
"from sklearn import linear_model\n",
"from sklearn import (linear_model, metrics, neural_network, pipeline, model_selection)\n",
"from sklearn import datasets\n",
"from sklearn.linear_model import Lasso\n",
"from sklearn.linear_model import LassoCV\n",
"from sklearn.preprocessing import StandardScaler\n",
"from sklearn.preprocessing import LabelEncoder\n",
"from sklearn.model_selection import train_test_split\n",
"from sklearn.metrics import classification_report, f1_score, accuracy_score, confusion_matrix\n",
"from sklearn.linear_model import LogisticRegression\n",
"from sklearn.neighbors import KNeighborsClassifier\n",
"from sklearn.svm import SVC\n",
"from sklearn.naive_bayes import GaussianNB\n",
"from sklearn.tree import DecisionTreeClassifier\n",
"from sklearn.ensemble import RandomForestClassifier\n",
"from sklearn.ensemble import AdaBoostClassifier\n",
"from sklearn.model_selection import GridSearchCV\n",
"\n",
"import statsmodels.api as sm\n",
"\n",
"import plotly.offline as pyo\n",
"pyo.init_notebook_mode()"
]
},
{
"cell_type": "markdown",
"id": "665b2f34",
"metadata": {},
"source": [
"## Data\n",
"\n",
"In this report we will investigate a data set that contains information about weather and temperature of road surface at certain moments in time, namely for each hour of the day from November 1st 2017 until April 15th 2022 in the village Dollerup, Germany (coordinates: 6.6994,54.7717). \n",
"\n",
"In detail, each row corresponds to a day in which 24 values (one for each hour of the day) are collected for the following variables:\n",
"\n",
"| Variable Name | Meaning |\n",
"| --- | --- |\n",
"| RST | Road Surface Temperature |\n",
"| TT | Air Temperature|\n",
"| TD | Dew Point Temperature|\n",
"| GRAD1 | Solar Radiation|\n",
"| NE | Effective Cloud Cover |\n",
"| FF | Wind Speed |\n",
"\n",
"Furthermore, the time of the measurement of the variable is given at the end of the variable name. For example, RST_1000 represents the road surface temperature at 10am, and RST_1800 represents the same at 6pm."
]
},
{
"cell_type": "code",
"execution_count": 42,
"id": "43fa35c9",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" \n",
" date \n",
" RST_0000 \n",
" RST_0100 \n",
" RST_0200 \n",
" RST_0300 \n",
" RST_0400 \n",
" RST_0500 \n",
" RST_0600 \n",
" RST_0700 \n",
" RST_0800 \n",
" ... \n",
" FF_1400 \n",
" FF_1500 \n",
" FF_1600 \n",
" FF_1700 \n",
" FF_1800 \n",
" FF_1900 \n",
" FF_2000 \n",
" FF_2100 \n",
" FF_2200 \n",
" FF_2300 \n",
" \n",
" \n",
" \n",
" \n",
" 0 \n",
" 20171101 \n",
" 9.8 \n",
" 9.9 \n",
" 10.2 \n",
" 10.5 \n",
" 10.8 \n",
" 11.1 \n",
" 11.2 \n",
" 11.5 \n",
" NaN \n",
" ... \n",
" 19.0 \n",
" 17.3 \n",
" 16.6 \n",
" 18.7 \n",
" 18.0 \n",
" 20.2 \n",
" 20.3 \n",
" 22.1 \n",
" 21.3 \n",
" 19.7 \n",
" \n",
" \n",
" 1 \n",
" 20171102 \n",
" NaN \n",
" NaN \n",
" NaN \n",
" NaN \n",
" NaN \n",
" NaN \n",
" NaN \n",
" NaN \n",
" 8.6 \n",
" ... \n",
" 15.8 \n",
" 14.6 \n",
" 12.7 \n",
" 10.6 \n",
" 9.4 \n",
" 12.0 \n",
" 9.6 \n",
" 7.8 \n",
" 8.6 \n",
" 8.1 \n",
" \n",
" \n",
" 2 \n",
" 20171103 \n",
" 6.6 \n",
" 6.9 \n",
" 6.5 \n",
" 7.2 \n",
" 7.1 \n",
" 7.1 \n",
" 7.0 \n",
" 7.6 \n",
" 8.6 \n",
" ... \n",
" 9.7 \n",
" 11.4 \n",
" 10.5 \n",
" 10.4 \n",
" 10.5 \n",
" 11.1 \n",
" 11.0 \n",
" 12.4 \n",
" 11.6 \n",
" 12.1 \n",
" \n",
" \n",
" 3 \n",
" 20171104 \n",
" 8.6 \n",
" 8.6 \n",
" 8.6 \n",
" 8.5 \n",
" 8.5 \n",
" 8.5 \n",
" 8.4 \n",
" 8.6 \n",
" 9.0 \n",
" ... \n",
" 9.2 \n",
" 8.4 \n",
" 10.0 \n",
" 11.8 \n",
" 12.4 \n",
" 12.1 \n",
" 11.6 \n",
" 9.7 \n",
" 11.1 \n",
" 13.7 \n",
" \n",
" \n",
" 4 \n",
" 20171105 \n",
" 9.7 \n",
" 10.1 \n",
" 10.2 \n",
" 9.5 \n",
" 8.7 \n",
" 8.1 \n",
" 8.1 \n",
" 7.5 \n",
" 8.3 \n",
" ... \n",
" 6.0 \n",
" 6.4 \n",
" 7.3 \n",
" 5.9 \n",
" 5.9 \n",
" 6.2 \n",
" 6.6 \n",
" 5.2 \n",
" 6.4 \n",
" 8.0 \n",
" \n",
" \n",
"
\n",
"
5 rows × 145 columns
\n",
"
"
],
"text/plain": [
" date RST_0000 RST_0100 RST_0200 RST_0300 RST_0400 RST_0500 \\\n",
"0 20171101 9.8 9.9 10.2 10.5 10.8 11.1 \n",
"1 20171102 NaN NaN NaN NaN NaN NaN \n",
"2 20171103 6.6 6.9 6.5 7.2 7.1 7.1 \n",
"3 20171104 8.6 8.6 8.6 8.5 8.5 8.5 \n",
"4 20171105 9.7 10.1 10.2 9.5 8.7 8.1 \n",
"\n",
" RST_0600 RST_0700 RST_0800 ... FF_1400 FF_1500 FF_1600 FF_1700 \\\n",
"0 11.2 11.5 NaN ... 19.0 17.3 16.6 18.7 \n",
"1 NaN NaN 8.6 ... 15.8 14.6 12.7 10.6 \n",
"2 7.0 7.6 8.6 ... 9.7 11.4 10.5 10.4 \n",
"3 8.4 8.6 9.0 ... 9.2 8.4 10.0 11.8 \n",
"4 8.1 7.5 8.3 ... 6.0 6.4 7.3 5.9 \n",
"\n",
" FF_1800 FF_1900 FF_2000 FF_2100 FF_2200 FF_2300 \n",
"0 18.0 20.2 20.3 22.1 21.3 19.7 \n",
"1 9.4 12.0 9.6 7.8 8.6 8.1 \n",
"2 10.5 11.1 11.0 12.4 11.6 12.1 \n",
"3 12.4 12.1 11.6 9.7 11.1 13.7 \n",
"4 5.9 6.2 6.6 5.2 6.4 8.0 \n",
"\n",
"[5 rows x 145 columns]"
]
},
"execution_count": 42,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"#path = 'C:/Users/pasca/Documents/100356.csv'\n",
"path = 'C:/Users/chies/OneDrive/Desktop/ECON_323/project/100356.csv'\n",
"df = pd.read_csv(path)\n",
"df.head()"
]
},
{
"cell_type": "markdown",
"id": "e002cacd",
"metadata": {},
"source": [
"## Data Exploration\n",
"\n",
"### Univariate statistics"
]
},
{
"cell_type": "code",
"execution_count": 43,
"id": "1ad11662",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"\n",
"RangeIndex: 1015 entries, 0 to 1014\n",
"Columns: 145 entries, date to FF_2300\n",
"dtypes: float64(144), int64(1)\n",
"memory usage: 1.1 MB\n"
]
}
],
"source": [
"df.info()"
]
},
{
"cell_type": "markdown",
"id": "edcefaf0",
"metadata": {},
"source": [
"Tha dataset contains 145 columns and 1015 rows.\n",
"\n",
"We present now summary statistics for each variable:"
]
},
{
"cell_type": "code",
"execution_count": 44,
"id": "2faca583",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" \n",
" RST_0000 \n",
" RST_0100 \n",
" RST_0200 \n",
" RST_0300 \n",
" RST_0400 \n",
" RST_0500 \n",
" RST_0600 \n",
" RST_0700 \n",
" RST_0800 \n",
" RST_0900 \n",
" ... \n",
" FF_1400 \n",
" FF_1500 \n",
" FF_1600 \n",
" FF_1700 \n",
" FF_1800 \n",
" FF_1900 \n",
" FF_2000 \n",
" FF_2100 \n",
" FF_2200 \n",
" FF_2300 \n",
" \n",
" \n",
" \n",
" \n",
" count \n",
" 976.000000 \n",
" 970.000000 \n",
" 971.000000 \n",
" 972.000000 \n",
" 970.000000 \n",
" 972.000000 \n",
" 975.000000 \n",
" 978.000000 \n",
" 978.000000 \n",
" 980.000000 \n",
" ... \n",
" 1015.000000 \n",
" 1015.000000 \n",
" 1015.000000 \n",
" 1015.000000 \n",
" 1015.000000 \n",
" 1015.000000 \n",
" 1015.000000 \n",
" 1015.000000 \n",
" 1015.000000 \n",
" 1015.000000 \n",
" \n",
" \n",
" mean \n",
" 4.359221 \n",
" 4.199897 \n",
" 4.082389 \n",
" 3.984053 \n",
" 3.933608 \n",
" 3.925823 \n",
" 4.132718 \n",
" 4.644376 \n",
" 5.695603 \n",
" 7.058265 \n",
" ... \n",
" 12.703448 \n",
" 12.437734 \n",
" 12.197734 \n",
" 12.011232 \n",
" 11.840690 \n",
" 11.739113 \n",
" 11.723054 \n",
" 11.639212 \n",
" 11.613793 \n",
" 11.617537 \n",
" \n",
" \n",
" std \n",
" 4.495237 \n",
" 4.476646 \n",
" 4.472077 \n",
" 4.482250 \n",
" 4.495215 \n",
" 4.494730 \n",
" 4.483807 \n",
" 4.667251 \n",
" 5.134104 \n",
" 5.694181 \n",
" ... \n",
" 5.731249 \n",
" 5.733469 \n",
" 5.523552 \n",
" 5.376537 \n",
" 5.320602 \n",
" 5.236507 \n",
" 5.265115 \n",
" 5.251522 \n",
" 5.277942 \n",
" 5.405816 \n",
" \n",
" \n",
" min \n",
" -9.400000 \n",
" -10.100000 \n",
" -10.500000 \n",
" -10.900000 \n",
" -11.200000 \n",
" -11.400000 \n",
" -11.500000 \n",
" -11.600000 \n",
" -10.600000 \n",
" -8.500000 \n",
" ... \n",
" 1.000000 \n",
" 0.900000 \n",
" 1.700000 \n",
" 1.900000 \n",
" 1.400000 \n",
" 1.100000 \n",
" 1.500000 \n",
" 1.900000 \n",
" 1.200000 \n",
" 1.100000 \n",
" \n",
" \n",
" 25% \n",
" 1.200000 \n",
" 1.100000 \n",
" 0.900000 \n",
" 0.800000 \n",
" 0.800000 \n",
" 0.875000 \n",
" 1.100000 \n",
" 1.700000 \n",
" 2.300000 \n",
" 3.300000 \n",
" ... \n",
" 8.600000 \n",
" 8.200000 \n",
" 8.100000 \n",
" 8.200000 \n",
" 8.150000 \n",
" 8.100000 \n",
" 8.000000 \n",
" 8.000000 \n",
" 8.000000 \n",
" 7.900000 \n",
" \n",
" \n",
" 50% \n",
" 4.000000 \n",
" 4.000000 \n",
" 3.700000 \n",
" 3.650000 \n",
" 3.600000 \n",
" 3.600000 \n",
" 3.800000 \n",
" 4.500000 \n",
" 5.200000 \n",
" 6.100000 \n",
" ... \n",
" 12.000000 \n",
" 11.600000 \n",
" 11.400000 \n",
" 11.200000 \n",
" 11.000000 \n",
" 11.000000 \n",
" 11.100000 \n",
" 11.000000 \n",
" 11.000000 \n",
" 10.800000 \n",
" \n",
" \n",
" 75% \n",
" 7.100000 \n",
" 7.000000 \n",
" 6.800000 \n",
" 6.825000 \n",
" 6.800000 \n",
" 6.800000 \n",
" 7.000000 \n",
" 7.500000 \n",
" 8.800000 \n",
" 10.400000 \n",
" ... \n",
" 16.000000 \n",
" 16.000000 \n",
" 15.400000 \n",
" 14.950000 \n",
" 14.800000 \n",
" 14.450000 \n",
" 14.600000 \n",
" 14.600000 \n",
" 14.700000 \n",
" 14.900000 \n",
" \n",
" \n",
" max \n",
" 17.300000 \n",
" 17.000000 \n",
" 18.000000 \n",
" 18.000000 \n",
" 18.200000 \n",
" 18.100000 \n",
" 18.100000 \n",
" 19.000000 \n",
" 20.900000 \n",
" 25.000000 \n",
" ... \n",
" 38.600000 \n",
" 37.400000 \n",
" 35.600000 \n",
" 34.300000 \n",
" 35.000000 \n",
" 34.800000 \n",
" 34.900000 \n",
" 34.100000 \n",
" 33.800000 \n",
" 34.700000 \n",
" \n",
" \n",
"
\n",
"
8 rows × 144 columns
\n",
"
"
],
"text/plain": [
" RST_0000 RST_0100 RST_0200 RST_0300 RST_0400 RST_0500 \\\n",
"count 976.000000 970.000000 971.000000 972.000000 970.000000 972.000000 \n",
"mean 4.359221 4.199897 4.082389 3.984053 3.933608 3.925823 \n",
"std 4.495237 4.476646 4.472077 4.482250 4.495215 4.494730 \n",
"min -9.400000 -10.100000 -10.500000 -10.900000 -11.200000 -11.400000 \n",
"25% 1.200000 1.100000 0.900000 0.800000 0.800000 0.875000 \n",
"50% 4.000000 4.000000 3.700000 3.650000 3.600000 3.600000 \n",
"75% 7.100000 7.000000 6.800000 6.825000 6.800000 6.800000 \n",
"max 17.300000 17.000000 18.000000 18.000000 18.200000 18.100000 \n",
"\n",
" RST_0600 RST_0700 RST_0800 RST_0900 ... FF_1400 \\\n",
"count 975.000000 978.000000 978.000000 980.000000 ... 1015.000000 \n",
"mean 4.132718 4.644376 5.695603 7.058265 ... 12.703448 \n",
"std 4.483807 4.667251 5.134104 5.694181 ... 5.731249 \n",
"min -11.500000 -11.600000 -10.600000 -8.500000 ... 1.000000 \n",
"25% 1.100000 1.700000 2.300000 3.300000 ... 8.600000 \n",
"50% 3.800000 4.500000 5.200000 6.100000 ... 12.000000 \n",
"75% 7.000000 7.500000 8.800000 10.400000 ... 16.000000 \n",
"max 18.100000 19.000000 20.900000 25.000000 ... 38.600000 \n",
"\n",
" FF_1500 FF_1600 FF_1700 FF_1800 FF_1900 \\\n",
"count 1015.000000 1015.000000 1015.000000 1015.000000 1015.000000 \n",
"mean 12.437734 12.197734 12.011232 11.840690 11.739113 \n",
"std 5.733469 5.523552 5.376537 5.320602 5.236507 \n",
"min 0.900000 1.700000 1.900000 1.400000 1.100000 \n",
"25% 8.200000 8.100000 8.200000 8.150000 8.100000 \n",
"50% 11.600000 11.400000 11.200000 11.000000 11.000000 \n",
"75% 16.000000 15.400000 14.950000 14.800000 14.450000 \n",
"max 37.400000 35.600000 34.300000 35.000000 34.800000 \n",
"\n",
" FF_2000 FF_2100 FF_2200 FF_2300 \n",
"count 1015.000000 1015.000000 1015.000000 1015.000000 \n",
"mean 11.723054 11.639212 11.613793 11.617537 \n",
"std 5.265115 5.251522 5.277942 5.405816 \n",
"min 1.500000 1.900000 1.200000 1.100000 \n",
"25% 8.000000 8.000000 8.000000 7.900000 \n",
"50% 11.100000 11.000000 11.000000 10.800000 \n",
"75% 14.600000 14.600000 14.700000 14.900000 \n",
"max 34.900000 34.100000 33.800000 34.700000 \n",
"\n",
"[8 rows x 144 columns]"
]
},
"execution_count": 44,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"(df.drop(['date'], axis=1).describe())"
]
},
{
"cell_type": "markdown",
"id": "8d149f50",
"metadata": {},
"source": [
"It is possible to notice that the all the variable have approximately same scale and in general similar distributions. This was expected by the meaning of each variable. For example the distribution of the Air Temperature at 10am is expected to behave similarly to the same measure at 6pm. "
]
},
{
"cell_type": "markdown",
"id": "c7fcbdca",
"metadata": {},
"source": [
"### Missing value imputation\n",
"\n",
"Then we want to check if there are missing values:"
]
},
{
"cell_type": "code",
"execution_count": 45,
"id": "6726b70a",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" \n",
" date \n",
" RST_0000 \n",
" RST_0100 \n",
" RST_0200 \n",
" RST_0300 \n",
" RST_0400 \n",
" RST_0500 \n",
" RST_0600 \n",
" RST_0700 \n",
" RST_0800 \n",
" ... \n",
" FF_1400 \n",
" FF_1500 \n",
" FF_1600 \n",
" FF_1700 \n",
" FF_1800 \n",
" FF_1900 \n",
" FF_2000 \n",
" FF_2100 \n",
" FF_2200 \n",
" FF_2300 \n",
" \n",
" \n",
" \n",
" \n",
" 0 \n",
" 20171101 \n",
" 9.8 \n",
" 9.9 \n",
" 10.2 \n",
" 10.5 \n",
" 10.8 \n",
" 11.1 \n",
" 11.2 \n",
" 11.5 \n",
" NaN \n",
" ... \n",
" 19.0 \n",
" 17.3 \n",
" 16.6 \n",
" 18.7 \n",
" 18.0 \n",
" 20.2 \n",
" 20.3 \n",
" 22.1 \n",
" 21.3 \n",
" 19.7 \n",
" \n",
" \n",
" 1 \n",
" 20171102 \n",
" NaN \n",
" NaN \n",
" NaN \n",
" NaN \n",
" NaN \n",
" NaN \n",
" NaN \n",
" NaN \n",
" 8.6 \n",
" ... \n",
" 15.8 \n",
" 14.6 \n",
" 12.7 \n",
" 10.6 \n",
" 9.4 \n",
" 12.0 \n",
" 9.6 \n",
" 7.8 \n",
" 8.6 \n",
" 8.1 \n",
" \n",
" \n",
" 7 \n",
" 20171108 \n",
" 2.6 \n",
" 3.6 \n",
" 4.0 \n",
" 3.4 \n",
" 4.0 \n",
" 4.2 \n",
" 5.3 \n",
" 5.6 \n",
" 6.1 \n",
" ... \n",
" 8.7 \n",
" 5.4 \n",
" 6.2 \n",
" 7.4 \n",
" 6.3 \n",
" 6.1 \n",
" 7.2 \n",
" 6.7 \n",
" 6.9 \n",
" 5.4 \n",
" \n",
" \n",
" 8 \n",
" 20171109 \n",
" NaN \n",
" NaN \n",
" NaN \n",
" NaN \n",
" NaN \n",
" NaN \n",
" NaN \n",
" NaN \n",
" NaN \n",
" ... \n",
" 16.3 \n",
" 17.2 \n",
" 18.4 \n",
" 18.9 \n",
" 9.2 \n",
" 8.4 \n",
" 10.4 \n",
" 9.9 \n",
" 10.0 \n",
" 10.0 \n",
" \n",
" \n",
" 9 \n",
" 20171110 \n",
" NaN \n",
" NaN \n",
" NaN \n",
" NaN \n",
" NaN \n",
" NaN \n",
" NaN \n",
" NaN \n",
" NaN \n",
" ... \n",
" 15.3 \n",
" 18.9 \n",
" 19.4 \n",
" 16.2 \n",
" 16.1 \n",
" 15.0 \n",
" 13.5 \n",
" 16.5 \n",
" 13.0 \n",
" 16.0 \n",
" \n",
" \n",
" ... \n",
" ... \n",
" ... \n",
" ... \n",
" ... \n",
" ... \n",
" ... \n",
" ... \n",
" ... \n",
" ... \n",
" ... \n",
" ... \n",
" ... \n",
" ... \n",
" ... \n",
" ... \n",
" ... \n",
" ... \n",
" ... \n",
" ... \n",
" ... \n",
" ... \n",
" \n",
" \n",
" 984 \n",
" 20220316 \n",
" 3.5 \n",
" 3.1 \n",
" 2.3 \n",
" 2.2 \n",
" 2.7 \n",
" 2.8 \n",
" 2.9 \n",
" 3.9 \n",
" 5.0 \n",
" ... \n",
" 11.7 \n",
" 13.0 \n",
" 11.5 \n",
" 14.1 \n",
" 14.5 \n",
" 13.6 \n",
" 13.4 \n",
" 14.9 \n",
" 15.6 \n",
" 16.3 \n",
" \n",
" \n",
" 985 \n",
" 20220317 \n",
" 4.6 \n",
" 4.5 \n",
" 4.1 \n",
" 3.7 \n",
" 3.8 \n",
" 4.1 \n",
" 4.5 \n",
" 5.2 \n",
" 6.0 \n",
" ... \n",
" 17.2 \n",
" 15.6 \n",
" 16.4 \n",
" 13.0 \n",
" 12.6 \n",
" 10.0 \n",
" 10.4 \n",
" 9.8 \n",
" 9.0 \n",
" 9.2 \n",
" \n",
" \n",
" 993 \n",
" 20220325 \n",
" NaN \n",
" NaN \n",
" 4.2 \n",
" NaN \n",
" NaN \n",
" 3.2 \n",
" 3.6 \n",
" 5.4 \n",
" 10.2 \n",
" ... \n",
" 11.3 \n",
" 12.6 \n",
" 12.4 \n",
" 11.2 \n",
" 10.5 \n",
" 9.2 \n",
" 10.5 \n",
" 9.1 \n",
" 10.2 \n",
" 10.2 \n",
" \n",
" \n",
" 999 \n",
" 20220331 \n",
" 0.0 \n",
" 0.0 \n",
" 0.2 \n",
" 0.3 \n",
" 0.1 \n",
" 0.6 \n",
" 1.0 \n",
" 2.0 \n",
" 3.0 \n",
" ... \n",
" 18.9 \n",
" 18.1 \n",
" 16.8 \n",
" 16.8 \n",
" 14.4 \n",
" 13.9 \n",
" 14.3 \n",
" 12.6 \n",
" 11.6 \n",
" 13.5 \n",
" \n",
" \n",
" 1000 \n",
" 20220401 \n",
" NaN \n",
" NaN \n",
" NaN \n",
" 0.8 \n",
" 0.8 \n",
" 0.8 \n",
" 1.6 \n",
" 3.2 \n",
" 5.4 \n",
" ... \n",
" 13.7 \n",
" 12.8 \n",
" 12.5 \n",
" 12.8 \n",
" 12.8 \n",
" 13.2 \n",
" 12.2 \n",
" 11.6 \n",
" 10.4 \n",
" 8.6 \n",
" \n",
" \n",
"
\n",
"
106 rows × 145 columns
\n",
"
"
],
"text/plain": [
" date RST_0000 RST_0100 RST_0200 RST_0300 RST_0400 RST_0500 \\\n",
"0 20171101 9.8 9.9 10.2 10.5 10.8 11.1 \n",
"1 20171102 NaN NaN NaN NaN NaN NaN \n",
"7 20171108 2.6 3.6 4.0 3.4 4.0 4.2 \n",
"8 20171109 NaN NaN NaN NaN NaN NaN \n",
"9 20171110 NaN NaN NaN NaN NaN NaN \n",
"... ... ... ... ... ... ... ... \n",
"984 20220316 3.5 3.1 2.3 2.2 2.7 2.8 \n",
"985 20220317 4.6 4.5 4.1 3.7 3.8 4.1 \n",
"993 20220325 NaN NaN 4.2 NaN NaN 3.2 \n",
"999 20220331 0.0 0.0 0.2 0.3 0.1 0.6 \n",
"1000 20220401 NaN NaN NaN 0.8 0.8 0.8 \n",
"\n",
" RST_0600 RST_0700 RST_0800 ... FF_1400 FF_1500 FF_1600 FF_1700 \\\n",
"0 11.2 11.5 NaN ... 19.0 17.3 16.6 18.7 \n",
"1 NaN NaN 8.6 ... 15.8 14.6 12.7 10.6 \n",
"7 5.3 5.6 6.1 ... 8.7 5.4 6.2 7.4 \n",
"8 NaN NaN NaN ... 16.3 17.2 18.4 18.9 \n",
"9 NaN NaN NaN ... 15.3 18.9 19.4 16.2 \n",
"... ... ... ... ... ... ... ... ... \n",
"984 2.9 3.9 5.0 ... 11.7 13.0 11.5 14.1 \n",
"985 4.5 5.2 6.0 ... 17.2 15.6 16.4 13.0 \n",
"993 3.6 5.4 10.2 ... 11.3 12.6 12.4 11.2 \n",
"999 1.0 2.0 3.0 ... 18.9 18.1 16.8 16.8 \n",
"1000 1.6 3.2 5.4 ... 13.7 12.8 12.5 12.8 \n",
"\n",
" FF_1800 FF_1900 FF_2000 FF_2100 FF_2200 FF_2300 \n",
"0 18.0 20.2 20.3 22.1 21.3 19.7 \n",
"1 9.4 12.0 9.6 7.8 8.6 8.1 \n",
"7 6.3 6.1 7.2 6.7 6.9 5.4 \n",
"8 9.2 8.4 10.4 9.9 10.0 10.0 \n",
"9 16.1 15.0 13.5 16.5 13.0 16.0 \n",
"... ... ... ... ... ... ... \n",
"984 14.5 13.6 13.4 14.9 15.6 16.3 \n",
"985 12.6 10.0 10.4 9.8 9.0 9.2 \n",
"993 10.5 9.2 10.5 9.1 10.2 10.2 \n",
"999 14.4 13.9 14.3 12.6 11.6 13.5 \n",
"1000 12.8 13.2 12.2 11.6 10.4 8.6 \n",
"\n",
"[106 rows x 145 columns]"
]
},
"execution_count": 45,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df[df.isna().any(axis=1)]"
]
},
{
"cell_type": "code",
"execution_count": 46,
"id": "8c32844f",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Total number of missing values in the dataframe: 1121\n"
]
}
],
"source": [
"print(\"Total number of missing values in the dataframe:\", df.isnull().sum().sum())"
]
},
{
"cell_type": "markdown",
"id": "d51a832e",
"metadata": {},
"source": [
"We chose to replace all missing values by its previous value, i.e. the value of the day before at the same time through the following function:"
]
},
{
"cell_type": "code",
"execution_count": 47,
"id": "b9260851",
"metadata": {},
"outputs": [],
"source": [
"def missing(df):\n",
" \"\"\" \n",
" input = dataframe\n",
" fill missing values with the next observed value\n",
" output = dataframe with no Nan\n",
" \"\"\"\n",
" df = df.fillna(method=\"bfill\")\n",
" return df"
]
},
{
"cell_type": "code",
"execution_count": 48,
"id": "8339d812",
"metadata": {},
"outputs": [],
"source": [
"df = missing(df)\n",
"#df.isnull().sum().sum() # to check that now is 0"
]
},
{
"cell_type": "markdown",
"id": "7b9240e3",
"metadata": {},
"source": [
"### Date time\n",
"\n",
"Date variable is read as numeric, so it is necessary to change the format of it."
]
},
{
"cell_type": "code",
"execution_count": 49,
"id": "62d08a14",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0 2017-11-01\n",
"1 2017-11-02\n",
"2 2017-11-03\n",
"3 2017-11-04\n",
"4 2017-11-05\n",
" ... \n",
"1010 2022-04-11\n",
"1011 2022-04-12\n",
"1012 2022-04-13\n",
"1013 2022-04-14\n",
"1014 2022-04-15\n",
"Name: date, Length: 1015, dtype: datetime64[ns]"
]
},
"execution_count": 49,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df['date'] = pd.to_datetime(df['date'], format='%Y%m%d') # convert to date time\n",
"df['date']"
]
},
{
"cell_type": "markdown",
"id": "8dd44780",
"metadata": {},
"source": [
"### Road Surface Temperature graph \n",
"\n",
"To get a better idea of the mobility of the road surface temperature, we made a time series plot of the road surface temperature for each day at 2pm from 2017-11-01 until 2022-04-15."
]
},
{
"cell_type": "code",
"execution_count": 50,
"id": "62fc92c6",
"metadata": {},
"outputs": [
{
"data": {
"application/vnd.plotly.v1+json": {
"config": {
"plotlyServerURL": "https://plot.ly"
},
"data": [
{
"hovertemplate": "date=%{x} Road Service Temperature=%{y} ",
"legendgroup": "",
"line": {
"color": "#636efa",
"dash": "solid"
},
"marker": {
"symbol": "circle"
},
"mode": "lines",
"name": "",
"showlegend": false,
"type": "scattergl",
"x": [
0,
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
16,
17,
18,
19,
20,
21,
22,
23,
24,
25,
26,
27,
28,
29,
30,
31,
32,
33,
34,
35,
36,
37,
38,
39,
40,
41,
42,
43,
44,
45,
46,
47,
48,
49,
50,
51,
52,
53,
54,
55,
56,
57,
58,
59,
60,
61,
62,
63,
64,
65,
66,
67,
68,
69,
70,
71,
72,
73,
74,
75,
76,
77,
78,
79,
80,
81,
82,
83,
84,
85,
86,
87,
88,
89,
90,
91,
92,
93,
94,
95,
96,
97,
98,
99,
100,
101,
102,
103,
104,
105,
106,
107,
108,
109,
110,
111,
112,
113,
114,
115,
116,
117,
118,
119,
120,
121,
122,
123,
124,
125,
126,
127,
128,
129,
130,
131,
132,
133,
134,
135,
136,
137,
138,
139,
140,
141,
142,
143,
144,
145,
146,
147,
148,
149,
150,
151,
152,
153,
154,
155,
156,
157,
158,
159,
160,
161,
162,
163,
164,
165,
166,
167,
168,
169,
170,
171,
172,
173,
174,
175,
176,
177,
178,
179,
180,
181,
182,
183,
184,
185,
186,
187,
188,
189,
190,
191,
192,
193,
194,
195,
196,
197,
198,
199,
200,
201,
202,
203,
204,
205,
206,
207,
208,
209,
210,
211,
212,
213,
214,
215,
216,
217,
218,
219,
220,
221,
222,
223,
224,
225,
226,
227,
228,
229,
230,
231,
232,
233,
234,
235,
236,
237,
238,
239,
240,
241,
242,
243,
244,
245,
246,
247,
248,
249,
250,
251,
252,
253,
254,
255,
256,
257,
258,
259,
260,
261,
262,
263,
264,
265,
266,
267,
268,
269,
270,
271,
272,
273,
274,
275,
276,
277,
278,
279,
280,
281,
282,
283,
284,
285,
286,
287,
288,
289,
290,
291,
292,
293,
294,
295,
296,
297,
298,
299,
300,
301,
302,
303,
304,
305,
306,
307,
308,
309,
310,
311,
312,
313,
314,
315,
316,
317,
318,
319,
320,
321,
322,
323,
324,
325,
326,
327,
328,
329,
330,
331,
332,
333,
334,
335,
336,
337,
338,
339,
340,
341,
342,
343,
344,
345,
346,
347,
348,
349,
350,
351,
352,
353,
354,
355,
356,
357,
358,
359,
360,
361,
362,
363,
364,
365,
366,
367,
368,
369,
370,
371,
372,
373,
374,
375,
376,
377,
378,
379,
380,
381,
382,
383,
384,
385,
386,
387,
388,
389,
390,
391,
392,
393,
394,
395,
396,
397,
398,
399,
400,
401,
402,
403,
404,
405,
406,
407,
408,
409,
410,
411,
412,
413,
414,
415,
416,
417,
418,
419,
420,
421,
422,
423,
424,
425,
426,
427,
428,
429,
430,
431,
432,
433,
434,
435,
436,
437,
438,
439,
440,
441,
442,
443,
444,
445,
446,
447,
448,
449,
450,
451,
452,
453,
454,
455,
456,
457,
458,
459,
460,
461,
462,
463,
464,
465,
466,
467,
468,
469,
470,
471,
472,
473,
474,
475,
476,
477,
478,
479,
480,
481,
482,
483,
484,
485,
486,
487,
488,
489,
490,
491,
492,
493,
494,
495,
496,
497,
498,
499,
500,
501,
502,
503,
504,
505,
506,
507,
508,
509,
510,
511,
512,
513,
514,
515,
516,
517,
518,
519,
520,
521,
522,
523,
524,
525,
526,
527,
528,
529,
530,
531,
532,
533,
534,
535,
536,
537,
538,
539,
540,
541,
542,
543,
544,
545,
546,
547,
548,
549,
550,
551,
552,
553,
554,
555,
556,
557,
558,
559,
560,
561,
562,
563,
564,
565,
566,
567,
568,
569,
570,
571,
572,
573,
574,
575,
576,
577,
578,
579,
580,
581,
582,
583,
584,
585,
586,
587,
588,
589,
590,
591,
592,
593,
594,
595,
596,
597,
598,
599,
600,
601,
602,
603,
604,
605,
606,
607,
608,
609,
610,
611,
612,
613,
614,
615,
616,
617,
618,
619,
620,
621,
622,
623,
624,
625,
626,
627,
628,
629,
630,
631,
632,
633,
634,
635,
636,
637,
638,
639,
640,
641,
642,
643,
644,
645,
646,
647,
648,
649,
650,
651,
652,
653,
654,
655,
656,
657,
658,
659,
660,
661,
662,
663,
664,
665,
666,
667,
668,
669,
670,
671,
672,
673,
674,
675,
676,
677,
678,
679,
680,
681,
682,
683,
684,
685,
686,
687,
688,
689,
690,
691,
692,
693,
694,
695,
696,
697,
698,
699,
700,
701,
702,
703,
704,
705,
706,
707,
708,
709,
710,
711,
712,
713,
714,
715,
716,
717,
718,
719,
720,
721,
722,
723,
724,
725,
726,
727,
728,
729,
730,
731,
732,
733,
734,
735,
736,
737,
738,
739,
740,
741,
742,
743,
744,
745,
746,
747,
748,
749,
750,
751,
752,
753,
754,
755,
756,
757,
758,
759,
760,
761,
762,
763,
764,
765,
766,
767,
768,
769,
770,
771,
772,
773,
774,
775,
776,
777,
778,
779,
780,
781,
782,
783,
784,
785,
786,
787,
788,
789,
790,
791,
792,
793,
794,
795,
796,
797,
798,
799,
800,
801,
802,
803,
804,
805,
806,
807,
808,
809,
810,
811,
812,
813,
814,
815,
816,
817,
818,
819,
820,
821,
822,
823,
824,
825,
826,
827,
828,
829,
830,
831,
832,
833,
834,
835,
836,
837,
838,
839,
840,
841,
842,
843,
844,
845,
846,
847,
848,
849,
850,
851,
852,
853,
854,
855,
856,
857,
858,
859,
860,
861,
862,
863,
864,
865,
866,
867,
868,
869,
870,
871,
872,
873,
874,
875,
876,
877,
878,
879,
880,
881,
882,
883,
884,
885,
886,
887,
888,
889,
890,
891,
892,
893,
894,
895,
896,
897,
898,
899,
900,
901,
902,
903,
904,
905,
906,
907,
908,
909,
910,
911,
912,
913,
914,
915,
916,
917,
918,
919,
920,
921,
922,
923,
924,
925,
926,
927,
928,
929,
930,
931,
932,
933,
934,
935,
936,
937,
938,
939,
940,
941,
942,
943,
944,
945,
946,
947,
948,
949,
950,
951,
952,
953,
954,
955,
956,
957,
958,
959,
960,
961,
962,
963,
964,
965,
966,
967,
968,
969,
970,
971,
972,
973,
974,
975,
976,
977,
978,
979,
980,
981,
982,
983,
984,
985,
986,
987,
988,
989,
990,
991,
992,
993,
994,
995,
996,
997,
998,
999,
1000,
1001,
1002,
1003,
1004,
1005,
1006,
1007,
1008,
1009,
1010,
1011,
1012,
1013,
1014
],
"xaxis": "x",
"y": [
12.6,
12.6,
10.5,
12.3,
11.3,
9,
7.7,
8.6,
8.6,
8.6,
8.6,
8.6,
8.6,
8.6,
8.6,
8.6,
6.7,
4.1,
5.6,
6.7,
6.3,
9.9,
9.7,
6.3,
4.2,
5,
4.5,
5.4,
5.4,
2.7,
4.7,
2.7,
5.4,
4.7,
7.7,
8.2,
4.7,
2.1,
1.7,
0,
1,
0.7,
0.4,
2.1,
3.9,
1.6,
1.1,
2.6,
5.7,
7,
6.4,
4.1,
4.1,
4.1,
4.1,
4.1,
4.1,
4.1,
4.1,
4.1,
4.1,
4.1,
4.1,
4.1,
4.1,
4.1,
3.4,
1.2,
1,
2.6,
4,
3.8,
2.2,
2.1,
1.7,
1.5,
1.8,
2.1,
1,
1.6,
1.6,
4.1,
1.2,
4.8,
10.6,
7.4,
7.1,
6.2,
8.5,
6.5,
5.3,
6.2,
4,
4.5,
-0.3,
2.5,
1.8,
4.5,
4.5,
4.4,
4.3,
2.4,
3.4,
5.5,
7.4,
6.9,
0.8,
6.5,
6.7,
7,
9,
8.6,
8.5,
5.5,
8.4,
7.3,
3.7,
5.4,
-1.5,
-1.3,
-2.6,
0.8,
3.9,
1.8,
6.9,
8.8,
4.9,
8.3,
11.4,
4,
10.6,
9,
7,
7.8,
7.5,
4.6,
6.7,
12.6,
15.3,
15.3,
9.6,
8.2,
10.2,
13,
10,
10,
16.5,
6.8,
5.4,
15.7,
8.3,
16.1,
18.7,
14.3,
19,
8.8,
23.8,
26.1,
29.3,
28.4,
12.8,
20.7,
22,
12.6,
10.4,
12.8,
27.1,
30.2,
35,
30.6,
24.8,
17,
20.7,
16.8,
21.1,
19.6,
14.9,
20.6,
22.8,
19.5,
21.2,
20.8,
14.6,
20.9,
17.3,
23.7,
19.5,
20.5,
17.5,
17.9,
23.3,
23.9,
25.7,
28.1,
25.7,
26.3,
21.4,
23.7,
20.4,
18.1,
18.7,
16.6,
16.9,
13.2,
12.7,
13.6,
11.2,
9.1,
9.4,
6.5,
10,
10.8,
12.5,
11.6,
11.3,
9.8,
10.6,
11.6,
13.6,
11.8,
9.5,
10.4,
11.6,
10.5,
9.9,
9.7,
11.7,
9.5,
7.2,
6.7,
5.7,
5.3,
6.4,
4.2,
4.1,
3.8,
4.5,
5.2,
3.8,
1.8,
4.7,
8.1,
7.1,
8.2,
9.5,
5.6,
3.5,
6.7,
10.3,
7.4,
6.1,
5.1,
4.1,
4.9,
3.3,
2,
2.1,
0.8,
1.4,
4.9,
3.3,
5.3,
5.8,
5,
5.7,
4.1,
6.1,
7.8,
7.9,
7.6,
7.4,
5.6,
7.1,
5.9,
3.8,
1,
5.8,
7.8,
6.3,
6.3,
6.3,
4.6,
2.2,
6.5,
5.8,
6.4,
3.7,
6.7,
6.7,
4.4,
3.5,
2.4,
3.3,
3,
2.7,
-0.4,
-2.5,
-0.8,
3.3,
5.2,
3.4,
2.3,
3.6,
2.3,
1.5,
2.6,
6.3,
3.5,
6,
4.8,
5.9,
6.4,
5.3,
5.2,
10.7,
9.4,
8.9,
10.3,
14.3,
13,
15.4,
15.5,
8.1,
9.5,
8.4,
10.7,
9.6,
15.7,
15.9,
17.6,
18.2,
15.7,
12.3,
9.2,
11.3,
7.3,
13,
6.9,
9.2,
13.3,
7.7,
10.5,
16.4,
5.1,
5.5,
7,
8.2,
7.2,
13.7,
17.3,
19.7,
11.2,
11.7,
12.9,
20.5,
19.8,
18.9,
15.2,
11.2,
16.8,
20.2,
23.1,
21.7,
21.3,
21.7,
10.8,
24.2,
21.8,
26.6,
28,
26.6,
24.9,
14.6,
11.1,
20.2,
13.7,
16,
23.1,
26.6,
23,
19.1,
26.6,
20.2,
30.7,
29.4,
27,
24.7,
17.2,
20.1,
25.3,
21.1,
14.5,
22.3,
12.2,
17.6,
15.1,
11.9,
13.4,
16.8,
15.4,
16,
15.8,
15.8,
13.8,
15,
12.5,
17.3,
21.8,
15.6,
17.4,
16,
14.8,
14.3,
12.4,
14,
14.8,
14.5,
12.9,
14.8,
13.4,
11.5,
11.2,
9.7,
9.3,
6.2,
11.7,
11.1,
10.8,
7.6,
7.3,
7.4,
9.8,
9.6,
8.2,
6.5,
5.8,
4.8,
7.3,
6.8,
8.2,
6.6,
8.3,
8.1,
6.9,
6.8,
8.4,
8.1,
6.9,
7,
7.2,
7.8,
8.9,
5.1,
5.3,
6.3,
4.8,
6.6,
7.6,
6.8,
6.1,
7.6,
8.1,
6,
5.7,
6,
5.1,
2.8,
4.2,
4.4,
5.7,
7,
7.2,
7.5,
5.9,
7.1,
4.9,
7.4,
6,
6.1,
5.6,
4.1,
2.2,
2.3,
6.1,
6.2,
5,
2,
6.1,
4.7,
4.9,
6.1,
6.8,
8.9,
8.9,
5.9,
5.2,
5.5,
6.1,
7.8,
9.2,
8.2,
8.4,
5.1,
6.4,
6.6,
7.6,
8.2,
6.4,
6.9,
6,
6.3,
7.1,
5.9,
4.5,
7,
7.8,
9.7,
8.5,
8,
8.7,
9.4,
8.6,
6.6,
7.4,
7.2,
7.4,
4.4,
6.2,
4.7,
6.1,
8,
10.5,
9.2,
8.3,
9.8,
7.4,
8.9,
8.3,
6.1,
6.5,
5.7,
7.4,
8.5,
10.4,
11.1,
9.1,
12.1,
10.7,
8.1,
10.6,
7,
11,
9,
13.8,
9.1,
16.7,
11.6,
15.4,
17.1,
15.1,
13.9,
13.6,
9.8,
22,
18.6,
18.8,
15.9,
18.9,
17.6,
21.4,
20,
22.6,
23.2,
18.7,
21.9,
22.5,
11.5,
12,
13.2,
20.3,
26.3,
30.3,
30,
30,
28,
27.3,
29.2,
31.2,
20.3,
20.8,
26.5,
30.6,
28.4,
28.4,
25.6,
28,
25.9,
30.8,
27.1,
25.1,
20.4,
18.4,
19.4,
15.9,
21.8,
22.8,
23.2,
18.9,
18.2,
18.3,
16.8,
17.1,
19,
12.2,
18.5,
11.6,
12.1,
15.9,
18.1,
13.6,
13.8,
14.8,
16,
15.5,
14,
11.2,
12.6,
15.9,
15.8,
14.6,
11.6,
11.8,
13.1,
13.7,
9.9,
13.5,
14.2,
15.6,
16.3,
13.7,
10.4,
11.2,
15.4,
12.4,
10.8,
9.8,
8.2,
6.5,
8.7,
9.6,
10.4,
13.2,
10.1,
11.7,
11.6,
6.4,
7.1,
7.3,
9.1,
8,
8.5,
6.8,
9.5,
7.1,
5.7,
4.3,
3.7,
5.2,
4.8,
2.9,
2.4,
3.9,
5.4,
6.2,
6.1,
5.2,
3.7,
3,
3.7,
3.8,
6,
7.7,
7.1,
7.5,
7.5,
5.7,
7.2,
6.6,
7.5,
5.2,
4.1,
1.6,
3.3,
2.9,
3,
2.9,
4.5,
3.5,
3.4,
3.5,
3.3,
3,
2.9,
1.7,
2.7,
2,
2.6,
2.4,
4.1,
1.5,
1.9,
2,
0.5,
1.3,
1.7,
3.5,
4.1,
6.7,
7.3,
5.6,
4.4,
3.3,
5,
5,
3.1,
3,
0.9,
2.8,
3.4,
1.3,
1,
-0.5,
2.1,
2.5,
2.6,
-2.6,
-2,
2,
3.2,
1.2,
1.8,
2.6,
2.4,
1.1,
3.6,
5.4,
10.9,
10.3,
14,
16.5,
16.1,
14.5,
15.1,
11.6,
14.5,
14.5,
16.3,
16.3,
16.4,
13.6,
9.3,
13.1,
8.5,
7.4,
14.3,
13.1,
9.5,
11.1,
11.1,
11.1,
11.1,
11.1,
16.3,
17.2,
14.7,
9.5,
6.4,
16.9,
11.7,
10.6,
17.1,
20.3,
18.4,
12.5,
8.2,
12.7,
24.7,
28.7,
17.4,
19.3,
22.4,
10.3,
12.4,
7.8,
10.7,
10.2,
16.7,
21.1,
7.3,
16.8,
19.4,
22.3,
21.5,
27.6,
22.1,
21.3,
20.9,
26.8,
18,
27.9,
18.2,
16.8,
24.1,
27.1,
23.7,
24.6,
22.3,
17.3,
20.9,
20.1,
17.3,
18.5,
14.3,
17.4,
21.3,
17.6,
18.8,
17,
15.1,
11.5,
14,
14,
14,
14.6,
12.7,
14.2,
13.9,
14.5,
10.2,
9.4,
12.4,
13.4,
10.6,
10.5,
13.2,
16.4,
15.7,
13.3,
13.8,
13,
12.6,
10.6,
8.6,
11.3,
10.1,
8.7,
11.1,
11.3,
11.9,
12.5,
10.5,
8.9,
8.8,
8.2,
6.9,
7.4,
10.2,
12.7,
10.8,
8.3,
7.1,
8.4,
8.2,
6.3,
4.6,
4,
4.1,
4.2,
4.1,
6.5,
2.4,
2.3,
4.3,
3.3,
2.5,
2.4,
2.5,
3.3,
4,
2.8,
5.7,
8.5,
5.6,
9,
6.7,
7.5,
7.4,
7,
2.7,
1.4,
1.2,
-0.6,
-0.7,
-2.9,
-2.5,
-1,
2.1,
2.5,
8.2,
9.5,
9.2,
9.8,
7.6,
5,
4.1,
2.4,
2.7,
3.3,
2.7,
3.7,
4.4,
6,
7.4,
7.1,
5.5,
5.8,
5.8,
7,
4.4,
2.6,
5.1,
7.3,
8.7,
5.6,
6.5,
5.7,
8.5,
7.1,
8.3,
7.3,
4.8,
6.2,
7.4,
7,
6.8,
6,
5.7,
8.1,
8.4,
8.1,
7.9,
7.9,
6.4,
7.6,
8.3,
8.8,
8.4,
6.6,
4.3,
6,
6.2,
4.9,
7.6,
11.3,
6.7,
11.9,
13.6,
12.4,
13.7,
7.1,
13.8,
10.2,
13.5,
7.5,
13.8,
15.7,
16.9,
17.2,
16.5,
15.4,
17,
16.5,
13.4,
17.3,
9.1,
8.1,
20.9,
19.5,
16.3,
20.5,
21.5,
22.9,
23.3,
25.2,
25.2,
24.8,
16.5,
17.1,
13,
14.3,
14.3,
16.5,
11,
8.7,
14.5,
8.6,
9.8,
9.1,
12.2,
13,
22.5,
21.3,
26.6,
24.3,
14
],
"yaxis": "y"
}
],
"layout": {
"legend": {
"tracegroupgap": 0
},
"margin": {
"t": 60
},
"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
}
}
},
"xaxis": {
"anchor": "y",
"domain": [
0,
1
],
"title": {
"text": "date"
}
},
"yaxis": {
"anchor": "x",
"domain": [
0,
1
],
"title": {
"text": "Road Service Temperature"
}
}
}
},
"text/html": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"example = pd.DataFrame(\n",
" {\n",
" \"date\": np.arange(len(df['RST_1400'])),\n",
" \"Road Service Temperature\": df['RST_1400'],\n",
" }\n",
")\n",
"px.line(example, x=\"date\", y=\"Road Service Temperature\")"
]
},
{
"cell_type": "markdown",
"id": "66c33d39",
"metadata": {},
"source": [
"From the plot above we can observe and learn a lot. One can notice that the data is homogeneous in the sense that the road surface temperature is usually similar to the day(s) before it. Furthermore, there is a clear presence of seasonality, by noticing that some patterns are similar each day, such as the peeks in each summer."
]
},
{
"cell_type": "markdown",
"id": "5a4be29e",
"metadata": {},
"source": [
"### Road Surface Temperature in a day\n",
"In the graph below we plot the average road surface temperature for each hour of the day across all the data that we have. From this plot we can get a better idea of the amount of variation and whether there could be some intuitive explanation."
]
},
{
"cell_type": "code",
"execution_count": 51,
"id": "d60d9ded",
"metadata": {},
"outputs": [
{
"data": {
"application/vnd.plotly.v1+json": {
"config": {
"plotlyServerURL": "https://plot.ly"
},
"data": [
{
"hovertemplate": "hour of day=%{x} Road Service Temperature=%{y} ",
"legendgroup": "",
"line": {
"color": "#636efa",
"dash": "solid"
},
"marker": {
"symbol": "circle"
},
"mode": "lines",
"name": "",
"orientation": "v",
"showlegend": false,
"type": "scatter",
"x": [
0,
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
16,
17,
18,
19,
20,
21,
22,
23
],
"xaxis": "x",
"y": [
4.315566502463047,
4.16187192118227,
4.0418719211822625,
3.953004926108376,
3.9154679802955656,
3.9048275862068946,
4.082167487684725,
4.564827586206893,
5.608965517241375,
6.978029556650239,
8.6216748768473,
9.960000000000006,
10.738325123152704,
10.854384236453203,
10.403546798029556,
9.306009852216755,
8.114876847290649,
6.976551724137933,
6.1367487684729065,
5.608866995073886,
5.234778325123158,
4.93221674876847,
4.678719211822659,
4.452315270935958
],
"yaxis": "y"
}
],
"layout": {
"legend": {
"tracegroupgap": 0
},
"margin": {
"t": 60
},
"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
}
}
},
"xaxis": {
"anchor": "y",
"domain": [
0,
1
],
"title": {
"text": "hour of day"
}
},
"yaxis": {
"anchor": "x",
"domain": [
0,
1
],
"title": {
"text": "Road Service Temperature"
}
}
}
},
"text/html": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"vRST = np.zeros(24)\n",
"for i in range(24):\n",
" vRST[i] = df.iloc[:,1+i].mean()\n",
"example2 = pd.DataFrame(\n",
" {\n",
" \"hour of day\": np.arange(24),\n",
" \"Road Service Temperature\": vRST,\n",
" }\n",
")\n",
"px.line(example2, x=\"hour of day\", y=\"Road Service Temperature\")"
]
},
{
"cell_type": "markdown",
"id": "022671cf",
"metadata": {},
"source": [
"From the graph above we can see that the road surface temperature differs a lot across the day and we may suspect that there is a correlation between solar radiation and temperature with the road surface temperature, since the average road surface temperature is higher during the day and lower in the night. Furthermore, we can see that for each hour of the day we will probably have to make a seperate model, because the influence of the road surface temperature of the hours before strongly depends on the hour we focus on. For instance, if we know that it was 10 degrees at 11am we will probably predict an even higher temperature at 12pm, whereas if we know that the road surface temperature was 10 degrees at 3pm, we will predict a lower value for the road surface temperature at 4pm, i.e. the parameter value in a time series model will depend the hour of the day and we must therefore distinguish models depending on the hour."
]
},
{
"cell_type": "markdown",
"id": "cddfbb43",
"metadata": {},
"source": [
"### Temperature in a day\n",
"\n",
"Now, we will make a plot of the average air temperature (TT) for each hour of the day to see whether there is a similarity in distribution with the road surface temperature as we expect."
]
},
{
"cell_type": "code",
"execution_count": 52,
"id": "01271fd5",
"metadata": {},
"outputs": [
{
"data": {
"application/vnd.plotly.v1+json": {
"config": {
"plotlyServerURL": "https://plot.ly"
},
"data": [
{
"hovertemplate": "hour of day=%{x} Temperature=%{y} ",
"legendgroup": "",
"line": {
"color": "#636efa",
"dash": "solid"
},
"marker": {
"symbol": "circle"
},
"mode": "lines",
"name": "",
"orientation": "v",
"showlegend": false,
"type": "scatter",
"x": [
0,
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
16,
17,
18,
19,
20,
21,
22,
23
],
"xaxis": "x",
"y": [
5.173596059113302,
5.08177339901477,
4.994187192118222,
4.917832512315266,
4.850640394088672,
4.8095566502463045,
4.852610837438423,
5.096059113300493,
5.531231527093593,
6.072315270935956,
6.592216748768474,
7.022364532019706,
7.329359605911332,
7.475369458128082,
7.411527093596059,
7.172610837438422,
6.765517241379321,
6.353103448275855,
5.998029556650246,
5.746699507389161,
5.5726108374384244,
5.435073891625616,
5.327192118226608,
5.228965517241374
],
"yaxis": "y"
}
],
"layout": {
"legend": {
"tracegroupgap": 0
},
"margin": {
"t": 60
},
"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
}
}
},
"xaxis": {
"anchor": "y",
"domain": [
0,
1
],
"title": {
"text": "hour of day"
}
},
"yaxis": {
"anchor": "x",
"domain": [
0,
1
],
"title": {
"text": "Temperature"
}
}
}
},
"text/html": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"vTT = np.zeros(24)\n",
"for i in range(24):\n",
" vTT[i] = df.iloc[:,25+i].mean()\n",
"example2 = pd.DataFrame(\n",
" {\n",
" \"hour of day\": np.arange(24),\n",
" \"Temperature\": vTT,\n",
" }\n",
")\n",
"px.line(example2, x=\"hour of day\", y=\"Temperature\")"
]
},
{
"cell_type": "markdown",
"id": "f229d5c8",
"metadata": {},
"source": [
"From the plots above we can notice that the average road surface temperature and average temperature seem to have a very similar distribution, which indicates that temperature will be an important predictor."
]
},
{
"cell_type": "markdown",
"id": "ebbf1632",
"metadata": {},
"source": [
"# Prediction and classification analysis\n",
"\n",
"## Regression models\n",
"\n",
"In this section we predict the road surface temperature on a specific time, namely 2pm and 10pm using as predictors: TT, TD, GRAD1, NE and FF available at the current values of the predictors and ten lags. E.g. for 2pm the predictors will be from 8am until 2pm. \n",
"\n",
"First, we will use linear regression to get an idea of the predictive power of the model and to designate which variables are important predictors. Secondly, we will apply lasso regularization on the same predictors to delete the variables that are of no importance. To decide which value to use as tuning parameter in lasso regression we will make use of cross validation."
]
},
{
"cell_type": "markdown",
"id": "dce0c2d1",
"metadata": {},
"source": [
"### Linear regression\n",
"\n",
"The method we will try out first is linear regression which can be exploited by the following equation:\n",
"$y_i = \\beta_0 + \\beta_1 x_{i1} + ... + \\beta_k x_{ik} + u_i \\qquad (i = 1,2, ..., n)$\n",
"\n",
"where the parameters are estimated by minimizing the squared loss as follows: $\\hat{\\beta} = \\underset{\\beta\\in R^{k+1}}{\\mathrm{argmin}}\\sum_{i=1}^{n}{(y_i-X_i'\\beta)^2}$.\n",
"\n",
"The response variable $Y$ is the Road Surface Temperature at time 2pm firstly, then at 10pm."
]
},
{
"cell_type": "markdown",
"id": "67c81ba5",
"metadata": {},
"source": [
"#### Prediction RST at 2pm"
]
},
{
"cell_type": "code",
"execution_count": 53,
"id": "c2fd19c8",
"metadata": {},
"outputs": [],
"source": [
"def regression(df, hour, lags):\n",
" \"\"\"\n",
" input: dataframe, hour for response, number of lags\n",
" output: X matrix containing TT, TD, GRAD1, NE, FF up to a certain number of lags, \n",
" y vector containing RST for the given hour\n",
" \"\"\"\n",
" X = pd.concat([pd.DataFrame(df.iloc[:, (df.columns.get_loc(\"TT_0000\")+hour-lags):(df.columns.get_loc(\"TT_0000\")+hour+1)]),\n",
" pd.DataFrame(df.iloc[:, (df.columns.get_loc(\"TD_0000\")+hour-lags):(df.columns.get_loc(\"TD_0000\")+hour+1)]),\n",
" pd.DataFrame(df.iloc[:, (df.columns.get_loc(\"GRAD1_0000\")+hour-lags):(df.columns.get_loc(\"GRAD1_0000\")+hour+1)]),\n",
" pd.DataFrame(df.iloc[:, (df.columns.get_loc(\"NE_0000\")+hour-lags):(df.columns.get_loc(\"NE_0000\")+hour+1)]),\n",
" pd.DataFrame(df.iloc[:, (df.columns.get_loc(\"FF_0000\")+hour-lags):(df.columns.get_loc(\"FF_0000\")+hour+1)])\n",
" ], axis=1)\n",
"\n",
" y = pd.DataFrame(df.iloc[:, df.columns.get_loc(\"RST_0000\")+hour])\n",
" return X,y\n",
"\n",
"def lmodel(X,y):\n",
" '''\n",
" input: X matrix, y vector\n",
" output: linear regression model summary on given input\n",
" '''\n",
" X = sm.add_constant(X)\n",
" model = sm.OLS(y, X).fit()\n",
" print(model.summary())"
]
},
{
"cell_type": "code",
"execution_count": 54,
"id": "b548b069",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
" OLS Regression Results \n",
"==============================================================================\n",
"Dep. Variable: RST_1400 R-squared: 0.962\n",
"Model: OLS Adj. R-squared: 0.960\n",
"Method: Least Squares F-statistic: 443.9\n",
"Date: Thu, 15 Dec 2022 Prob (F-statistic): 0.00\n",
"Time: 22:26:25 Log-Likelihood: -1743.7\n",
"No. Observations: 1015 AIC: 3599.\n",
"Df Residuals: 959 BIC: 3875.\n",
"Df Model: 55 \n",
"Covariance Type: nonrobust \n",
"==============================================================================\n",
" coef std err t P>|t| [0.025 0.975]\n",
"------------------------------------------------------------------------------\n",
"const -3.1230 0.329 -9.491 0.000 -3.769 -2.477\n",
"TT_0400 0.1657 0.150 1.107 0.268 -0.128 0.459\n",
"TT_0500 0.0117 0.209 0.056 0.955 -0.399 0.422\n",
"TT_0600 -0.2435 0.201 -1.213 0.225 -0.638 0.150\n",
"TT_0700 0.3506 0.213 1.649 0.099 -0.067 0.768\n",
"TT_0800 -0.0367 0.194 -0.189 0.850 -0.417 0.344\n",
"TT_0900 -0.0754 0.172 -0.437 0.662 -0.414 0.263\n",
"TT_1000 0.1722 0.173 0.998 0.318 -0.166 0.511\n",
"TT_1100 -0.1582 0.163 -0.968 0.333 -0.479 0.163\n",
"TT_1200 0.1043 0.141 0.740 0.459 -0.172 0.381\n",
"TT_1300 0.0695 0.143 0.486 0.627 -0.211 0.350\n",
"TT_1400 0.7044 0.103 6.837 0.000 0.502 0.907\n",
"TD_0400 0.0891 0.154 0.579 0.562 -0.213 0.391\n",
"TD_0500 -0.1802 0.241 -0.747 0.455 -0.653 0.293\n",
"TD_0600 -0.1853 0.249 -0.745 0.456 -0.673 0.302\n",
"TD_0700 0.4173 0.220 1.897 0.058 -0.014 0.849\n",
"TD_0800 -0.1214 0.192 -0.632 0.527 -0.498 0.255\n",
"TD_0900 0.1807 0.176 1.028 0.304 -0.164 0.526\n",
"TD_1000 -0.4439 0.181 -2.459 0.014 -0.798 -0.090\n",
"TD_1100 0.3055 0.178 1.714 0.087 -0.044 0.655\n",
"TD_1200 -0.3071 0.167 -1.843 0.066 -0.634 0.020\n",
"TD_1300 0.1375 0.176 0.780 0.435 -0.208 0.483\n",
"TD_1400 0.0201 0.108 0.185 0.853 -0.192 0.233\n",
"GRAD1_0400 4.1896 4.817 0.870 0.385 -5.263 13.642\n",
"GRAD1_0500 0.1135 0.125 0.906 0.365 -0.132 0.359\n",
"GRAD1_0600 -0.0103 0.017 -0.621 0.534 -0.043 0.022\n",
"GRAD1_0700 0.0036 0.007 0.540 0.589 -0.009 0.017\n",
"GRAD1_0800 0.0024 0.004 0.596 0.551 -0.005 0.010\n",
"GRAD1_0900 0.0015 0.003 0.541 0.588 -0.004 0.007\n",
"GRAD1_1000 0.0060 0.002 2.794 0.005 0.002 0.010\n",
"GRAD1_1100 -0.0036 0.002 -2.084 0.037 -0.007 -0.000\n",
"GRAD1_1200 0.0063 0.002 3.650 0.000 0.003 0.010\n",
"GRAD1_1300 0.0045 0.002 2.506 0.012 0.001 0.008\n",
"GRAD1_1400 0.0142 0.001 10.008 0.000 0.011 0.017\n",
"NE_0400 0.0171 0.044 0.388 0.698 -0.069 0.104\n",
"NE_0500 0.0973 0.054 1.792 0.073 -0.009 0.204\n",
"NE_0600 -0.0428 0.044 -0.980 0.327 -0.128 0.043\n",
"NE_0700 -0.0553 0.053 -1.042 0.298 -0.159 0.049\n",
"NE_0800 0.0836 0.058 1.453 0.146 -0.029 0.197\n",
"NE_0900 0.0848 0.048 1.749 0.081 -0.010 0.180\n",
"NE_1000 -0.0744 0.078 -0.956 0.339 -0.227 0.078\n",
"NE_1100 0.1329 0.080 1.654 0.099 -0.025 0.291\n",
"NE_1200 0.0735 0.082 0.902 0.367 -0.086 0.234\n",
"NE_1300 0.0698 0.081 0.866 0.387 -0.088 0.228\n",
"NE_1400 0.1422 0.060 2.383 0.017 0.025 0.259\n",
"FF_0400 -0.0632 0.033 -1.924 0.055 -0.128 0.001\n",
"FF_0500 0.0593 0.044 1.335 0.182 -0.028 0.147\n",
"FF_0600 -0.0120 0.046 -0.261 0.794 -0.102 0.078\n",
"FF_0700 -0.0315 0.045 -0.706 0.480 -0.119 0.056\n",
"FF_0800 -0.0112 0.041 -0.272 0.786 -0.092 0.070\n",
"FF_0900 0.0581 0.042 1.398 0.162 -0.023 0.140\n",
"FF_1000 0.0104 0.040 0.258 0.797 -0.069 0.090\n",
"FF_1100 -0.0502 0.041 -1.219 0.223 -0.131 0.031\n",
"FF_1200 -0.0363 0.037 -0.971 0.332 -0.110 0.037\n",
"FF_1300 0.0240 0.039 0.620 0.536 -0.052 0.100\n",
"FF_1400 -0.0551 0.030 -1.839 0.066 -0.114 0.004\n",
"==============================================================================\n",
"Omnibus: 67.138 Durbin-Watson: 1.445\n",
"Prob(Omnibus): 0.000 Jarque-Bera (JB): 288.268\n",
"Skew: -0.042 Prob(JB): 2.53e-63\n",
"Kurtosis: 5.609 Cond. No. 6.54e+04\n",
"==============================================================================\n",
"\n",
"Notes:\n",
"[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.\n",
"[2] The condition number is large, 6.54e+04. This might indicate that there are\n",
"strong multicollinearity or other numerical problems.\n"
]
}
],
"source": [
"df = missing(df)\n",
"\n",
"X1400,y1400 = regression(df, 14, 10)\n",
"lmodel(X1400,y1400)"
]
},
{
"cell_type": "markdown",
"id": "0848bdc7",
"metadata": {},
"source": [
"From the table above we can see that many variables are deemed insignificant ($P(x_i>|t|)>0.05$). The variables that are deemed most important seem to be the coefficients which have $P>|t| = 0:$ (TT1400), (GRAD1_1200) and (GRAD1_1400). Furtermore, the adjusted $R^2$ value of 0.960 implicates that we can explain most of the variation in road surface temperature."
]
},
{
"cell_type": "markdown",
"id": "3052d71a",
"metadata": {},
"source": [
"#### Prediction RST at 10pm"
]
},
{
"cell_type": "code",
"execution_count": 55,
"id": "d8cb3567",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
" OLS Regression Results \n",
"==============================================================================\n",
"Dep. Variable: RST_2200 R-squared: 0.962\n",
"Model: OLS Adj. R-squared: 0.960\n",
"Method: Least Squares F-statistic: 447.5\n",
"Date: Thu, 15 Dec 2022 Prob (F-statistic): 0.00\n",
"Time: 22:26:25 Log-Likelihood: -1287.6\n",
"No. Observations: 1015 AIC: 2685.\n",
"Df Residuals: 960 BIC: 2956.\n",
"Df Model: 54 \n",
"Covariance Type: nonrobust \n",
"==============================================================================\n",
" coef std err t P>|t| [0.025 0.975]\n",
"------------------------------------------------------------------------------\n",
"const -2.8540 0.201 -14.231 0.000 -3.248 -2.460\n",
"TT_1200 0.1748 0.064 2.745 0.006 0.050 0.300\n",
"TT_1300 -0.0823 0.089 -0.922 0.357 -0.257 0.093\n",
"TT_1400 0.0766 0.084 0.909 0.364 -0.089 0.242\n",
"TT_1500 -0.2566 0.105 -2.446 0.015 -0.462 -0.051\n",
"TT_1600 0.3697 0.113 3.273 0.001 0.148 0.591\n",
"TT_1700 -0.1176 0.113 -1.039 0.299 -0.340 0.104\n",
"TT_1800 0.1319 0.120 1.100 0.272 -0.103 0.367\n",
"TT_1900 -0.0774 0.130 -0.596 0.551 -0.332 0.177\n",
"TT_2000 0.1172 0.135 0.870 0.384 -0.147 0.382\n",
"TT_2100 -0.0401 0.127 -0.316 0.752 -0.289 0.209\n",
"TT_2200 0.6417 0.081 7.914 0.000 0.483 0.801\n",
"TD_1200 0.0918 0.071 1.291 0.197 -0.048 0.231\n",
"TD_1300 -0.1298 0.112 -1.163 0.245 -0.349 0.089\n",
"TD_1400 0.1492 0.107 1.389 0.165 -0.062 0.360\n",
"TD_1500 -0.2424 0.105 -2.307 0.021 -0.449 -0.036\n",
"TD_1600 0.1700 0.115 1.478 0.140 -0.056 0.396\n",
"TD_1700 -0.0835 0.120 -0.698 0.486 -0.318 0.151\n",
"TD_1800 0.0919 0.130 0.707 0.480 -0.163 0.347\n",
"TD_1900 -0.1215 0.130 -0.934 0.351 -0.377 0.134\n",
"TD_2000 -0.0250 0.135 -0.186 0.853 -0.289 0.239\n",
"TD_2100 0.1358 0.140 0.967 0.334 -0.140 0.411\n",
"TD_2200 0.0208 0.091 0.228 0.820 -0.159 0.200\n",
"GRAD1_1200 0.0021 0.001 2.373 0.018 0.000 0.004\n",
"GRAD1_1300 0.0004 0.001 0.351 0.726 -0.002 0.003\n",
"GRAD1_1400 0.0004 0.001 0.315 0.753 -0.002 0.003\n",
"GRAD1_1500 0.0011 0.002 0.719 0.472 -0.002 0.004\n",
"GRAD1_1600 0.0010 0.002 0.400 0.689 -0.004 0.006\n",
"GRAD1_1700 0.0037 0.004 0.951 0.342 -0.004 0.011\n",
"GRAD1_1800 0.0021 0.010 0.216 0.829 -0.017 0.021\n",
"GRAD1_1900 0.0526 0.071 0.740 0.459 -0.087 0.192\n",
"GRAD1_2000 -2.2381 3.841 -0.583 0.560 -9.775 5.299\n",
"GRAD1_2100 1.0782 1.585 0.680 0.496 -2.032 4.188\n",
"GRAD1_2200 -0.8168 1.763 -0.463 0.643 -4.277 2.643\n",
"NE_1200 0.0731 0.038 1.908 0.057 -0.002 0.148\n",
"NE_1300 0.0343 0.052 0.665 0.506 -0.067 0.136\n",
"NE_1400 0.0033 0.049 0.067 0.946 -0.093 0.099\n",
"NE_1500 -0.0758 0.050 -1.510 0.131 -0.174 0.023\n",
"NE_1600 0.0803 0.046 1.726 0.085 -0.011 0.171\n",
"NE_1700 0.0496 0.039 1.257 0.209 -0.028 0.127\n",
"NE_1800 -0.0153 0.020 -0.758 0.449 -0.055 0.024\n",
"NE_1900 0.0072 0.029 0.248 0.805 -0.050 0.064\n",
"NE_2000 0.0084 0.038 0.220 0.826 -0.067 0.084\n",
"NE_2100 0.0822 0.042 1.938 0.053 -0.001 0.165\n",
"NE_2200 0.1828 0.031 5.908 0.000 0.122 0.243\n",
"FF_1200 0.0046 0.018 0.254 0.800 -0.031 0.040\n",
"FF_1300 -0.0097 0.025 -0.395 0.693 -0.058 0.038\n",
"FF_1400 -0.0610 0.026 -2.331 0.020 -0.112 -0.010\n",
"FF_1500 0.0196 0.024 0.805 0.421 -0.028 0.067\n",
"FF_1600 0.0208 0.025 0.825 0.409 -0.029 0.070\n",
"FF_1700 -0.0240 0.026 -0.930 0.353 -0.075 0.027\n",
"FF_1800 0.0089 0.027 0.335 0.738 -0.043 0.061\n",
"FF_1900 0.0411 0.028 1.477 0.140 -0.013 0.096\n",
"FF_2000 -0.0299 0.027 -1.110 0.267 -0.083 0.023\n",
"FF_2100 0.0023 0.028 0.084 0.933 -0.052 0.057\n",
"FF_2200 -0.0452 0.021 -2.205 0.028 -0.086 -0.005\n",
"==============================================================================\n",
"Omnibus: 117.482 Durbin-Watson: 1.248\n",
"Prob(Omnibus): 0.000 Jarque-Bera (JB): 652.087\n",
"Skew: 0.361 Prob(JB): 2.52e-142\n",
"Kurtosis: 6.860 Cond. No. 1.31e+16\n",
"==============================================================================\n",
"\n",
"Notes:\n",
"[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.\n",
"[2] The smallest eigenvalue is 1.4e-24. This might indicate that there are\n",
"strong multicollinearity problems or that the design matrix is singular.\n"
]
}
],
"source": [
"X2200,y2200 = regression(df, 22, 10)\n",
"X2200\n",
"lmodel(X2200,y2200)"
]
},
{
"cell_type": "markdown",
"id": "7887fb32",
"metadata": {},
"source": [
"The predictive performance of the linear regression model for 10pm is similar to the performance for 2pm, though we can notice that the parameter values are different. One thing that is interesting to notice is that solar radiation (GRAD1) was an important predictor for RST at 2pm but seems to be of no importance at 10pm, which makes sense, because there is no solar radiation around 10pm anymore. This stresses the importance to make distuinguished models for each hour of the day."
]
},
{
"cell_type": "markdown",
"id": "44825798",
"metadata": {},
"source": [
"### Lasso regression"
]
},
{
"cell_type": "markdown",
"id": "b12d7bbc",
"metadata": {},
"source": [
"Since many of the variables that were included in the linear model are not relevant and should therefore be ommited, we will make use of lasso regularization, which not only minimizes the sum of squared residuals, but also adds a penalty term which prevents overfitting:\n",
"\n",
"$\\hat{\\beta}_{lasso} = \\underset{\\beta}{\\arg\\min} \\sum\\limits_{i=1}^n (y_i-X_i'\\beta)^2 + \\lambda \\sum\\limits_{j=1}^p |\\beta_{j}|$\n",
"\n",
"Note that $\\lambda$ determines the weight of the added penalty, meaning that $\\lambda$ can be any value in the interval $[0, \\infty)$. The benefit of using Lasso regularization is that the less contributing variables will be eliminated from the model. Thus, due to Lasso regularization the model will give more accurate predictions when applying it to out of sample predictions. We will make use of Cross-Validation (CV) to choose the tuning parameter $\\lambda$. More specifically, we will use K-fold CV, which splits the data in K folds and leaves out one of the folds to train the model on all folds except one and make predictions on the left-out fold to estimate the Mean Squared Error (MSE) for a grid of $\\lambda$ values.\n",
"\n",
"In the code below we will apply lasso on the same predictors as in the linear regression models above."
]
},
{
"cell_type": "markdown",
"id": "063db896",
"metadata": {},
"source": [
"#### Lasso RST at 2pm"
]
},
{
"cell_type": "code",
"execution_count": 56,
"id": "0f4dcda8",
"metadata": {},
"outputs": [],
"source": [
"def lassoReg(X,y):\n",
" '''\n",
" input: matrix X and response vector y\n",
" output: dataframe containing MSE, estimated using CV, for all values of the alpha grid 0 until 1.\n",
" '''\n",
" n = 500\n",
" #Creating alpha grid\n",
" alphas = np.linspace(0.002,1,n)\n",
" mse = np.zeros(n)\n",
" X_train=X\n",
" y_train=y\n",
" \n",
" #creating function that fits lasso regression model and returns MSE for same training set\n",
" def fit_and_report_mses(mod, X_train, y_train):\n",
" mod.fit(X_train, y_train)\n",
" return metrics.mean_squared_error(y_train, mod.predict(X_train))\n",
"\n",
" msetrain = [np.mean(fit_and_report_mses(linear_model.Lasso(alpha=alpha, max_iter=50000),\n",
" X_train, y_train))\n",
" for alpha in alphas]\n",
" \n",
" #Calculating estimated MSE on CV for alpha grid\n",
" msecv = [-np.mean(cross_val_score(linear_model.Lasso(alpha=alpha, max_iter=50000),\n",
" X_train, y_train, cv=10, scoring='neg_mean_squared_error'))\n",
" for alpha in alphas]\n",
"\n",
" print('Optimal alpha: ', alphas[np.where(msecv==np.min(msecv))], 'with corresponding MSE: ', round(np.min(msecv),2))\n",
"\n",
" #Creating dataframe, which helps making a nice plot for alpha grid against its corresponding estimated MSE\n",
" example3 = pd.DataFrame(\n",
" {\n",
" \"Alpha\": np.concatenate((alphas,alphas)),\n",
" \"MSE\": np.concatenate((msecv,msetrain)),\n",
" \"cv-train\": np.concatenate((np.repeat(\"CV\", len(alphas)),np.repeat(\"Train\", len(alphas))))\n",
" }\n",
" )\n",
" return example3"
]
},
{
"cell_type": "code",
"execution_count": 57,
"id": "13f9324e",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Optimal alpha: [0.048] with corresponding MSE: 2.19\n"
]
},
{
"data": {
"application/vnd.plotly.v1+json": {
"config": {
"plotlyServerURL": "https://plot.ly"
},
"data": [
{
"hovertemplate": "cv-train=CV Alpha=%{x} MSE=%{y} ",
"legendgroup": "CV",
"line": {
"color": "#636efa",
"dash": "solid"
},
"marker": {
"symbol": "circle"
},
"mode": "lines",
"name": "CV",
"orientation": "v",
"showlegend": true,
"type": "scatter",
"x": [
0.002,
0.004,
0.006,
0.008,
0.01,
0.012,
0.014,
0.016,
0.018000000000000002,
0.020000000000000004,
0.022,
0.024,
0.026000000000000002,
0.028000000000000004,
0.03,
0.032,
0.034,
0.036000000000000004,
0.038000000000000006,
0.04,
0.042,
0.044000000000000004,
0.046,
0.048,
0.05,
0.052000000000000005,
0.054000000000000006,
0.056,
0.058,
0.060000000000000005,
0.062,
0.064,
0.066,
0.068,
0.07,
0.07200000000000001,
0.07400000000000001,
0.076,
0.078,
0.08,
0.082,
0.084,
0.08600000000000001,
0.08800000000000001,
0.09,
0.092,
0.094,
0.096,
0.098,
0.1,
0.10200000000000001,
0.10400000000000001,
0.10600000000000001,
0.108,
0.11,
0.112,
0.114,
0.116,
0.11800000000000001,
0.12000000000000001,
0.122,
0.124,
0.126,
0.128,
0.13,
0.132,
0.134,
0.136,
0.138,
0.14,
0.14200000000000002,
0.14400000000000002,
0.14600000000000002,
0.148,
0.15,
0.152,
0.154,
0.156,
0.158,
0.16,
0.162,
0.164,
0.166,
0.168,
0.17,
0.17200000000000001,
0.17400000000000002,
0.17600000000000002,
0.178,
0.18,
0.182,
0.184,
0.186,
0.188,
0.19,
0.192,
0.194,
0.196,
0.198,
0.2,
0.202,
0.20400000000000001,
0.20600000000000002,
0.20800000000000002,
0.21000000000000002,
0.212,
0.214,
0.216,
0.218,
0.22,
0.222,
0.224,
0.226,
0.228,
0.23,
0.232,
0.234,
0.23600000000000002,
0.23800000000000002,
0.24000000000000002,
0.242,
0.244,
0.246,
0.248,
0.25,
0.252,
0.254,
0.256,
0.258,
0.26,
0.262,
0.264,
0.266,
0.268,
0.27,
0.272,
0.274,
0.276,
0.278,
0.28,
0.28200000000000003,
0.28400000000000003,
0.28600000000000003,
0.28800000000000003,
0.29000000000000004,
0.292,
0.294,
0.296,
0.298,
0.3,
0.302,
0.304,
0.306,
0.308,
0.31,
0.312,
0.314,
0.316,
0.318,
0.32,
0.322,
0.324,
0.326,
0.328,
0.33,
0.332,
0.334,
0.336,
0.338,
0.34,
0.342,
0.34400000000000003,
0.34600000000000003,
0.34800000000000003,
0.35000000000000003,
0.35200000000000004,
0.354,
0.356,
0.358,
0.36,
0.362,
0.364,
0.366,
0.368,
0.37,
0.372,
0.374,
0.376,
0.378,
0.38,
0.382,
0.384,
0.386,
0.388,
0.39,
0.392,
0.394,
0.396,
0.398,
0.4,
0.402,
0.404,
0.406,
0.40800000000000003,
0.41000000000000003,
0.41200000000000003,
0.41400000000000003,
0.41600000000000004,
0.41800000000000004,
0.42,
0.422,
0.424,
0.426,
0.428,
0.43,
0.432,
0.434,
0.436,
0.438,
0.44,
0.442,
0.444,
0.446,
0.448,
0.45,
0.452,
0.454,
0.456,
0.458,
0.46,
0.462,
0.464,
0.466,
0.468,
0.47000000000000003,
0.47200000000000003,
0.47400000000000003,
0.47600000000000003,
0.47800000000000004,
0.48000000000000004,
0.482,
0.484,
0.486,
0.488,
0.49,
0.492,
0.494,
0.496,
0.498,
0.5,
0.502,
0.504,
0.506,
0.508,
0.51,
0.512,
0.514,
0.516,
0.518,
0.52,
0.522,
0.524,
0.526,
0.528,
0.53,
0.532,
0.534,
0.536,
0.538,
0.54,
0.542,
0.544,
0.546,
0.548,
0.55,
0.552,
0.554,
0.556,
0.558,
0.56,
0.562,
0.5640000000000001,
0.5660000000000001,
0.5680000000000001,
0.5700000000000001,
0.5720000000000001,
0.5740000000000001,
0.5760000000000001,
0.5780000000000001,
0.58,
0.582,
0.584,
0.586,
0.588,
0.59,
0.592,
0.594,
0.596,
0.598,
0.6,
0.602,
0.604,
0.606,
0.608,
0.61,
0.612,
0.614,
0.616,
0.618,
0.62,
0.622,
0.624,
0.626,
0.628,
0.63,
0.632,
0.634,
0.636,
0.638,
0.64,
0.642,
0.644,
0.646,
0.648,
0.65,
0.652,
0.654,
0.656,
0.658,
0.66,
0.662,
0.664,
0.666,
0.668,
0.67,
0.672,
0.674,
0.676,
0.678,
0.68,
0.682,
0.684,
0.686,
0.6880000000000001,
0.6900000000000001,
0.6920000000000001,
0.6940000000000001,
0.6960000000000001,
0.6980000000000001,
0.7000000000000001,
0.7020000000000001,
0.7040000000000001,
0.706,
0.708,
0.71,
0.712,
0.714,
0.716,
0.718,
0.72,
0.722,
0.724,
0.726,
0.728,
0.73,
0.732,
0.734,
0.736,
0.738,
0.74,
0.742,
0.744,
0.746,
0.748,
0.75,
0.752,
0.754,
0.756,
0.758,
0.76,
0.762,
0.764,
0.766,
0.768,
0.77,
0.772,
0.774,
0.776,
0.778,
0.78,
0.782,
0.784,
0.786,
0.788,
0.79,
0.792,
0.794,
0.796,
0.798,
0.8,
0.802,
0.804,
0.806,
0.808,
0.81,
0.812,
0.8140000000000001,
0.8160000000000001,
0.8180000000000001,
0.8200000000000001,
0.8220000000000001,
0.8240000000000001,
0.8260000000000001,
0.8280000000000001,
0.8300000000000001,
0.8320000000000001,
0.8340000000000001,
0.836,
0.838,
0.84,
0.842,
0.844,
0.846,
0.848,
0.85,
0.852,
0.854,
0.856,
0.858,
0.86,
0.862,
0.864,
0.866,
0.868,
0.87,
0.872,
0.874,
0.876,
0.878,
0.88,
0.882,
0.884,
0.886,
0.888,
0.89,
0.892,
0.894,
0.896,
0.898,
0.9,
0.902,
0.904,
0.906,
0.908,
0.91,
0.912,
0.914,
0.916,
0.918,
0.92,
0.922,
0.924,
0.926,
0.928,
0.93,
0.932,
0.934,
0.936,
0.9380000000000001,
0.9400000000000001,
0.9420000000000001,
0.9440000000000001,
0.9460000000000001,
0.9480000000000001,
0.9500000000000001,
0.9520000000000001,
0.9540000000000001,
0.9560000000000001,
0.9580000000000001,
0.9600000000000001,
0.962,
0.964,
0.966,
0.968,
0.97,
0.972,
0.974,
0.976,
0.978,
0.98,
0.982,
0.984,
0.986,
0.988,
0.99,
0.992,
0.994,
0.996,
0.998,
1
],
"xaxis": "x",
"y": [
2.2646970342940973,
2.2480075916329625,
2.2332324482811803,
2.221767818746468,
2.2148923341258575,
2.212327283474827,
2.2099379013088187,
2.2090068519538786,
2.208502626318002,
2.2074085190029353,
2.205556839153391,
2.203346545086158,
2.201008308052397,
2.1987825943213872,
2.1969024179571397,
2.1950869241800572,
2.193244589724946,
2.191578629628721,
2.19077462042609,
2.190327447054993,
2.18997033591305,
2.189593561101281,
2.1893367093335625,
2.1892946999032192,
2.189444159792406,
2.1898261003204444,
2.190164450895966,
2.190700362392526,
2.191267140534292,
2.1918288583954095,
2.1924637670911102,
2.193146544378304,
2.1933612722253057,
2.1933439898594616,
2.1933608752558604,
2.193442688589807,
2.193562932719751,
2.1937021305289157,
2.1937775520714573,
2.1936295146686193,
2.19344759427689,
2.1933434599170862,
2.193302421395095,
2.1932154030507776,
2.193148597786693,
2.193100538224181,
2.1930434411972093,
2.1930398174108463,
2.193065600278961,
2.1931562620659792,
2.1932792079204697,
2.193410368190086,
2.1936623375459505,
2.1939243837156637,
2.1941802803346198,
2.194440173745732,
2.1947103338758263,
2.194985770326418,
2.1952684604721884,
2.1955568410578703,
2.1958524815241085,
2.1961545702649197,
2.1964644461621816,
2.1967794913409477,
2.197103033006349,
2.197431627529814,
2.197769802339337,
2.1981121137469986,
2.1984610439959438,
2.1988172611637316,
2.1991816619830575,
2.19955177164722,
2.1999279943640033,
2.2003096738036283,
2.2006656720965694,
2.201051828114928,
2.2014698958000087,
2.201893768579277,
2.202325016363399,
2.2027568162258833,
2.2031917480731193,
2.2036350251510077,
2.2040992003136823,
2.204585144184043,
2.2050773542307724,
2.2055724813126116,
2.20607575441497,
2.206585576197239,
2.207100513744332,
2.207624729433896,
2.2081550329011534,
2.208692569056244,
2.209236187677086,
2.2097828296755626,
2.210334804134593,
2.2108938719157725,
2.2114597761893338,
2.2120329137144683,
2.2126140097894362,
2.2132076057139427,
2.2138355863668435,
2.214470373751456,
2.2151123092521257,
2.215766182389509,
2.2164421881188616,
2.217115299287154,
2.2177952967193137,
2.2184814297300015,
2.219174936648227,
2.219875021911226,
2.220580800665813,
2.2212960311429373,
2.2220165513136356,
2.22274431593683,
2.2234785849828516,
2.224219769435302,
2.224980608248149,
2.2257466332117,
2.226525364773408,
2.227323868823265,
2.2281214317718616,
2.228914050034286,
2.2297199823406353,
2.2305349456943055,
2.231352369838241,
2.232160308895268,
2.23298472318975,
2.233828596041547,
2.2346645655680155,
2.235509765292485,
2.2363640969780554,
2.237225633314453,
2.2380932164597835,
2.238966587994188,
2.2398493496425558,
2.2407436452053946,
2.2416463998466396,
2.242556276602297,
2.2434735931169443,
2.244393900519938,
2.2453454858937434,
2.246303835739933,
2.2472664363423984,
2.2482490715121273,
2.2492391505303373,
2.250236954604909,
2.2512495962534085,
2.25226608189688,
2.253305449972487,
2.254355133171308,
2.255416490994443,
2.256471079424362,
2.2575190842218786,
2.258573889515358,
2.2596382082062485,
2.26071228199607,
2.261791489445245,
2.262876639290659,
2.263970676652858,
2.2650708260352266,
2.266175498614732,
2.2672831146142225,
2.2683992106198376,
2.269524907579063,
2.2706605966419486,
2.2717984938255205,
2.2729338026707184,
2.274079274248168,
2.2752292804711223,
2.276391545935722,
2.277550152018371,
2.2787164556923343,
2.27988444678167,
2.281067080090644,
2.2822545315278986,
2.2834460334759603,
2.284641406312343,
2.2858413682354692,
2.287052681148853,
2.2882680189805944,
2.2894822813961637,
2.2907169559776164,
2.2919592095729664,
2.293209536980332,
2.2944501107563116,
2.295676987049178,
2.2969124868868898,
2.298154325423422,
2.299399416192505,
2.300647068697243,
2.301901291703248,
2.3031645949493633,
2.304433414730186,
2.3057085766543906,
2.3069910288501125,
2.30827735509823,
2.3095633945075464,
2.3108571654135863,
2.3121559943815395,
2.313463420944287,
2.3147885055951525,
2.316122086050607,
2.317461330991372,
2.3187947956539765,
2.3201367325757776,
2.321486259903576,
2.322834093615738,
2.324153348759798,
2.325474460077653,
2.326800070783945,
2.328131424016429,
2.3294689461387477,
2.33081492670246,
2.3321661848793602,
2.333505370088495,
2.334852367988506,
2.3362006734438636,
2.3375586307816465,
2.338919393775917,
2.3402893391747535,
2.341666822645401,
2.343048679582893,
2.34443431520567,
2.34583378472509,
2.34722232187931,
2.3486190110679135,
2.3500226328522538,
2.351426226633805,
2.352833422444232,
2.354249098640456,
2.3556653493579787,
2.357085334536058,
2.3585149485196033,
2.3599508882714177,
2.361394586207056,
2.3628469108815646,
2.3643071911682396,
2.3657742846790653,
2.367249310721649,
2.3687291013326712,
2.3702164319641534,
2.3717098568194093,
2.373212541354399,
2.3747200733464995,
2.3762323410452266,
2.377756174308695,
2.379284387225437,
2.380820185681889,
2.3823727845232066,
2.3839453754831803,
2.385522025900024,
2.387108066080773,
2.3887060349807485,
2.390309124899407,
2.391917174736566,
2.3935329392588107,
2.3951522838910857,
2.3967791094127477,
2.3984191862674047,
2.4000419302729674,
2.4016607008240647,
2.4032746198954547,
2.404884733926206,
2.4064962422945055,
2.408108611512049,
2.4097301809873874,
2.4113588229767986,
2.412989944128454,
2.4146286229873333,
2.4162708096385552,
2.4179323298773485,
2.4196149138265013,
2.4213003150666648,
2.4229934645839033,
2.424690695412785,
2.4263956510503184,
2.4281067954142346,
2.4298240007132086,
2.431546364125146,
2.43327111346596,
2.434997905533611,
2.436726494973629,
2.4384616533257177,
2.440202607950653,
2.441951180973009,
2.4437015383802003,
2.4454629477687053,
2.44722829830683,
2.4490016551349494,
2.4507810731612416,
2.4525842149624477,
2.454388918575281,
2.456199221103726,
2.4580150082237915,
2.459836113984938,
2.461663199157079,
2.4634952178614764,
2.465330817446152,
2.4671738840256316,
2.4690228361280906,
2.470875629717492,
2.4727348397796702,
2.474601198035676,
2.4764760705944364,
2.478354876619569,
2.480239464722888,
2.48213123759903,
2.484021574822098,
2.485906275847989,
2.48773008553971,
2.4895302099002303,
2.4913273722177207,
2.493130019424709,
2.4949367451299542,
2.496744684156554,
2.498546278034863,
2.5003541385756978,
2.502187172581254,
2.504011933863982,
2.5058451216444375,
2.507684173724325,
2.5095299111052585,
2.5113791864469923,
2.513238473934027,
2.515100641621695,
2.5169677867581726,
2.5188479047973606,
2.5207329224127735,
2.522627087763698,
2.5245279819720126,
2.5264308620233202,
2.5283412535073473,
2.5302596976592593,
2.5321824478441575,
2.5341075077690585,
2.5360213786370283,
2.5379280191474125,
2.539832785154413,
2.5417406239399636,
2.543655534303679,
2.545577054605465,
2.547504111874335,
2.549437731639345,
2.5513761290115395,
2.553317226227235,
2.5552640257774586,
2.5572147008222474,
2.5591724536953766,
2.561132268126961,
2.5630885944316075,
2.5650473233758886,
2.5670105505280763,
2.568975862927698,
2.5709504709567264,
2.57292693165411,
2.574912093959612,
2.576902436341377,
2.578897130409057,
2.5808803704511014,
2.5828193282386542,
2.584764909069977,
2.5867163141069356,
2.5886702652581417,
2.5906292453000477,
2.5925929798641727,
2.5945634365616352,
2.596499214712228,
2.598374995714762,
2.600255537354656,
2.6021393064380107,
2.6040193808674252,
2.605906833353132,
2.6077942524369777,
2.6096908043879283,
2.611511523721671,
2.6132909721351534,
2.615071468759127,
2.616856689969015,
2.6186469654248095,
2.6204431394887453,
2.622243788017639,
2.6240501093065243,
2.6258551322587484,
2.627646137503979,
2.6293829519933096,
2.631122826438186,
2.6328357754152663,
2.634548212101121,
2.636218432265684,
2.637810661211842,
2.6394037415011318,
2.640998866828009,
2.6426042628363997,
2.6442147100731495,
2.645826778937402,
2.647442234529307,
2.649057150993339,
2.6506772374565224,
2.6522970766933827,
2.6539237708478085,
2.655553488923773,
2.657188667826014,
2.658826588315209,
2.6604588371225217,
2.662095284412581,
2.6637357196810987,
2.6653811929900866,
2.6670034719501428,
2.668581334103152,
2.6701643347593227,
2.671750790826306,
2.6733408416835562,
2.674934415395511,
2.676530906529153,
2.67813180521666,
2.6797368794702385,
2.681346772897407,
2.68296014826963,
2.6845751055102602,
2.6861937387466623,
2.6878173389067643,
2.6894447533704415,
2.691076009260006,
2.692710969385761,
2.694349650830669,
2.69599361406013,
2.6976376691928694,
2.6992875806267795,
2.700939945518756,
2.7025971607761337,
2.7041963553674413,
2.7056732434862467,
2.707154810978717,
2.7086353704560393,
2.710122532753744,
2.711612904744349,
2.713108248661459,
2.7146051331735377,
2.7161048690085785,
2.717601623315467,
2.7189299894659604,
2.720262708187976,
2.7215993876857416,
2.7229387851497338,
2.7242816701966945,
2.725626834853654,
2.7269766354080858,
2.7283304362084273,
2.729685492855166,
2.730909182827473,
2.73212122433975,
2.733307147071362,
2.7343796715715665,
2.7354554125570174,
2.736415188008926,
2.7372097668278865,
2.7380070107288965,
2.738803780421803,
2.739478955554243,
2.7401470238425234,
2.740818019879849,
2.7414891840416695,
2.7421644531024256,
2.7428394818977635,
2.743516252934311,
2.744194719650923,
2.744876881669922,
2.745560046959358,
2.7462446247994756,
2.7469321651850658,
2.747621849285917,
2.7483122086894545,
2.7490051291398254,
2.749698277195968,
2.750393981469906,
2.7510920689118215,
2.7517924499050714,
2.752494045672429,
2.7531974320865444,
2.7539021921147846,
2.7545388849826375,
2.75509297299552,
2.755646376989914,
2.7562001506712215,
2.7567555656591263,
2.757312044280975,
2.7578686437764444,
2.758425771092712,
2.758985101255687,
2.7595451210233644,
2.760105640132469,
2.7606677908878843,
2.761230998011544,
2.7617964689618795,
2.7623199049870406,
2.762845618478882,
2.7633724526048002,
2.7639013510953285,
2.764431464268081,
2.7649604257178004
],
"yaxis": "y"
},
{
"hovertemplate": "cv-train=Train Alpha=%{x} MSE=%{y} ",
"legendgroup": "Train",
"line": {
"color": "#EF553B",
"dash": "solid"
},
"marker": {
"symbol": "circle"
},
"mode": "lines",
"name": "Train",
"orientation": "v",
"showlegend": true,
"type": "scatter",
"x": [
0.002,
0.004,
0.006,
0.008,
0.01,
0.012,
0.014,
0.016,
0.018000000000000002,
0.020000000000000004,
0.022,
0.024,
0.026000000000000002,
0.028000000000000004,
0.03,
0.032,
0.034,
0.036000000000000004,
0.038000000000000006,
0.04,
0.042,
0.044000000000000004,
0.046,
0.048,
0.05,
0.052000000000000005,
0.054000000000000006,
0.056,
0.058,
0.060000000000000005,
0.062,
0.064,
0.066,
0.068,
0.07,
0.07200000000000001,
0.07400000000000001,
0.076,
0.078,
0.08,
0.082,
0.084,
0.08600000000000001,
0.08800000000000001,
0.09,
0.092,
0.094,
0.096,
0.098,
0.1,
0.10200000000000001,
0.10400000000000001,
0.10600000000000001,
0.108,
0.11,
0.112,
0.114,
0.116,
0.11800000000000001,
0.12000000000000001,
0.122,
0.124,
0.126,
0.128,
0.13,
0.132,
0.134,
0.136,
0.138,
0.14,
0.14200000000000002,
0.14400000000000002,
0.14600000000000002,
0.148,
0.15,
0.152,
0.154,
0.156,
0.158,
0.16,
0.162,
0.164,
0.166,
0.168,
0.17,
0.17200000000000001,
0.17400000000000002,
0.17600000000000002,
0.178,
0.18,
0.182,
0.184,
0.186,
0.188,
0.19,
0.192,
0.194,
0.196,
0.198,
0.2,
0.202,
0.20400000000000001,
0.20600000000000002,
0.20800000000000002,
0.21000000000000002,
0.212,
0.214,
0.216,
0.218,
0.22,
0.222,
0.224,
0.226,
0.228,
0.23,
0.232,
0.234,
0.23600000000000002,
0.23800000000000002,
0.24000000000000002,
0.242,
0.244,
0.246,
0.248,
0.25,
0.252,
0.254,
0.256,
0.258,
0.26,
0.262,
0.264,
0.266,
0.268,
0.27,
0.272,
0.274,
0.276,
0.278,
0.28,
0.28200000000000003,
0.28400000000000003,
0.28600000000000003,
0.28800000000000003,
0.29000000000000004,
0.292,
0.294,
0.296,
0.298,
0.3,
0.302,
0.304,
0.306,
0.308,
0.31,
0.312,
0.314,
0.316,
0.318,
0.32,
0.322,
0.324,
0.326,
0.328,
0.33,
0.332,
0.334,
0.336,
0.338,
0.34,
0.342,
0.34400000000000003,
0.34600000000000003,
0.34800000000000003,
0.35000000000000003,
0.35200000000000004,
0.354,
0.356,
0.358,
0.36,
0.362,
0.364,
0.366,
0.368,
0.37,
0.372,
0.374,
0.376,
0.378,
0.38,
0.382,
0.384,
0.386,
0.388,
0.39,
0.392,
0.394,
0.396,
0.398,
0.4,
0.402,
0.404,
0.406,
0.40800000000000003,
0.41000000000000003,
0.41200000000000003,
0.41400000000000003,
0.41600000000000004,
0.41800000000000004,
0.42,
0.422,
0.424,
0.426,
0.428,
0.43,
0.432,
0.434,
0.436,
0.438,
0.44,
0.442,
0.444,
0.446,
0.448,
0.45,
0.452,
0.454,
0.456,
0.458,
0.46,
0.462,
0.464,
0.466,
0.468,
0.47000000000000003,
0.47200000000000003,
0.47400000000000003,
0.47600000000000003,
0.47800000000000004,
0.48000000000000004,
0.482,
0.484,
0.486,
0.488,
0.49,
0.492,
0.494,
0.496,
0.498,
0.5,
0.502,
0.504,
0.506,
0.508,
0.51,
0.512,
0.514,
0.516,
0.518,
0.52,
0.522,
0.524,
0.526,
0.528,
0.53,
0.532,
0.534,
0.536,
0.538,
0.54,
0.542,
0.544,
0.546,
0.548,
0.55,
0.552,
0.554,
0.556,
0.558,
0.56,
0.562,
0.5640000000000001,
0.5660000000000001,
0.5680000000000001,
0.5700000000000001,
0.5720000000000001,
0.5740000000000001,
0.5760000000000001,
0.5780000000000001,
0.58,
0.582,
0.584,
0.586,
0.588,
0.59,
0.592,
0.594,
0.596,
0.598,
0.6,
0.602,
0.604,
0.606,
0.608,
0.61,
0.612,
0.614,
0.616,
0.618,
0.62,
0.622,
0.624,
0.626,
0.628,
0.63,
0.632,
0.634,
0.636,
0.638,
0.64,
0.642,
0.644,
0.646,
0.648,
0.65,
0.652,
0.654,
0.656,
0.658,
0.66,
0.662,
0.664,
0.666,
0.668,
0.67,
0.672,
0.674,
0.676,
0.678,
0.68,
0.682,
0.684,
0.686,
0.6880000000000001,
0.6900000000000001,
0.6920000000000001,
0.6940000000000001,
0.6960000000000001,
0.6980000000000001,
0.7000000000000001,
0.7020000000000001,
0.7040000000000001,
0.706,
0.708,
0.71,
0.712,
0.714,
0.716,
0.718,
0.72,
0.722,
0.724,
0.726,
0.728,
0.73,
0.732,
0.734,
0.736,
0.738,
0.74,
0.742,
0.744,
0.746,
0.748,
0.75,
0.752,
0.754,
0.756,
0.758,
0.76,
0.762,
0.764,
0.766,
0.768,
0.77,
0.772,
0.774,
0.776,
0.778,
0.78,
0.782,
0.784,
0.786,
0.788,
0.79,
0.792,
0.794,
0.796,
0.798,
0.8,
0.802,
0.804,
0.806,
0.808,
0.81,
0.812,
0.8140000000000001,
0.8160000000000001,
0.8180000000000001,
0.8200000000000001,
0.8220000000000001,
0.8240000000000001,
0.8260000000000001,
0.8280000000000001,
0.8300000000000001,
0.8320000000000001,
0.8340000000000001,
0.836,
0.838,
0.84,
0.842,
0.844,
0.846,
0.848,
0.85,
0.852,
0.854,
0.856,
0.858,
0.86,
0.862,
0.864,
0.866,
0.868,
0.87,
0.872,
0.874,
0.876,
0.878,
0.88,
0.882,
0.884,
0.886,
0.888,
0.89,
0.892,
0.894,
0.896,
0.898,
0.9,
0.902,
0.904,
0.906,
0.908,
0.91,
0.912,
0.914,
0.916,
0.918,
0.92,
0.922,
0.924,
0.926,
0.928,
0.93,
0.932,
0.934,
0.936,
0.9380000000000001,
0.9400000000000001,
0.9420000000000001,
0.9440000000000001,
0.9460000000000001,
0.9480000000000001,
0.9500000000000001,
0.9520000000000001,
0.9540000000000001,
0.9560000000000001,
0.9580000000000001,
0.9600000000000001,
0.962,
0.964,
0.966,
0.968,
0.97,
0.972,
0.974,
0.976,
0.978,
0.98,
0.982,
0.984,
0.986,
0.988,
0.99,
0.992,
0.994,
0.996,
0.998,
1
],
"xaxis": "x",
"y": [
1.8218995882689908,
1.8271695718249303,
1.8325296212751687,
1.837842790100628,
1.8417801403185197,
1.846374574843671,
1.8504125900564652,
1.853410943291435,
1.8566005541433075,
1.8600531441735701,
1.8637352012017683,
1.8665316895304065,
1.868587885072446,
1.8707994146821867,
1.8729126616708707,
1.8751172445245339,
1.877341567302015,
1.878794033810613,
1.8801263360493639,
1.8814550630514797,
1.8827869252452805,
1.8841839948730814,
1.8856460251938998,
1.8871730288099204,
1.8887649872449352,
1.8904221847787699,
1.8917275088491454,
1.8930285262386013,
1.8943768553312998,
1.8957724658901767,
1.8972156638668343,
1.8987059041815781,
1.900243450817441,
1.9015485919612074,
1.9026811643347743,
1.9038466191647352,
1.9050447355337297,
1.9062758815383656,
1.9075398325137176,
1.9088365874418136,
1.910166018380413,
1.9115285658786563,
1.9120528933621723,
1.9123201015925144,
1.912593403755995,
1.9128728158192958,
1.913158348210847,
1.9134500982463825,
1.9137478755747244,
1.9140518684731351,
1.9143619260517102,
1.9146781304498883,
1.915000514891766,
1.9153289368907456,
1.9156635114820624,
1.9160043031759322,
1.9163511619886557,
1.9167041482875096,
1.9170633197467373,
1.9174285438784735,
1.91779990397879,
1.9181773893561582,
1.918561093561795,
1.918950844767419,
1.919346729491154,
1.9197487186313436,
1.9201569539358634,
1.920571220007641,
1.9209916149739759,
1.921418142921235,
1.9218507941793166,
1.92228966786583,
1.922734561874176,
1.9231856237490692,
1.9236428013326201,
1.9241061114231617,
1.9245756642098903,
1.9250512346905564,
1.9255329287044547,
1.9260207698273901,
1.9265147458904925,
1.9270148588636988,
1.9275211989784888,
1.928033575504482,
1.928552046135555,
1.929076653375861,
1.9295832228454033,
1.9300756934456353,
1.930573797485272,
1.9310776429857233,
1.9315870347146278,
1.932102020235943,
1.9326226508325912,
1.9331489327564453,
1.9336808621965997,
1.9342183826197676,
1.934761569735646,
1.9353104490034458,
1.9358648682907371,
1.936424884786856,
1.9369905431315493,
1.9375618253531486,
1.9381387352725195,
1.938721290669527,
1.939309440623377,
1.9399032331284256,
1.9405027039128233,
1.9411077390466878,
1.941718366243108,
1.9423345797460607,
1.9429564453390924,
1.943583946024608,
1.944217056708308,
1.9448558114163128,
1.9455001714616265,
1.9461502451541361,
1.946805861608553,
1.9474670753839056,
1.9481339045922799,
1.9488063449776027,
1.949484436355769,
1.9501681049787352,
1.9508574250212918,
1.9515718036292882,
1.9523766481371936,
1.9531861396945527,
1.9539983562513088,
1.9548093007797647,
1.9556188062241524,
1.9564351206188746,
1.957257212779552,
1.9580861623097567,
1.958921437416864,
1.9597624585166886,
1.9606103323527573,
1.9614645320808082,
1.962324472196863,
1.9631912934808498,
1.9640644250251644,
1.9649432755165415,
1.9658290252265544,
1.9667210795037502,
1.9676188472921428,
1.9685235196800899,
1.969434499214494,
1.9703490786132731,
1.971268226671242,
1.9721936517788063,
1.9731246973255065,
1.974062663335426,
1.9750069102714658,
1.975957423546644,
1.9769135345082105,
1.9778765912538383,
1.978845922429162,
1.9798208095727814,
1.9808026786961321,
1.9817908129990685,
1.9827844919639226,
1.9837851468318113,
1.9847920490889297,
1.9858051901251776,
1.9868229941888913,
1.9878796827502565,
1.988942894420922,
1.9900133915754565,
1.9910903683550598,
1.9921738254470596,
1.993263758111315,
1.9943592795293263,
1.9954621374742847,
1.9965714924303684,
1.9976873083507807,
1.998808708877613,
1.9999374627710829,
2.0010726906176597,
2.0022143907331174,
2.003361624829913,
2.0045161912177254,
2.0056773014229234,
2.0068449295214887,
2.008019033223502,
2.0091986532797463,
2.0103857094057522,
2.0115792506874537,
2.0127792715266195,
2.0139847829223263,
2.015197691251043,
2.016417138851919,
2.0176431120186895,
2.018874548100278,
2.0201134845834496,
2.02135889265621,
2.022610773541519,
2.023868069651209,
2.0251329071030515,
2.0264031545624013,
2.0276798048997615,
2.0289616000436475,
2.030250190363882,
2.0315453982679728,
2.0328446641826714,
2.034146304770409,
2.0354188397206903,
2.0366978092242354,
2.0379830962987344,
2.0392732397958797,
2.0405711110653053,
2.0418752594426883,
2.043185594177946,
2.0445007054054782,
2.0458235997621688,
2.0471528012988203,
2.0484882633755968,
2.0498299884534785,
2.051176425489328,
2.0525306561490524,
2.053891147141818,
2.055257906632004,
2.056630938787049,
2.0580086121626566,
2.059394126957781,
2.060785811834703,
2.0621837676320234,
2.0635879943785906,
2.064996902609912,
2.0664137430024554,
2.067836845745594,
2.0692662064367133,
2.070701829577302,
2.0721419799924443,
2.0735901164224466,
2.0750445079721747,
2.0765051609616716,
2.0779702868911785,
2.0794434489276683,
2.080922842346417,
2.082408433038049,
2.083900299205104,
2.0853965380907273,
2.0868919112419837,
2.088389133483085,
2.089896515467122,
2.0914103337615715,
2.0929305872148447,
2.0944572677567352,
2.095990362957304,
2.09752944439564,
2.099075191436526,
2.100627293945877,
2.102185097433359,
2.1037497484624312,
2.105320695073306,
2.1068979255163875,
2.1084814012486426,
2.1100701443056082,
2.1116660290142697,
2.113268154525342,
2.1148764848642005,
2.1164909627059907,
2.1180822461764626,
2.11967473729032,
2.121275180539557,
2.1228802022752724,
2.1244934542607776,
2.126113140297672,
2.1277368936622802,
2.1293691645440678,
2.1310052056243918,
2.1326499234126475,
2.1343003264317044,
2.135947401370493,
2.1376034878955243,
2.1392631089862126,
2.1409314044693897,
2.1426057188891248,
2.144286146552337,
2.1459726628000464,
2.147665268358998,
2.1493639483072418,
2.1510687007688527,
2.152779590774944,
2.1544965830687968,
2.1562196427399933,
2.15794603499946,
2.15968122045378,
2.1614224666844213,
2.1631697751329733,
2.1649231416155303,
2.166682565089105,
2.168445309703239,
2.1702168559308244,
2.171994466497768,
2.173778148323155,
2.175565127906273,
2.1773609377710863,
2.1791628149507734,
2.1809707613373988,
2.182784778230708,
2.18460198109547,
2.1864280293413594,
2.1882601525999403,
2.190098350866896,
2.191942627105959,
2.193790093693992,
2.1956464968161375,
2.1975089673076402,
2.199357316461437,
2.201205033104349,
2.2030553826916317,
2.204913135490343,
2.206774245353634,
2.208643618517564,
2.2105189898743487,
2.2123980223866893,
2.214285362931006,
2.2161786918018263,
2.2180780096831603,
2.219980926621419,
2.2218922111446937,
2.2238094890504208,
2.225730318394042,
2.227659561817173,
2.2295947930557047,
2.2315360223505025,
2.2334807377342525,
2.2354339515268733,
2.237393164001113,
2.239358372998662,
2.2413269653468,
2.2433040511760023,
2.245287146853164,
2.247276243025864,
2.2492686789893224,
2.2512697487314197,
2.253276814058492,
2.2552898713542158,
2.2573089391735786,
2.2593312628299946,
2.261362351031112,
2.263399519761675,
2.2654427037022686,
2.267421574840923,
2.2693348573490844,
2.2712569206879674,
2.2731814806350794,
2.2751144570006936,
2.2770504032779613,
2.278992773541445,
2.280939535170153,
2.2828533236194635,
2.284756192979397,
2.28666446208041,
2.2885781322115806,
2.2904935331556513,
2.292417990980668,
2.294348226269907,
2.2962841699158476,
2.298221803351277,
2.3001685679683437,
2.3021207397950887,
2.3040745634633084,
2.3060375647031295,
2.3080059818692424,
2.3099760125463575,
2.3119552602587343,
2.3139361264535427,
2.3159263243512602,
2.3179219232273103,
2.319919081687615,
2.3219255191360237,
2.323937369455042,
2.3259507458984157,
2.3279734324696686,
2.3300015338913433,
2.3320311141602845,
2.3340700285473206,
2.3361143033575122,
2.3381598401005848,
2.340214765159479,
2.3422750995938832,
2.3443368243210543,
2.3464079597692535,
2.348484493619014,
2.349899018379504,
2.351269446490315,
2.3526432822582453,
2.354017300770173,
2.3553980930933034,
2.3567823667816556,
2.358170126436477,
2.3595614370105142,
2.360952979363603,
2.362351403780699,
2.363753387747081,
2.3651589305534375,
2.3665646656486543,
2.3679773059725586,
2.369393498994245,
2.3708132725458273,
2.3722365939207477,
2.3736600744800875,
2.375090513835856,
2.376524510406378,
2.3779620700940183,
2.379403188316518,
2.3808444272801363,
2.3822926593257066,
2.383744449361242,
2.3851997937786393,
2.386655222821631,
2.388117720737775,
2.389583855120398,
2.391053544802343,
2.3925233201882743,
2.3940001568830143,
2.3954805546303213,
2.396964536690485,
2.3984485391598764,
2.399939635503077,
2.401434292465434,
2.4029289502126447,
2.4044307291324545,
2.4059360345294585,
2.4074446942492287,
2.408956774616811,
2.410468986298161,
2.411988348315909,
2.4135112621724253,
2.4150377294403174,
2.416564119580342,
2.418097694627388,
2.4196348242453594,
2.421175507963692,
2.4227197453386955,
2.424263877931667,
2.425815240354714,
2.427370156006167,
2.4289286404154757,
2.430486984244306,
2.432052582686983,
2.4336217296464806,
2.435194433451705,
2.4367706882599416,
2.4383467613261534,
2.439930116861379,
2.4415170249025673,
2.4431075184137656,
2.4446977766711133,
2.4462953369866316,
2.447896447307171,
2.449501128507984,
2.451109396856469,
2.4527174173207476,
2.454332824684089,
2.4559517796654,
2.4575742882918505,
2.4591964961231843,
2.4608260783266593,
2.4624592152230513,
2.464095908104011,
2.465454836008675,
2.465904267526873,
2.4663546175581743,
2.466805920724948,
2.467258185056978,
2.4677114028925113,
2.4681655888369485,
2.468620759431011,
2.4690768949554847,
2.4695340911071173,
2.46999227535532,
2.4704514534460507,
2.4709116258064507,
2.471372821420685,
2.4718350409736662,
2.4722982216261684,
2.4727623409513177,
2.4732313885662385,
2.473697360496989,
2.4741643015601853,
2.4746321970210596,
2.4751010508518188,
2.4755708298377743,
2.476041251285179,
2.4765124977468047,
2.4769848737968863,
2.4774623634449098,
2.4779365851700352,
2.4784119703639895,
2.4788883160307496,
2.4793656323801994,
2.4798332865658868,
2.4803018215134607,
2.480770128745363,
2.4812390078765425,
2.481708827648703,
2.4821834574023884,
2.482655166494873,
2.483127823768324
],
"yaxis": "y"
}
],
"layout": {
"legend": {
"title": {
"text": "cv-train"
},
"tracegroupgap": 0
},
"margin": {
"t": 60
},
"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
}
}
},
"xaxis": {
"anchor": "y",
"domain": [
0,
1
],
"title": {
"text": "Alpha"
}
},
"yaxis": {
"anchor": "x",
"domain": [
0,
1
],
"title": {
"text": "MSE"
}
}
}
},
"text/html": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"import warnings\n",
"warnings.filterwarnings('ignore')\n",
"example3 = lassoReg(np.matrix(X1400),y1400)\n",
"px.line(example3, x=\"Alpha\", y=\"MSE\", color=\"cv-train\")"
]
},
{
"cell_type": "markdown",
"id": "047018d8",
"metadata": {},
"source": [
"The optimal lasso regression model for RST1400 seems to be for $\\alpha=0.048$, since it minimizes the estimated MSE using CV. One can notice that the MSE on the training set is lower than on the left-out fold, which make sense intuitively."
]
},
{
"cell_type": "code",
"execution_count": 58,
"id": "040dee94",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" \n",
" lasso \n",
" \n",
" \n",
" \n",
" \n",
" TT_0400 \n",
" 0.040399 \n",
" \n",
" \n",
" TT_0500 \n",
" 0.000000 \n",
" \n",
" \n",
" TT_0600 \n",
" 0.000000 \n",
" \n",
" \n",
" TT_0700 \n",
" 0.175607 \n",
" \n",
" \n",
" TT_0800 \n",
" 0.039599 \n",
" \n",
" \n",
" TT_0900 \n",
" 0.000000 \n",
" \n",
" \n",
" TT_1000 \n",
" 0.000000 \n",
" \n",
" \n",
" TT_1100 \n",
" 0.000000 \n",
" \n",
" \n",
" TT_1200 \n",
" 0.000000 \n",
" \n",
" \n",
" TT_1300 \n",
" 0.068205 \n",
" \n",
" \n",
" TT_1400 \n",
" 0.694896 \n",
" \n",
" \n",
" TD_0400 \n",
" 0.000000 \n",
" \n",
" \n",
" TD_0500 \n",
" -0.000000 \n",
" \n",
" \n",
" TD_0600 \n",
" -0.000000 \n",
" \n",
" \n",
" TD_0700 \n",
" 0.000000 \n",
" \n",
" \n",
" TD_0800 \n",
" 0.000000 \n",
" \n",
" \n",
" TD_0900 \n",
" -0.000000 \n",
" \n",
" \n",
" TD_1000 \n",
" -0.049887 \n",
" \n",
" \n",
" TD_1100 \n",
" -0.000000 \n",
" \n",
" \n",
" TD_1200 \n",
" -0.000000 \n",
" \n",
" \n",
" TD_1300 \n",
" -0.000000 \n",
" \n",
" \n",
" TD_1400 \n",
" 0.000000 \n",
" \n",
" \n",
" GRAD1_0400 \n",
" 0.000000 \n",
" \n",
" \n",
" GRAD1_0500 \n",
" 0.000000 \n",
" \n",
" \n",
" GRAD1_0600 \n",
" -0.005161 \n",
" \n",
" \n",
" GRAD1_0700 \n",
" 0.004623 \n",
" \n",
" \n",
" GRAD1_0800 \n",
" 0.002682 \n",
" \n",
" \n",
" GRAD1_0900 \n",
" 0.002266 \n",
" \n",
" \n",
" GRAD1_1000 \n",
" 0.006073 \n",
" \n",
" \n",
" GRAD1_1100 \n",
" -0.003775 \n",
" \n",
" \n",
" GRAD1_1200 \n",
" 0.005764 \n",
" \n",
" \n",
" GRAD1_1300 \n",
" 0.004337 \n",
" \n",
" \n",
" GRAD1_1400 \n",
" 0.014364 \n",
" \n",
" \n",
" NE_0400 \n",
" 0.012087 \n",
" \n",
" \n",
" NE_0500 \n",
" 0.066627 \n",
" \n",
" \n",
" NE_0600 \n",
" -0.016707 \n",
" \n",
" \n",
" NE_0700 \n",
" -0.005721 \n",
" \n",
" \n",
" NE_0800 \n",
" 0.045778 \n",
" \n",
" \n",
" NE_0900 \n",
" 0.057771 \n",
" \n",
" \n",
" NE_1000 \n",
" 0.000000 \n",
" \n",
" \n",
" NE_1100 \n",
" 0.082545 \n",
" \n",
" \n",
" NE_1200 \n",
" 0.040359 \n",
" \n",
" \n",
" NE_1300 \n",
" 0.072016 \n",
" \n",
" \n",
" NE_1400 \n",
" 0.143800 \n",
" \n",
" \n",
" FF_0400 \n",
" -0.020241 \n",
" \n",
" \n",
" FF_0500 \n",
" 0.000000 \n",
" \n",
" \n",
" FF_0600 \n",
" -0.000000 \n",
" \n",
" \n",
" FF_0700 \n",
" -0.000000 \n",
" \n",
" \n",
" FF_0800 \n",
" -0.000000 \n",
" \n",
" \n",
" FF_0900 \n",
" 0.002726 \n",
" \n",
" \n",
" FF_1000 \n",
" 0.000000 \n",
" \n",
" \n",
" FF_1100 \n",
" -0.027617 \n",
" \n",
" \n",
" FF_1200 \n",
" -0.029053 \n",
" \n",
" \n",
" FF_1300 \n",
" -0.000000 \n",
" \n",
" \n",
" FF_1400 \n",
" -0.031354 \n",
" \n",
" \n",
"
\n",
"
"
],
"text/plain": [
" lasso\n",
"TT_0400 0.040399\n",
"TT_0500 0.000000\n",
"TT_0600 0.000000\n",
"TT_0700 0.175607\n",
"TT_0800 0.039599\n",
"TT_0900 0.000000\n",
"TT_1000 0.000000\n",
"TT_1100 0.000000\n",
"TT_1200 0.000000\n",
"TT_1300 0.068205\n",
"TT_1400 0.694896\n",
"TD_0400 0.000000\n",
"TD_0500 -0.000000\n",
"TD_0600 -0.000000\n",
"TD_0700 0.000000\n",
"TD_0800 0.000000\n",
"TD_0900 -0.000000\n",
"TD_1000 -0.049887\n",
"TD_1100 -0.000000\n",
"TD_1200 -0.000000\n",
"TD_1300 -0.000000\n",
"TD_1400 0.000000\n",
"GRAD1_0400 0.000000\n",
"GRAD1_0500 0.000000\n",
"GRAD1_0600 -0.005161\n",
"GRAD1_0700 0.004623\n",
"GRAD1_0800 0.002682\n",
"GRAD1_0900 0.002266\n",
"GRAD1_1000 0.006073\n",
"GRAD1_1100 -0.003775\n",
"GRAD1_1200 0.005764\n",
"GRAD1_1300 0.004337\n",
"GRAD1_1400 0.014364\n",
"NE_0400 0.012087\n",
"NE_0500 0.066627\n",
"NE_0600 -0.016707\n",
"NE_0700 -0.005721\n",
"NE_0800 0.045778\n",
"NE_0900 0.057771\n",
"NE_1000 0.000000\n",
"NE_1100 0.082545\n",
"NE_1200 0.040359\n",
"NE_1300 0.072016\n",
"NE_1400 0.143800\n",
"FF_0400 -0.020241\n",
"FF_0500 0.000000\n",
"FF_0600 -0.000000\n",
"FF_0700 -0.000000\n",
"FF_0800 -0.000000\n",
"FF_0900 0.002726\n",
"FF_1000 0.000000\n",
"FF_1100 -0.027617\n",
"FF_1200 -0.029053\n",
"FF_1300 -0.000000\n",
"FF_1400 -0.031354"
]
},
"execution_count": 58,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"lasso_model = Lasso(alpha=0.048).fit(X1400,y1400)\n",
"lasso_coefs = pd.Series(dict(zip(list(X1400), lasso_model.coef_)))\n",
"coefs = pd.DataFrame(dict(lasso=lasso_coefs))\n",
"coefs"
]
},
{
"cell_type": "markdown",
"id": "94e2c127",
"metadata": {},
"source": [
"The cell above provides us with the estimated parameter coefficients. The estimated coefficient values are absolutely lower than the values in the linear regression model. Furthermore, some coefficients are now set equal to 0 and are therefore deemed insignificant."
]
},
{
"cell_type": "markdown",
"id": "64de9fe2",
"metadata": {},
"source": [
"#### Lasso RST at 10pm"
]
},
{
"cell_type": "code",
"execution_count": 59,
"id": "d7fa91a2",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Optimal alpha: [0.044] with corresponding MSE: 0.84\n"
]
},
{
"data": {
"application/vnd.plotly.v1+json": {
"config": {
"plotlyServerURL": "https://plot.ly"
},
"data": [
{
"hovertemplate": "cv-train=CV Alpha=%{x} MSE=%{y} ",
"legendgroup": "CV",
"line": {
"color": "#636efa",
"dash": "solid"
},
"marker": {
"symbol": "circle"
},
"mode": "lines",
"name": "CV",
"orientation": "v",
"showlegend": true,
"type": "scatter",
"x": [
0.002,
0.004,
0.006,
0.008,
0.01,
0.012,
0.014,
0.016,
0.018000000000000002,
0.020000000000000004,
0.022,
0.024,
0.026000000000000002,
0.028000000000000004,
0.03,
0.032,
0.034,
0.036000000000000004,
0.038000000000000006,
0.04,
0.042,
0.044000000000000004,
0.046,
0.048,
0.05,
0.052000000000000005,
0.054000000000000006,
0.056,
0.058,
0.060000000000000005,
0.062,
0.064,
0.066,
0.068,
0.07,
0.07200000000000001,
0.07400000000000001,
0.076,
0.078,
0.08,
0.082,
0.084,
0.08600000000000001,
0.08800000000000001,
0.09,
0.092,
0.094,
0.096,
0.098,
0.1,
0.10200000000000001,
0.10400000000000001,
0.10600000000000001,
0.108,
0.11,
0.112,
0.114,
0.116,
0.11800000000000001,
0.12000000000000001,
0.122,
0.124,
0.126,
0.128,
0.13,
0.132,
0.134,
0.136,
0.138,
0.14,
0.14200000000000002,
0.14400000000000002,
0.14600000000000002,
0.148,
0.15,
0.152,
0.154,
0.156,
0.158,
0.16,
0.162,
0.164,
0.166,
0.168,
0.17,
0.17200000000000001,
0.17400000000000002,
0.17600000000000002,
0.178,
0.18,
0.182,
0.184,
0.186,
0.188,
0.19,
0.192,
0.194,
0.196,
0.198,
0.2,
0.202,
0.20400000000000001,
0.20600000000000002,
0.20800000000000002,
0.21000000000000002,
0.212,
0.214,
0.216,
0.218,
0.22,
0.222,
0.224,
0.226,
0.228,
0.23,
0.232,
0.234,
0.23600000000000002,
0.23800000000000002,
0.24000000000000002,
0.242,
0.244,
0.246,
0.248,
0.25,
0.252,
0.254,
0.256,
0.258,
0.26,
0.262,
0.264,
0.266,
0.268,
0.27,
0.272,
0.274,
0.276,
0.278,
0.28,
0.28200000000000003,
0.28400000000000003,
0.28600000000000003,
0.28800000000000003,
0.29000000000000004,
0.292,
0.294,
0.296,
0.298,
0.3,
0.302,
0.304,
0.306,
0.308,
0.31,
0.312,
0.314,
0.316,
0.318,
0.32,
0.322,
0.324,
0.326,
0.328,
0.33,
0.332,
0.334,
0.336,
0.338,
0.34,
0.342,
0.34400000000000003,
0.34600000000000003,
0.34800000000000003,
0.35000000000000003,
0.35200000000000004,
0.354,
0.356,
0.358,
0.36,
0.362,
0.364,
0.366,
0.368,
0.37,
0.372,
0.374,
0.376,
0.378,
0.38,
0.382,
0.384,
0.386,
0.388,
0.39,
0.392,
0.394,
0.396,
0.398,
0.4,
0.402,
0.404,
0.406,
0.40800000000000003,
0.41000000000000003,
0.41200000000000003,
0.41400000000000003,
0.41600000000000004,
0.41800000000000004,
0.42,
0.422,
0.424,
0.426,
0.428,
0.43,
0.432,
0.434,
0.436,
0.438,
0.44,
0.442,
0.444,
0.446,
0.448,
0.45,
0.452,
0.454,
0.456,
0.458,
0.46,
0.462,
0.464,
0.466,
0.468,
0.47000000000000003,
0.47200000000000003,
0.47400000000000003,
0.47600000000000003,
0.47800000000000004,
0.48000000000000004,
0.482,
0.484,
0.486,
0.488,
0.49,
0.492,
0.494,
0.496,
0.498,
0.5,
0.502,
0.504,
0.506,
0.508,
0.51,
0.512,
0.514,
0.516,
0.518,
0.52,
0.522,
0.524,
0.526,
0.528,
0.53,
0.532,
0.534,
0.536,
0.538,
0.54,
0.542,
0.544,
0.546,
0.548,
0.55,
0.552,
0.554,
0.556,
0.558,
0.56,
0.562,
0.5640000000000001,
0.5660000000000001,
0.5680000000000001,
0.5700000000000001,
0.5720000000000001,
0.5740000000000001,
0.5760000000000001,
0.5780000000000001,
0.58,
0.582,
0.584,
0.586,
0.588,
0.59,
0.592,
0.594,
0.596,
0.598,
0.6,
0.602,
0.604,
0.606,
0.608,
0.61,
0.612,
0.614,
0.616,
0.618,
0.62,
0.622,
0.624,
0.626,
0.628,
0.63,
0.632,
0.634,
0.636,
0.638,
0.64,
0.642,
0.644,
0.646,
0.648,
0.65,
0.652,
0.654,
0.656,
0.658,
0.66,
0.662,
0.664,
0.666,
0.668,
0.67,
0.672,
0.674,
0.676,
0.678,
0.68,
0.682,
0.684,
0.686,
0.6880000000000001,
0.6900000000000001,
0.6920000000000001,
0.6940000000000001,
0.6960000000000001,
0.6980000000000001,
0.7000000000000001,
0.7020000000000001,
0.7040000000000001,
0.706,
0.708,
0.71,
0.712,
0.714,
0.716,
0.718,
0.72,
0.722,
0.724,
0.726,
0.728,
0.73,
0.732,
0.734,
0.736,
0.738,
0.74,
0.742,
0.744,
0.746,
0.748,
0.75,
0.752,
0.754,
0.756,
0.758,
0.76,
0.762,
0.764,
0.766,
0.768,
0.77,
0.772,
0.774,
0.776,
0.778,
0.78,
0.782,
0.784,
0.786,
0.788,
0.79,
0.792,
0.794,
0.796,
0.798,
0.8,
0.802,
0.804,
0.806,
0.808,
0.81,
0.812,
0.8140000000000001,
0.8160000000000001,
0.8180000000000001,
0.8200000000000001,
0.8220000000000001,
0.8240000000000001,
0.8260000000000001,
0.8280000000000001,
0.8300000000000001,
0.8320000000000001,
0.8340000000000001,
0.836,
0.838,
0.84,
0.842,
0.844,
0.846,
0.848,
0.85,
0.852,
0.854,
0.856,
0.858,
0.86,
0.862,
0.864,
0.866,
0.868,
0.87,
0.872,
0.874,
0.876,
0.878,
0.88,
0.882,
0.884,
0.886,
0.888,
0.89,
0.892,
0.894,
0.896,
0.898,
0.9,
0.902,
0.904,
0.906,
0.908,
0.91,
0.912,
0.914,
0.916,
0.918,
0.92,
0.922,
0.924,
0.926,
0.928,
0.93,
0.932,
0.934,
0.936,
0.9380000000000001,
0.9400000000000001,
0.9420000000000001,
0.9440000000000001,
0.9460000000000001,
0.9480000000000001,
0.9500000000000001,
0.9520000000000001,
0.9540000000000001,
0.9560000000000001,
0.9580000000000001,
0.9600000000000001,
0.962,
0.964,
0.966,
0.968,
0.97,
0.972,
0.974,
0.976,
0.978,
0.98,
0.982,
0.984,
0.986,
0.988,
0.99,
0.992,
0.994,
0.996,
0.998,
1
],
"xaxis": "x",
"y": [
2.2646970342940973,
2.2480075916329625,
2.2332324482811803,
2.221767818746468,
2.2148923341258575,
2.212327283474827,
2.2099379013088187,
2.2090068519538786,
2.208502626318002,
2.2074085190029353,
2.205556839153391,
2.203346545086158,
2.201008308052397,
2.1987825943213872,
2.1969024179571397,
2.1950869241800572,
2.193244589724946,
2.191578629628721,
2.19077462042609,
2.190327447054993,
2.18997033591305,
2.189593561101281,
2.1893367093335625,
2.1892946999032192,
2.189444159792406,
2.1898261003204444,
2.190164450895966,
2.190700362392526,
2.191267140534292,
2.1918288583954095,
2.1924637670911102,
2.193146544378304,
2.1933612722253057,
2.1933439898594616,
2.1933608752558604,
2.193442688589807,
2.193562932719751,
2.1937021305289157,
2.1937775520714573,
2.1936295146686193,
2.19344759427689,
2.1933434599170862,
2.193302421395095,
2.1932154030507776,
2.193148597786693,
2.193100538224181,
2.1930434411972093,
2.1930398174108463,
2.193065600278961,
2.1931562620659792,
2.1932792079204697,
2.193410368190086,
2.1936623375459505,
2.1939243837156637,
2.1941802803346198,
2.194440173745732,
2.1947103338758263,
2.194985770326418,
2.1952684604721884,
2.1955568410578703,
2.1958524815241085,
2.1961545702649197,
2.1964644461621816,
2.1967794913409477,
2.197103033006349,
2.197431627529814,
2.197769802339337,
2.1981121137469986,
2.1984610439959438,
2.1988172611637316,
2.1991816619830575,
2.19955177164722,
2.1999279943640033,
2.2003096738036283,
2.2006656720965694,
2.201051828114928,
2.2014698958000087,
2.201893768579277,
2.202325016363399,
2.2027568162258833,
2.2031917480731193,
2.2036350251510077,
2.2040992003136823,
2.204585144184043,
2.2050773542307724,
2.2055724813126116,
2.20607575441497,
2.206585576197239,
2.207100513744332,
2.207624729433896,
2.2081550329011534,
2.208692569056244,
2.209236187677086,
2.2097828296755626,
2.210334804134593,
2.2108938719157725,
2.2114597761893338,
2.2120329137144683,
2.2126140097894362,
2.2132076057139427,
2.2138355863668435,
2.214470373751456,
2.2151123092521257,
2.215766182389509,
2.2164421881188616,
2.217115299287154,
2.2177952967193137,
2.2184814297300015,
2.219174936648227,
2.219875021911226,
2.220580800665813,
2.2212960311429373,
2.2220165513136356,
2.22274431593683,
2.2234785849828516,
2.224219769435302,
2.224980608248149,
2.2257466332117,
2.226525364773408,
2.227323868823265,
2.2281214317718616,
2.228914050034286,
2.2297199823406353,
2.2305349456943055,
2.231352369838241,
2.232160308895268,
2.23298472318975,
2.233828596041547,
2.2346645655680155,
2.235509765292485,
2.2363640969780554,
2.237225633314453,
2.2380932164597835,
2.238966587994188,
2.2398493496425558,
2.2407436452053946,
2.2416463998466396,
2.242556276602297,
2.2434735931169443,
2.244393900519938,
2.2453454858937434,
2.246303835739933,
2.2472664363423984,
2.2482490715121273,
2.2492391505303373,
2.250236954604909,
2.2512495962534085,
2.25226608189688,
2.253305449972487,
2.254355133171308,
2.255416490994443,
2.256471079424362,
2.2575190842218786,
2.258573889515358,
2.2596382082062485,
2.26071228199607,
2.261791489445245,
2.262876639290659,
2.263970676652858,
2.2650708260352266,
2.266175498614732,
2.2672831146142225,
2.2683992106198376,
2.269524907579063,
2.2706605966419486,
2.2717984938255205,
2.2729338026707184,
2.274079274248168,
2.2752292804711223,
2.276391545935722,
2.277550152018371,
2.2787164556923343,
2.27988444678167,
2.281067080090644,
2.2822545315278986,
2.2834460334759603,
2.284641406312343,
2.2858413682354692,
2.287052681148853,
2.2882680189805944,
2.2894822813961637,
2.2907169559776164,
2.2919592095729664,
2.293209536980332,
2.2944501107563116,
2.295676987049178,
2.2969124868868898,
2.298154325423422,
2.299399416192505,
2.300647068697243,
2.301901291703248,
2.3031645949493633,
2.304433414730186,
2.3057085766543906,
2.3069910288501125,
2.30827735509823,
2.3095633945075464,
2.3108571654135863,
2.3121559943815395,
2.313463420944287,
2.3147885055951525,
2.316122086050607,
2.317461330991372,
2.3187947956539765,
2.3201367325757776,
2.321486259903576,
2.322834093615738,
2.324153348759798,
2.325474460077653,
2.326800070783945,
2.328131424016429,
2.3294689461387477,
2.33081492670246,
2.3321661848793602,
2.333505370088495,
2.334852367988506,
2.3362006734438636,
2.3375586307816465,
2.338919393775917,
2.3402893391747535,
2.341666822645401,
2.343048679582893,
2.34443431520567,
2.34583378472509,
2.34722232187931,
2.3486190110679135,
2.3500226328522538,
2.351426226633805,
2.352833422444232,
2.354249098640456,
2.3556653493579787,
2.357085334536058,
2.3585149485196033,
2.3599508882714177,
2.361394586207056,
2.3628469108815646,
2.3643071911682396,
2.3657742846790653,
2.367249310721649,
2.3687291013326712,
2.3702164319641534,
2.3717098568194093,
2.373212541354399,
2.3747200733464995,
2.3762323410452266,
2.377756174308695,
2.379284387225437,
2.380820185681889,
2.3823727845232066,
2.3839453754831803,
2.385522025900024,
2.387108066080773,
2.3887060349807485,
2.390309124899407,
2.391917174736566,
2.3935329392588107,
2.3951522838910857,
2.3967791094127477,
2.3984191862674047,
2.4000419302729674,
2.4016607008240647,
2.4032746198954547,
2.404884733926206,
2.4064962422945055,
2.408108611512049,
2.4097301809873874,
2.4113588229767986,
2.412989944128454,
2.4146286229873333,
2.4162708096385552,
2.4179323298773485,
2.4196149138265013,
2.4213003150666648,
2.4229934645839033,
2.424690695412785,
2.4263956510503184,
2.4281067954142346,
2.4298240007132086,
2.431546364125146,
2.43327111346596,
2.434997905533611,
2.436726494973629,
2.4384616533257177,
2.440202607950653,
2.441951180973009,
2.4437015383802003,
2.4454629477687053,
2.44722829830683,
2.4490016551349494,
2.4507810731612416,
2.4525842149624477,
2.454388918575281,
2.456199221103726,
2.4580150082237915,
2.459836113984938,
2.461663199157079,
2.4634952178614764,
2.465330817446152,
2.4671738840256316,
2.4690228361280906,
2.470875629717492,
2.4727348397796702,
2.474601198035676,
2.4764760705944364,
2.478354876619569,
2.480239464722888,
2.48213123759903,
2.484021574822098,
2.485906275847989,
2.48773008553971,
2.4895302099002303,
2.4913273722177207,
2.493130019424709,
2.4949367451299542,
2.496744684156554,
2.498546278034863,
2.5003541385756978,
2.502187172581254,
2.504011933863982,
2.5058451216444375,
2.507684173724325,
2.5095299111052585,
2.5113791864469923,
2.513238473934027,
2.515100641621695,
2.5169677867581726,
2.5188479047973606,
2.5207329224127735,
2.522627087763698,
2.5245279819720126,
2.5264308620233202,
2.5283412535073473,
2.5302596976592593,
2.5321824478441575,
2.5341075077690585,
2.5360213786370283,
2.5379280191474125,
2.539832785154413,
2.5417406239399636,
2.543655534303679,
2.545577054605465,
2.547504111874335,
2.549437731639345,
2.5513761290115395,
2.553317226227235,
2.5552640257774586,
2.5572147008222474,
2.5591724536953766,
2.561132268126961,
2.5630885944316075,
2.5650473233758886,
2.5670105505280763,
2.568975862927698,
2.5709504709567264,
2.57292693165411,
2.574912093959612,
2.576902436341377,
2.578897130409057,
2.5808803704511014,
2.5828193282386542,
2.584764909069977,
2.5867163141069356,
2.5886702652581417,
2.5906292453000477,
2.5925929798641727,
2.5945634365616352,
2.596499214712228,
2.598374995714762,
2.600255537354656,
2.6021393064380107,
2.6040193808674252,
2.605906833353132,
2.6077942524369777,
2.6096908043879283,
2.611511523721671,
2.6132909721351534,
2.615071468759127,
2.616856689969015,
2.6186469654248095,
2.6204431394887453,
2.622243788017639,
2.6240501093065243,
2.6258551322587484,
2.627646137503979,
2.6293829519933096,
2.631122826438186,
2.6328357754152663,
2.634548212101121,
2.636218432265684,
2.637810661211842,
2.6394037415011318,
2.640998866828009,
2.6426042628363997,
2.6442147100731495,
2.645826778937402,
2.647442234529307,
2.649057150993339,
2.6506772374565224,
2.6522970766933827,
2.6539237708478085,
2.655553488923773,
2.657188667826014,
2.658826588315209,
2.6604588371225217,
2.662095284412581,
2.6637357196810987,
2.6653811929900866,
2.6670034719501428,
2.668581334103152,
2.6701643347593227,
2.671750790826306,
2.6733408416835562,
2.674934415395511,
2.676530906529153,
2.67813180521666,
2.6797368794702385,
2.681346772897407,
2.68296014826963,
2.6845751055102602,
2.6861937387466623,
2.6878173389067643,
2.6894447533704415,
2.691076009260006,
2.692710969385761,
2.694349650830669,
2.69599361406013,
2.6976376691928694,
2.6992875806267795,
2.700939945518756,
2.7025971607761337,
2.7041963553674413,
2.7056732434862467,
2.707154810978717,
2.7086353704560393,
2.710122532753744,
2.711612904744349,
2.713108248661459,
2.7146051331735377,
2.7161048690085785,
2.717601623315467,
2.7189299894659604,
2.720262708187976,
2.7215993876857416,
2.7229387851497338,
2.7242816701966945,
2.725626834853654,
2.7269766354080858,
2.7283304362084273,
2.729685492855166,
2.730909182827473,
2.73212122433975,
2.733307147071362,
2.7343796715715665,
2.7354554125570174,
2.736415188008926,
2.7372097668278865,
2.7380070107288965,
2.738803780421803,
2.739478955554243,
2.7401470238425234,
2.740818019879849,
2.7414891840416695,
2.7421644531024256,
2.7428394818977635,
2.743516252934311,
2.744194719650923,
2.744876881669922,
2.745560046959358,
2.7462446247994756,
2.7469321651850658,
2.747621849285917,
2.7483122086894545,
2.7490051291398254,
2.749698277195968,
2.750393981469906,
2.7510920689118215,
2.7517924499050714,
2.752494045672429,
2.7531974320865444,
2.7539021921147846,
2.7545388849826375,
2.75509297299552,
2.755646376989914,
2.7562001506712215,
2.7567555656591263,
2.757312044280975,
2.7578686437764444,
2.758425771092712,
2.758985101255687,
2.7595451210233644,
2.760105640132469,
2.7606677908878843,
2.761230998011544,
2.7617964689618795,
2.7623199049870406,
2.762845618478882,
2.7633724526048002,
2.7639013510953285,
2.764431464268081,
2.7649604257178004
],
"yaxis": "y"
},
{
"hovertemplate": "cv-train=Train Alpha=%{x} MSE=%{y} ",
"legendgroup": "Train",
"line": {
"color": "#EF553B",
"dash": "solid"
},
"marker": {
"symbol": "circle"
},
"mode": "lines",
"name": "Train",
"orientation": "v",
"showlegend": true,
"type": "scatter",
"x": [
0.002,
0.004,
0.006,
0.008,
0.01,
0.012,
0.014,
0.016,
0.018000000000000002,
0.020000000000000004,
0.022,
0.024,
0.026000000000000002,
0.028000000000000004,
0.03,
0.032,
0.034,
0.036000000000000004,
0.038000000000000006,
0.04,
0.042,
0.044000000000000004,
0.046,
0.048,
0.05,
0.052000000000000005,
0.054000000000000006,
0.056,
0.058,
0.060000000000000005,
0.062,
0.064,
0.066,
0.068,
0.07,
0.07200000000000001,
0.07400000000000001,
0.076,
0.078,
0.08,
0.082,
0.084,
0.08600000000000001,
0.08800000000000001,
0.09,
0.092,
0.094,
0.096,
0.098,
0.1,
0.10200000000000001,
0.10400000000000001,
0.10600000000000001,
0.108,
0.11,
0.112,
0.114,
0.116,
0.11800000000000001,
0.12000000000000001,
0.122,
0.124,
0.126,
0.128,
0.13,
0.132,
0.134,
0.136,
0.138,
0.14,
0.14200000000000002,
0.14400000000000002,
0.14600000000000002,
0.148,
0.15,
0.152,
0.154,
0.156,
0.158,
0.16,
0.162,
0.164,
0.166,
0.168,
0.17,
0.17200000000000001,
0.17400000000000002,
0.17600000000000002,
0.178,
0.18,
0.182,
0.184,
0.186,
0.188,
0.19,
0.192,
0.194,
0.196,
0.198,
0.2,
0.202,
0.20400000000000001,
0.20600000000000002,
0.20800000000000002,
0.21000000000000002,
0.212,
0.214,
0.216,
0.218,
0.22,
0.222,
0.224,
0.226,
0.228,
0.23,
0.232,
0.234,
0.23600000000000002,
0.23800000000000002,
0.24000000000000002,
0.242,
0.244,
0.246,
0.248,
0.25,
0.252,
0.254,
0.256,
0.258,
0.26,
0.262,
0.264,
0.266,
0.268,
0.27,
0.272,
0.274,
0.276,
0.278,
0.28,
0.28200000000000003,
0.28400000000000003,
0.28600000000000003,
0.28800000000000003,
0.29000000000000004,
0.292,
0.294,
0.296,
0.298,
0.3,
0.302,
0.304,
0.306,
0.308,
0.31,
0.312,
0.314,
0.316,
0.318,
0.32,
0.322,
0.324,
0.326,
0.328,
0.33,
0.332,
0.334,
0.336,
0.338,
0.34,
0.342,
0.34400000000000003,
0.34600000000000003,
0.34800000000000003,
0.35000000000000003,
0.35200000000000004,
0.354,
0.356,
0.358,
0.36,
0.362,
0.364,
0.366,
0.368,
0.37,
0.372,
0.374,
0.376,
0.378,
0.38,
0.382,
0.384,
0.386,
0.388,
0.39,
0.392,
0.394,
0.396,
0.398,
0.4,
0.402,
0.404,
0.406,
0.40800000000000003,
0.41000000000000003,
0.41200000000000003,
0.41400000000000003,
0.41600000000000004,
0.41800000000000004,
0.42,
0.422,
0.424,
0.426,
0.428,
0.43,
0.432,
0.434,
0.436,
0.438,
0.44,
0.442,
0.444,
0.446,
0.448,
0.45,
0.452,
0.454,
0.456,
0.458,
0.46,
0.462,
0.464,
0.466,
0.468,
0.47000000000000003,
0.47200000000000003,
0.47400000000000003,
0.47600000000000003,
0.47800000000000004,
0.48000000000000004,
0.482,
0.484,
0.486,
0.488,
0.49,
0.492,
0.494,
0.496,
0.498,
0.5,
0.502,
0.504,
0.506,
0.508,
0.51,
0.512,
0.514,
0.516,
0.518,
0.52,
0.522,
0.524,
0.526,
0.528,
0.53,
0.532,
0.534,
0.536,
0.538,
0.54,
0.542,
0.544,
0.546,
0.548,
0.55,
0.552,
0.554,
0.556,
0.558,
0.56,
0.562,
0.5640000000000001,
0.5660000000000001,
0.5680000000000001,
0.5700000000000001,
0.5720000000000001,
0.5740000000000001,
0.5760000000000001,
0.5780000000000001,
0.58,
0.582,
0.584,
0.586,
0.588,
0.59,
0.592,
0.594,
0.596,
0.598,
0.6,
0.602,
0.604,
0.606,
0.608,
0.61,
0.612,
0.614,
0.616,
0.618,
0.62,
0.622,
0.624,
0.626,
0.628,
0.63,
0.632,
0.634,
0.636,
0.638,
0.64,
0.642,
0.644,
0.646,
0.648,
0.65,
0.652,
0.654,
0.656,
0.658,
0.66,
0.662,
0.664,
0.666,
0.668,
0.67,
0.672,
0.674,
0.676,
0.678,
0.68,
0.682,
0.684,
0.686,
0.6880000000000001,
0.6900000000000001,
0.6920000000000001,
0.6940000000000001,
0.6960000000000001,
0.6980000000000001,
0.7000000000000001,
0.7020000000000001,
0.7040000000000001,
0.706,
0.708,
0.71,
0.712,
0.714,
0.716,
0.718,
0.72,
0.722,
0.724,
0.726,
0.728,
0.73,
0.732,
0.734,
0.736,
0.738,
0.74,
0.742,
0.744,
0.746,
0.748,
0.75,
0.752,
0.754,
0.756,
0.758,
0.76,
0.762,
0.764,
0.766,
0.768,
0.77,
0.772,
0.774,
0.776,
0.778,
0.78,
0.782,
0.784,
0.786,
0.788,
0.79,
0.792,
0.794,
0.796,
0.798,
0.8,
0.802,
0.804,
0.806,
0.808,
0.81,
0.812,
0.8140000000000001,
0.8160000000000001,
0.8180000000000001,
0.8200000000000001,
0.8220000000000001,
0.8240000000000001,
0.8260000000000001,
0.8280000000000001,
0.8300000000000001,
0.8320000000000001,
0.8340000000000001,
0.836,
0.838,
0.84,
0.842,
0.844,
0.846,
0.848,
0.85,
0.852,
0.854,
0.856,
0.858,
0.86,
0.862,
0.864,
0.866,
0.868,
0.87,
0.872,
0.874,
0.876,
0.878,
0.88,
0.882,
0.884,
0.886,
0.888,
0.89,
0.892,
0.894,
0.896,
0.898,
0.9,
0.902,
0.904,
0.906,
0.908,
0.91,
0.912,
0.914,
0.916,
0.918,
0.92,
0.922,
0.924,
0.926,
0.928,
0.93,
0.932,
0.934,
0.936,
0.9380000000000001,
0.9400000000000001,
0.9420000000000001,
0.9440000000000001,
0.9460000000000001,
0.9480000000000001,
0.9500000000000001,
0.9520000000000001,
0.9540000000000001,
0.9560000000000001,
0.9580000000000001,
0.9600000000000001,
0.962,
0.964,
0.966,
0.968,
0.97,
0.972,
0.974,
0.976,
0.978,
0.98,
0.982,
0.984,
0.986,
0.988,
0.99,
0.992,
0.994,
0.996,
0.998,
1
],
"xaxis": "x",
"y": [
1.8218995882689908,
1.8271695718249303,
1.8325296212751687,
1.837842790100628,
1.8417801403185197,
1.846374574843671,
1.8504125900564652,
1.853410943291435,
1.8566005541433075,
1.8600531441735701,
1.8637352012017683,
1.8665316895304065,
1.868587885072446,
1.8707994146821867,
1.8729126616708707,
1.8751172445245339,
1.877341567302015,
1.878794033810613,
1.8801263360493639,
1.8814550630514797,
1.8827869252452805,
1.8841839948730814,
1.8856460251938998,
1.8871730288099204,
1.8887649872449352,
1.8904221847787699,
1.8917275088491454,
1.8930285262386013,
1.8943768553312998,
1.8957724658901767,
1.8972156638668343,
1.8987059041815781,
1.900243450817441,
1.9015485919612074,
1.9026811643347743,
1.9038466191647352,
1.9050447355337297,
1.9062758815383656,
1.9075398325137176,
1.9088365874418136,
1.910166018380413,
1.9115285658786563,
1.9120528933621723,
1.9123201015925144,
1.912593403755995,
1.9128728158192958,
1.913158348210847,
1.9134500982463825,
1.9137478755747244,
1.9140518684731351,
1.9143619260517102,
1.9146781304498883,
1.915000514891766,
1.9153289368907456,
1.9156635114820624,
1.9160043031759322,
1.9163511619886557,
1.9167041482875096,
1.9170633197467373,
1.9174285438784735,
1.91779990397879,
1.9181773893561582,
1.918561093561795,
1.918950844767419,
1.919346729491154,
1.9197487186313436,
1.9201569539358634,
1.920571220007641,
1.9209916149739759,
1.921418142921235,
1.9218507941793166,
1.92228966786583,
1.922734561874176,
1.9231856237490692,
1.9236428013326201,
1.9241061114231617,
1.9245756642098903,
1.9250512346905564,
1.9255329287044547,
1.9260207698273901,
1.9265147458904925,
1.9270148588636988,
1.9275211989784888,
1.928033575504482,
1.928552046135555,
1.929076653375861,
1.9295832228454033,
1.9300756934456353,
1.930573797485272,
1.9310776429857233,
1.9315870347146278,
1.932102020235943,
1.9326226508325912,
1.9331489327564453,
1.9336808621965997,
1.9342183826197676,
1.934761569735646,
1.9353104490034458,
1.9358648682907371,
1.936424884786856,
1.9369905431315493,
1.9375618253531486,
1.9381387352725195,
1.938721290669527,
1.939309440623377,
1.9399032331284256,
1.9405027039128233,
1.9411077390466878,
1.941718366243108,
1.9423345797460607,
1.9429564453390924,
1.943583946024608,
1.944217056708308,
1.9448558114163128,
1.9455001714616265,
1.9461502451541361,
1.946805861608553,
1.9474670753839056,
1.9481339045922799,
1.9488063449776027,
1.949484436355769,
1.9501681049787352,
1.9508574250212918,
1.9515718036292882,
1.9523766481371936,
1.9531861396945527,
1.9539983562513088,
1.9548093007797647,
1.9556188062241524,
1.9564351206188746,
1.957257212779552,
1.9580861623097567,
1.958921437416864,
1.9597624585166886,
1.9606103323527573,
1.9614645320808082,
1.962324472196863,
1.9631912934808498,
1.9640644250251644,
1.9649432755165415,
1.9658290252265544,
1.9667210795037502,
1.9676188472921428,
1.9685235196800899,
1.969434499214494,
1.9703490786132731,
1.971268226671242,
1.9721936517788063,
1.9731246973255065,
1.974062663335426,
1.9750069102714658,
1.975957423546644,
1.9769135345082105,
1.9778765912538383,
1.978845922429162,
1.9798208095727814,
1.9808026786961321,
1.9817908129990685,
1.9827844919639226,
1.9837851468318113,
1.9847920490889297,
1.9858051901251776,
1.9868229941888913,
1.9878796827502565,
1.988942894420922,
1.9900133915754565,
1.9910903683550598,
1.9921738254470596,
1.993263758111315,
1.9943592795293263,
1.9954621374742847,
1.9965714924303684,
1.9976873083507807,
1.998808708877613,
1.9999374627710829,
2.0010726906176597,
2.0022143907331174,
2.003361624829913,
2.0045161912177254,
2.0056773014229234,
2.0068449295214887,
2.008019033223502,
2.0091986532797463,
2.0103857094057522,
2.0115792506874537,
2.0127792715266195,
2.0139847829223263,
2.015197691251043,
2.016417138851919,
2.0176431120186895,
2.018874548100278,
2.0201134845834496,
2.02135889265621,
2.022610773541519,
2.023868069651209,
2.0251329071030515,
2.0264031545624013,
2.0276798048997615,
2.0289616000436475,
2.030250190363882,
2.0315453982679728,
2.0328446641826714,
2.034146304770409,
2.0354188397206903,
2.0366978092242354,
2.0379830962987344,
2.0392732397958797,
2.0405711110653053,
2.0418752594426883,
2.043185594177946,
2.0445007054054782,
2.0458235997621688,
2.0471528012988203,
2.0484882633755968,
2.0498299884534785,
2.051176425489328,
2.0525306561490524,
2.053891147141818,
2.055257906632004,
2.056630938787049,
2.0580086121626566,
2.059394126957781,
2.060785811834703,
2.0621837676320234,
2.0635879943785906,
2.064996902609912,
2.0664137430024554,
2.067836845745594,
2.0692662064367133,
2.070701829577302,
2.0721419799924443,
2.0735901164224466,
2.0750445079721747,
2.0765051609616716,
2.0779702868911785,
2.0794434489276683,
2.080922842346417,
2.082408433038049,
2.083900299205104,
2.0853965380907273,
2.0868919112419837,
2.088389133483085,
2.089896515467122,
2.0914103337615715,
2.0929305872148447,
2.0944572677567352,
2.095990362957304,
2.09752944439564,
2.099075191436526,
2.100627293945877,
2.102185097433359,
2.1037497484624312,
2.105320695073306,
2.1068979255163875,
2.1084814012486426,
2.1100701443056082,
2.1116660290142697,
2.113268154525342,
2.1148764848642005,
2.1164909627059907,
2.1180822461764626,
2.11967473729032,
2.121275180539557,
2.1228802022752724,
2.1244934542607776,
2.126113140297672,
2.1277368936622802,
2.1293691645440678,
2.1310052056243918,
2.1326499234126475,
2.1343003264317044,
2.135947401370493,
2.1376034878955243,
2.1392631089862126,
2.1409314044693897,
2.1426057188891248,
2.144286146552337,
2.1459726628000464,
2.147665268358998,
2.1493639483072418,
2.1510687007688527,
2.152779590774944,
2.1544965830687968,
2.1562196427399933,
2.15794603499946,
2.15968122045378,
2.1614224666844213,
2.1631697751329733,
2.1649231416155303,
2.166682565089105,
2.168445309703239,
2.1702168559308244,
2.171994466497768,
2.173778148323155,
2.175565127906273,
2.1773609377710863,
2.1791628149507734,
2.1809707613373988,
2.182784778230708,
2.18460198109547,
2.1864280293413594,
2.1882601525999403,
2.190098350866896,
2.191942627105959,
2.193790093693992,
2.1956464968161375,
2.1975089673076402,
2.199357316461437,
2.201205033104349,
2.2030553826916317,
2.204913135490343,
2.206774245353634,
2.208643618517564,
2.2105189898743487,
2.2123980223866893,
2.214285362931006,
2.2161786918018263,
2.2180780096831603,
2.219980926621419,
2.2218922111446937,
2.2238094890504208,
2.225730318394042,
2.227659561817173,
2.2295947930557047,
2.2315360223505025,
2.2334807377342525,
2.2354339515268733,
2.237393164001113,
2.239358372998662,
2.2413269653468,
2.2433040511760023,
2.245287146853164,
2.247276243025864,
2.2492686789893224,
2.2512697487314197,
2.253276814058492,
2.2552898713542158,
2.2573089391735786,
2.2593312628299946,
2.261362351031112,
2.263399519761675,
2.2654427037022686,
2.267421574840923,
2.2693348573490844,
2.2712569206879674,
2.2731814806350794,
2.2751144570006936,
2.2770504032779613,
2.278992773541445,
2.280939535170153,
2.2828533236194635,
2.284756192979397,
2.28666446208041,
2.2885781322115806,
2.2904935331556513,
2.292417990980668,
2.294348226269907,
2.2962841699158476,
2.298221803351277,
2.3001685679683437,
2.3021207397950887,
2.3040745634633084,
2.3060375647031295,
2.3080059818692424,
2.3099760125463575,
2.3119552602587343,
2.3139361264535427,
2.3159263243512602,
2.3179219232273103,
2.319919081687615,
2.3219255191360237,
2.323937369455042,
2.3259507458984157,
2.3279734324696686,
2.3300015338913433,
2.3320311141602845,
2.3340700285473206,
2.3361143033575122,
2.3381598401005848,
2.340214765159479,
2.3422750995938832,
2.3443368243210543,
2.3464079597692535,
2.348484493619014,
2.349899018379504,
2.351269446490315,
2.3526432822582453,
2.354017300770173,
2.3553980930933034,
2.3567823667816556,
2.358170126436477,
2.3595614370105142,
2.360952979363603,
2.362351403780699,
2.363753387747081,
2.3651589305534375,
2.3665646656486543,
2.3679773059725586,
2.369393498994245,
2.3708132725458273,
2.3722365939207477,
2.3736600744800875,
2.375090513835856,
2.376524510406378,
2.3779620700940183,
2.379403188316518,
2.3808444272801363,
2.3822926593257066,
2.383744449361242,
2.3851997937786393,
2.386655222821631,
2.388117720737775,
2.389583855120398,
2.391053544802343,
2.3925233201882743,
2.3940001568830143,
2.3954805546303213,
2.396964536690485,
2.3984485391598764,
2.399939635503077,
2.401434292465434,
2.4029289502126447,
2.4044307291324545,
2.4059360345294585,
2.4074446942492287,
2.408956774616811,
2.410468986298161,
2.411988348315909,
2.4135112621724253,
2.4150377294403174,
2.416564119580342,
2.418097694627388,
2.4196348242453594,
2.421175507963692,
2.4227197453386955,
2.424263877931667,
2.425815240354714,
2.427370156006167,
2.4289286404154757,
2.430486984244306,
2.432052582686983,
2.4336217296464806,
2.435194433451705,
2.4367706882599416,
2.4383467613261534,
2.439930116861379,
2.4415170249025673,
2.4431075184137656,
2.4446977766711133,
2.4462953369866316,
2.447896447307171,
2.449501128507984,
2.451109396856469,
2.4527174173207476,
2.454332824684089,
2.4559517796654,
2.4575742882918505,
2.4591964961231843,
2.4608260783266593,
2.4624592152230513,
2.464095908104011,
2.465454836008675,
2.465904267526873,
2.4663546175581743,
2.466805920724948,
2.467258185056978,
2.4677114028925113,
2.4681655888369485,
2.468620759431011,
2.4690768949554847,
2.4695340911071173,
2.46999227535532,
2.4704514534460507,
2.4709116258064507,
2.471372821420685,
2.4718350409736662,
2.4722982216261684,
2.4727623409513177,
2.4732313885662385,
2.473697360496989,
2.4741643015601853,
2.4746321970210596,
2.4751010508518188,
2.4755708298377743,
2.476041251285179,
2.4765124977468047,
2.4769848737968863,
2.4774623634449098,
2.4779365851700352,
2.4784119703639895,
2.4788883160307496,
2.4793656323801994,
2.4798332865658868,
2.4803018215134607,
2.480770128745363,
2.4812390078765425,
2.481708827648703,
2.4821834574023884,
2.482655166494873,
2.483127823768324
],
"yaxis": "y"
}
],
"layout": {
"legend": {
"title": {
"text": "cv-train"
},
"tracegroupgap": 0
},
"margin": {
"t": 60
},
"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
}
}
},
"xaxis": {
"anchor": "y",
"domain": [
0,
1
],
"title": {
"text": "Alpha"
}
},
"yaxis": {
"anchor": "x",
"domain": [
0,
1
],
"title": {
"text": "MSE"
}
}
}
},
"text/html": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"example4 = lassoReg(X2200,y2200)\n",
"px.line(example3, x=\"Alpha\", y=\"MSE\", color=\"cv-train\")"
]
},
{
"cell_type": "markdown",
"id": "14e2f9ca",
"metadata": {},
"source": [
"The optimal lasso regression model for RST2200 seems to be for $\\alpha=0.044$, since it minimizes the estimated MSE using cross-validation. Moreover, we can notice that many variables were set to 0 and thus deemed insiginificant."
]
},
{
"cell_type": "code",
"execution_count": 60,
"id": "ed5de812",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" \n",
" lasso \n",
" \n",
" \n",
" \n",
" \n",
" TT_1200 \n",
" 0.104730 \n",
" \n",
" \n",
" TT_1300 \n",
" 0.000000 \n",
" \n",
" \n",
" TT_1400 \n",
" 0.000000 \n",
" \n",
" \n",
" TT_1500 \n",
" 0.000000 \n",
" \n",
" \n",
" TT_1600 \n",
" 0.078908 \n",
" \n",
" \n",
" TT_1700 \n",
" 0.000000 \n",
" \n",
" \n",
" TT_1800 \n",
" 0.062059 \n",
" \n",
" \n",
" TT_1900 \n",
" 0.000000 \n",
" \n",
" \n",
" TT_2000 \n",
" 0.047117 \n",
" \n",
" \n",
" TT_2100 \n",
" 0.000000 \n",
" \n",
" \n",
" TT_2200 \n",
" 0.626788 \n",
" \n",
" \n",
" TD_1200 \n",
" 0.000000 \n",
" \n",
" \n",
" TD_1300 \n",
" 0.000000 \n",
" \n",
" \n",
" TD_1400 \n",
" 0.000000 \n",
" \n",
" \n",
" TD_1500 \n",
" -0.000000 \n",
" \n",
" \n",
" TD_1600 \n",
" 0.000000 \n",
" \n",
" \n",
" TD_1700 \n",
" 0.000000 \n",
" \n",
" \n",
" TD_1800 \n",
" 0.000000 \n",
" \n",
" \n",
" TD_1900 \n",
" 0.000000 \n",
" \n",
" \n",
" TD_2000 \n",
" 0.000000 \n",
" \n",
" \n",
" TD_2100 \n",
" 0.000000 \n",
" \n",
" \n",
" TD_2200 \n",
" 0.071725 \n",
" \n",
" \n",
" GRAD1_1200 \n",
" 0.001877 \n",
" \n",
" \n",
" GRAD1_1300 \n",
" 0.000171 \n",
" \n",
" \n",
" GRAD1_1400 \n",
" 0.000075 \n",
" \n",
" \n",
" GRAD1_1500 \n",
" 0.001163 \n",
" \n",
" \n",
" GRAD1_1600 \n",
" 0.002237 \n",
" \n",
" \n",
" GRAD1_1700 \n",
" 0.003312 \n",
" \n",
" \n",
" GRAD1_1800 \n",
" 0.005909 \n",
" \n",
" \n",
" GRAD1_1900 \n",
" 0.000000 \n",
" \n",
" \n",
" GRAD1_2000 \n",
" -0.000000 \n",
" \n",
" \n",
" GRAD1_2100 \n",
" 0.000000 \n",
" \n",
" \n",
" GRAD1_2200 \n",
" 0.000000 \n",
" \n",
" \n",
" NE_1200 \n",
" 0.059796 \n",
" \n",
" \n",
" NE_1300 \n",
" 0.000864 \n",
" \n",
" \n",
" NE_1400 \n",
" 0.000000 \n",
" \n",
" \n",
" NE_1500 \n",
" 0.000000 \n",
" \n",
" \n",
" NE_1600 \n",
" 0.036876 \n",
" \n",
" \n",
" NE_1700 \n",
" 0.037229 \n",
" \n",
" \n",
" NE_1800 \n",
" -0.000000 \n",
" \n",
" \n",
" NE_1900 \n",
" 0.000000 \n",
" \n",
" \n",
" NE_2000 \n",
" 0.013189 \n",
" \n",
" \n",
" NE_2100 \n",
" 0.082416 \n",
" \n",
" \n",
" NE_2200 \n",
" 0.183437 \n",
" \n",
" \n",
" FF_1200 \n",
" -0.000000 \n",
" \n",
" \n",
" FF_1300 \n",
" -0.000000 \n",
" \n",
" \n",
" FF_1400 \n",
" -0.034338 \n",
" \n",
" \n",
" FF_1500 \n",
" 0.000000 \n",
" \n",
" \n",
" FF_1600 \n",
" 0.000000 \n",
" \n",
" \n",
" FF_1700 \n",
" 0.000000 \n",
" \n",
" \n",
" FF_1800 \n",
" 0.000000 \n",
" \n",
" \n",
" FF_1900 \n",
" 0.005986 \n",
" \n",
" \n",
" FF_2000 \n",
" -0.000000 \n",
" \n",
" \n",
" FF_2100 \n",
" -0.000000 \n",
" \n",
" \n",
" FF_2200 \n",
" -0.038410 \n",
" \n",
" \n",
"
\n",
"
"
],
"text/plain": [
" lasso\n",
"TT_1200 0.104730\n",
"TT_1300 0.000000\n",
"TT_1400 0.000000\n",
"TT_1500 0.000000\n",
"TT_1600 0.078908\n",
"TT_1700 0.000000\n",
"TT_1800 0.062059\n",
"TT_1900 0.000000\n",
"TT_2000 0.047117\n",
"TT_2100 0.000000\n",
"TT_2200 0.626788\n",
"TD_1200 0.000000\n",
"TD_1300 0.000000\n",
"TD_1400 0.000000\n",
"TD_1500 -0.000000\n",
"TD_1600 0.000000\n",
"TD_1700 0.000000\n",
"TD_1800 0.000000\n",
"TD_1900 0.000000\n",
"TD_2000 0.000000\n",
"TD_2100 0.000000\n",
"TD_2200 0.071725\n",
"GRAD1_1200 0.001877\n",
"GRAD1_1300 0.000171\n",
"GRAD1_1400 0.000075\n",
"GRAD1_1500 0.001163\n",
"GRAD1_1600 0.002237\n",
"GRAD1_1700 0.003312\n",
"GRAD1_1800 0.005909\n",
"GRAD1_1900 0.000000\n",
"GRAD1_2000 -0.000000\n",
"GRAD1_2100 0.000000\n",
"GRAD1_2200 0.000000\n",
"NE_1200 0.059796\n",
"NE_1300 0.000864\n",
"NE_1400 0.000000\n",
"NE_1500 0.000000\n",
"NE_1600 0.036876\n",
"NE_1700 0.037229\n",
"NE_1800 -0.000000\n",
"NE_1900 0.000000\n",
"NE_2000 0.013189\n",
"NE_2100 0.082416\n",
"NE_2200 0.183437\n",
"FF_1200 -0.000000\n",
"FF_1300 -0.000000\n",
"FF_1400 -0.034338\n",
"FF_1500 0.000000\n",
"FF_1600 0.000000\n",
"FF_1700 0.000000\n",
"FF_1800 0.000000\n",
"FF_1900 0.005986\n",
"FF_2000 -0.000000\n",
"FF_2100 -0.000000\n",
"FF_2200 -0.038410"
]
},
"execution_count": 60,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"lasso_model = Lasso(alpha=0.044).fit(X2200,y2200)\n",
"lasso_coefs = pd.Series(dict(zip(list(X2200), lasso_model.coef_)))\n",
"coefs = pd.DataFrame(dict(lasso=lasso_coefs))\n",
"coefs"
]
},
{
"cell_type": "markdown",
"id": "3a736042",
"metadata": {},
"source": [
"Many variables are set to 0 for the corresponding lasso model. The most important predictor is TT_2200, the current temperature. Furthermore, NE seems to be an important factor as well, whereas GRAD1, FF and TD seem to be close to negligible."
]
},
{
"cell_type": "markdown",
"id": "6ee1e495",
"metadata": {},
"source": [
"# Classification analysis\n",
"\n",
"In this section we want to conduct a classification analysis in which we are able to predict if a day has 'driving risk' or not, accordingly to the other variables (air temperature, dew point temperature, solar radiation, effective cloud cover, wind speed).\n",
"\n",
"Thus, we firstly code a new binary output variable which represents the risk. Thus, we are not interested anymore in the hourly values, so we consider the daily mean of the road surface temperature in a day (given by the mean by row of the 24 columns RST). If this value is close to 0 means that driving could be risky on that day. \n",
"\n",
"As techniques we will apply several machine learning algorithms to classify that variable. \n",
"In order to do so, we create a new dataframe which summaries for each day the information regarding each of these variables (TT, TD, GRAD1, NE, FF). Specifically, to summarise them in an informative and compact representation we generate new features (std, skewness, min, max, ...).\n",
"This method generates a large set of candidate features by combining information in the original features, with the aim of maximizing predictive performance."
]
},
{
"cell_type": "markdown",
"id": "b0b30fbf",
"metadata": {},
"source": [
"## Build a new dataframe for classification"
]
},
{
"cell_type": "markdown",
"id": "ffb4ae56",
"metadata": {},
"source": [
"Functions for feature generation:"
]
},
{
"cell_type": "code",
"execution_count": 61,
"id": "f9c29a30",
"metadata": {},
"outputs": [],
"source": [
"from scipy import stats \n",
"def mean(x):\n",
" return np.mean(x)\n",
"def std(x):\n",
" return np.std(x)\n",
"def ptp(x):\n",
" return np.ptp(x)\n",
"def variance(x):\n",
" return np.var(x)\n",
"def minim(x):\n",
" return np.min(x)\n",
"def maxim(x):\n",
" return np.max(x)\n",
"def argminim(x):\n",
" return np.argmin(x)\n",
"def argmaxim(x):\n",
" return np.argmax(x)\n",
"def rms(x):\n",
" return np.sqrt(np.mean(x**2))\n",
"def skewness(x):\n",
" return stats.skew(x)\n",
"def kurtosis(x):\n",
" return stats.kurtosis(x)\n",
"\n",
"def concatenate_features(x):\n",
" '''''''''\n",
" this function apply several functions defined above.\n",
" It takes as input a numpy array.\n",
" It outputs a vector with the value of each function: mean, std, ...\n",
" '''''''''\n",
" return mean(x),std(x),ptp(x),variance(x),minim(x),maxim(x),argminim(x),argmaxim(x),rms(x),skewness(x),kurtosis(x)"
]
},
{
"cell_type": "markdown",
"id": "d2df65ba",
"metadata": {},
"source": [
"Apply the concatenate_features function to each predictor and store the values in a dictionary."
]
},
{
"cell_type": "code",
"execution_count": 62,
"id": "686e8128",
"metadata": {},
"outputs": [],
"source": [
"variables = [\"RST\", \"TT\", \"TD\", \"GRAD1\", \"NE\", \"FF\"]\n",
"date_list = []\n",
"final_dic = {}\n",
"\n",
"for i in range(len(df)): # consider one row per time\n",
" \n",
" date = df[\"date\"][i]\n",
" date_list.append(date) # add date in the list\n",
" \n",
" # create empty list to collect mean, std, var, ... for a fixed predictor\n",
" gen_features = {}\n",
" \n",
" for var in variables: # for each variable (RST, TT, ...)\n",
" # create empty list to collect all the data in the 24 columns for a fixed variable\n",
" all_values = []\n",
" \n",
" for col in df.columns: # for each column\n",
" if col.split(\"_\")[0] == var: # if the var is in the column name, then:\n",
" \n",
" all_values.append(df[col][i])\n",
"\n",
" # add a list with the new features associated to the name of the var in a dictionary\n",
" gen_features[var] = concatenate_features(np.array(all_values))\n",
" \n",
" final_dic[date] = gen_features"
]
},
{
"cell_type": "markdown",
"id": "e3acb872",
"metadata": {},
"source": [
"Storing all the values in a new dataframe."
]
},
{
"cell_type": "code",
"execution_count": 63,
"id": "7698a628",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" \n",
" Date \n",
" RST_mean \n",
" TT_mean \n",
" TT_std \n",
" TT_ptp \n",
" TT_var \n",
" TT_minim \n",
" TT_maxim \n",
" TT_argminim \n",
" TT_argmaxim \n",
" ... \n",
" FF_std \n",
" FF_ptp \n",
" FF_var \n",
" FF_minim \n",
" FF_maxim \n",
" FF_argminim \n",
" FF_argmaxim \n",
" FF_rms \n",
" FF_skewness \n",
" FF_kurtosis \n",
" \n",
" \n",
" \n",
" \n",
" 0 \n",
" 2017-11-01 \n",
" 10.787500 \n",
" 11.800000 \n",
" 0.675771 \n",
" 2.4 \n",
" 0.456667 \n",
" 10.5 \n",
" 12.9 \n",
" 0.0 \n",
" 14.0 \n",
" ... \n",
" 3.291063 \n",
" 10.8 \n",
" 10.831094 \n",
" 11.3 \n",
" 22.1 \n",
" 0.0 \n",
" 21.0 \n",
" 17.008931 \n",
" -0.251824 \n",
" -1.224803 \n",
" \n",
" \n",
" 1 \n",
" 2017-11-02 \n",
" 9.579167 \n",
" 10.325000 \n",
" 0.812019 \n",
" 3.4 \n",
" 0.659375 \n",
" 8.5 \n",
" 11.9 \n",
" 23.0 \n",
" 12.0 \n",
" ... \n",
" 4.002133 \n",
" 14.1 \n",
" 16.017066 \n",
" 7.8 \n",
" 21.9 \n",
" 21.0 \n",
" 1.0 \n",
" 14.244604 \n",
" 0.421528 \n",
" -0.817587 \n",
" \n",
" \n",
" 2 \n",
" 2017-11-03 \n",
" 8.758333 \n",
" 8.683333 \n",
" 1.010225 \n",
" 3.9 \n",
" 1.020556 \n",
" 6.4 \n",
" 10.3 \n",
" 2.0 \n",
" 11.0 \n",
" ... \n",
" 2.067389 \n",
" 7.7 \n",
" 4.274097 \n",
" 4.7 \n",
" 12.4 \n",
" 5.0 \n",
" 21.0 \n",
" 9.291259 \n",
" -0.243920 \n",
" -0.896543 \n",
" \n",
" \n",
" 3 \n",
" 2017-11-04 \n",
" 9.583333 \n",
" 9.675000 \n",
" 0.600174 \n",
" 2.1 \n",
" 0.360208 \n",
" 8.9 \n",
" 11.0 \n",
" 7.0 \n",
" 13.0 \n",
" ... \n",
" 1.969838 \n",
" 7.2 \n",
" 3.880260 \n",
" 6.5 \n",
" 13.7 \n",
" 10.0 \n",
" 23.0 \n",
" 10.302568 \n",
" -0.136474 \n",
" -1.105156 \n",
" \n",
" \n",
" 4 \n",
" 2017-11-05 \n",
" 8.508333 \n",
" 9.133333 \n",
" 1.443279 \n",
" 4.8 \n",
" 2.083056 \n",
" 6.4 \n",
" 11.2 \n",
" 22.0 \n",
" 1.0 \n",
" ... \n",
" 2.477394 \n",
" 8.5 \n",
" 6.137483 \n",
" 5.2 \n",
" 13.7 \n",
" 21.0 \n",
" 1.0 \n",
" 8.641880 \n",
" 0.977124 \n",
" -0.182912 \n",
" \n",
" \n",
" ... \n",
" ... \n",
" ... \n",
" ... \n",
" ... \n",
" ... \n",
" ... \n",
" ... \n",
" ... \n",
" ... \n",
" ... \n",
" ... \n",
" ... \n",
" ... \n",
" ... \n",
" ... \n",
" ... \n",
" ... \n",
" ... \n",
" ... \n",
" ... \n",
" ... \n",
" \n",
" \n",
" 1010 \n",
" 2022-04-11 \n",
" 9.370833 \n",
" 5.045833 \n",
" 2.704006 \n",
" 7.8 \n",
" 7.311649 \n",
" 1.2 \n",
" 9.0 \n",
" 5.0 \n",
" 16.0 \n",
" ... \n",
" 1.925555 \n",
" 7.1 \n",
" 3.707760 \n",
" 2.5 \n",
" 9.6 \n",
" 21.0 \n",
" 11.0 \n",
" 6.575745 \n",
" -0.266277 \n",
" -0.512240 \n",
" \n",
" \n",
" 1011 \n",
" 2022-04-12 \n",
" 10.050000 \n",
" 6.166667 \n",
" 2.755852 \n",
" 8.2 \n",
" 7.594722 \n",
" 1.2 \n",
" 9.4 \n",
" 1.0 \n",
" 14.0 \n",
" ... \n",
" 3.996031 \n",
" 13.6 \n",
" 15.968264 \n",
" 4.0 \n",
" 17.6 \n",
" 0.0 \n",
" 18.0 \n",
" 13.512710 \n",
" -0.874238 \n",
" -0.375518 \n",
" \n",
" \n",
" 1012 \n",
" 2022-04-13 \n",
" 15.012500 \n",
" 10.404167 \n",
" 2.791576 \n",
" 8.4 \n",
" 7.792899 \n",
" 6.6 \n",
" 15.0 \n",
" 1.0 \n",
" 13.0 \n",
" ... \n",
" 2.202130 \n",
" 7.7 \n",
" 4.849375 \n",
" 5.7 \n",
" 13.4 \n",
" 19.0 \n",
" 0.0 \n",
" 9.435571 \n",
" 0.322618 \n",
" -0.817434 \n",
" \n",
" \n",
" 1013 \n",
" 2022-04-14 \n",
" 14.912500 \n",
" 9.583333 \n",
" 1.878090 \n",
" 6.0 \n",
" 3.527222 \n",
" 7.5 \n",
" 13.5 \n",
" 23.0 \n",
" 11.0 \n",
" ... \n",
" 3.059273 \n",
" 10.3 \n",
" 9.359149 \n",
" 5.7 \n",
" 16.0 \n",
" 2.0 \n",
" 15.0 \n",
" 11.301125 \n",
" 0.109536 \n",
" -1.170334 \n",
" \n",
" \n",
" 1014 \n",
" 2022-04-15 \n",
" 10.612500 \n",
" 7.075000 \n",
" 0.784883 \n",
" 2.5 \n",
" 0.616042 \n",
" 5.8 \n",
" 8.3 \n",
" 21.0 \n",
" 13.0 \n",
" ... \n",
" 2.179923 \n",
" 8.0 \n",
" 4.752066 \n",
" 3.8 \n",
" 11.8 \n",
" 23.0 \n",
" 11.0 \n",
" 8.456630 \n",
" 0.101002 \n",
" -0.677766 \n",
" \n",
" \n",
"
\n",
"
1015 rows × 57 columns
\n",
"
"
],
"text/plain": [
" Date RST_mean TT_mean TT_std TT_ptp TT_var TT_minim \\\n",
"0 2017-11-01 10.787500 11.800000 0.675771 2.4 0.456667 10.5 \n",
"1 2017-11-02 9.579167 10.325000 0.812019 3.4 0.659375 8.5 \n",
"2 2017-11-03 8.758333 8.683333 1.010225 3.9 1.020556 6.4 \n",
"3 2017-11-04 9.583333 9.675000 0.600174 2.1 0.360208 8.9 \n",
"4 2017-11-05 8.508333 9.133333 1.443279 4.8 2.083056 6.4 \n",
"... ... ... ... ... ... ... ... \n",
"1010 2022-04-11 9.370833 5.045833 2.704006 7.8 7.311649 1.2 \n",
"1011 2022-04-12 10.050000 6.166667 2.755852 8.2 7.594722 1.2 \n",
"1012 2022-04-13 15.012500 10.404167 2.791576 8.4 7.792899 6.6 \n",
"1013 2022-04-14 14.912500 9.583333 1.878090 6.0 3.527222 7.5 \n",
"1014 2022-04-15 10.612500 7.075000 0.784883 2.5 0.616042 5.8 \n",
"\n",
" TT_maxim TT_argminim TT_argmaxim ... FF_std FF_ptp FF_var \\\n",
"0 12.9 0.0 14.0 ... 3.291063 10.8 10.831094 \n",
"1 11.9 23.0 12.0 ... 4.002133 14.1 16.017066 \n",
"2 10.3 2.0 11.0 ... 2.067389 7.7 4.274097 \n",
"3 11.0 7.0 13.0 ... 1.969838 7.2 3.880260 \n",
"4 11.2 22.0 1.0 ... 2.477394 8.5 6.137483 \n",
"... ... ... ... ... ... ... ... \n",
"1010 9.0 5.0 16.0 ... 1.925555 7.1 3.707760 \n",
"1011 9.4 1.0 14.0 ... 3.996031 13.6 15.968264 \n",
"1012 15.0 1.0 13.0 ... 2.202130 7.7 4.849375 \n",
"1013 13.5 23.0 11.0 ... 3.059273 10.3 9.359149 \n",
"1014 8.3 21.0 13.0 ... 2.179923 8.0 4.752066 \n",
"\n",
" FF_minim FF_maxim FF_argminim FF_argmaxim FF_rms FF_skewness \\\n",
"0 11.3 22.1 0.0 21.0 17.008931 -0.251824 \n",
"1 7.8 21.9 21.0 1.0 14.244604 0.421528 \n",
"2 4.7 12.4 5.0 21.0 9.291259 -0.243920 \n",
"3 6.5 13.7 10.0 23.0 10.302568 -0.136474 \n",
"4 5.2 13.7 21.0 1.0 8.641880 0.977124 \n",
"... ... ... ... ... ... ... \n",
"1010 2.5 9.6 21.0 11.0 6.575745 -0.266277 \n",
"1011 4.0 17.6 0.0 18.0 13.512710 -0.874238 \n",
"1012 5.7 13.4 19.0 0.0 9.435571 0.322618 \n",
"1013 5.7 16.0 2.0 15.0 11.301125 0.109536 \n",
"1014 3.8 11.8 23.0 11.0 8.456630 0.101002 \n",
"\n",
" FF_kurtosis \n",
"0 -1.224803 \n",
"1 -0.817587 \n",
"2 -0.896543 \n",
"3 -1.105156 \n",
"4 -0.182912 \n",
"... ... \n",
"1010 -0.512240 \n",
"1011 -0.375518 \n",
"1012 -0.817434 \n",
"1013 -1.170334 \n",
"1014 -0.677766 \n",
"\n",
"[1015 rows x 57 columns]"
]
},
"execution_count": 63,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# create an empty dataframe\n",
"clas_df = pd.DataFrame()\n",
"\n",
"clas_df[\"Date\"] = date_list\n",
"\n",
"\n",
"functions = [\"mean\", \"std\", \"ptp\",\"var\",\"minim\",\"maxim\",\"argminim\",\"argmaxim\",\"rms\",\"skewness\",\"kurtosis\"] \n",
"\n",
"for i in range(len(clas_df)): # i indicates the row\n",
" \n",
" d = date_list[i]\n",
" \n",
" for var in variables: # for each variable\n",
" # RST is the response, so we don't need all the values but just the mean\n",
" if var == 'RST': \n",
" clas_df.at[i, var + \"_\" + functions[0]] = final_dic[d][var][0] \n",
" \n",
" else: \n",
" for j in range(11): \n",
"\n",
" # example: final_dic[pd.Timestamp('2017-11-01')]['RST'][0]\n",
" clas_df.at[i, var + \"_\" + functions[j]] = final_dic[d][var][j] \n",
" \n",
"clas_df"
]
},
{
"cell_type": "markdown",
"id": "7873f591",
"metadata": {},
"source": [
"\n",
"### Adding response variable\n",
"\n",
"0°C indicates the ice temperature, which is computed as a mean, so we consider a day risky if the temperature is lower than 4.78°C. Approximately 0°C+/-std(RST_mean). "
]
},
{
"cell_type": "code",
"execution_count": 64,
"id": "8282aed2",
"metadata": {},
"outputs": [],
"source": [
"def scale(x):\n",
" \"\"\"\n",
" classification of a value in Safe and Risky\n",
" \"\"\"\n",
" if x > 4.78 or x < -4.78:\n",
" return \"Safe\"\n",
" else:\n",
" return \"Risk\" "
]
},
{
"cell_type": "code",
"execution_count": 65,
"id": "5ea994d8",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" \n",
" Date \n",
" TT_mean \n",
" TT_std \n",
" TT_ptp \n",
" TT_var \n",
" TT_minim \n",
" TT_maxim \n",
" TT_argminim \n",
" TT_argmaxim \n",
" TT_rms \n",
" ... \n",
" FF_ptp \n",
" FF_var \n",
" FF_minim \n",
" FF_maxim \n",
" FF_argminim \n",
" FF_argmaxim \n",
" FF_rms \n",
" FF_skewness \n",
" FF_kurtosis \n",
" Y \n",
" \n",
" \n",
" \n",
" \n",
" 0 \n",
" 2017-11-01 \n",
" 11.800000 \n",
" 0.675771 \n",
" 2.4 \n",
" 0.456667 \n",
" 10.5 \n",
" 12.9 \n",
" 0.0 \n",
" 14.0 \n",
" 11.819334 \n",
" ... \n",
" 10.8 \n",
" 10.831094 \n",
" 11.3 \n",
" 22.1 \n",
" 0.0 \n",
" 21.0 \n",
" 17.008931 \n",
" -0.251824 \n",
" -1.224803 \n",
" Safe \n",
" \n",
" \n",
" 1 \n",
" 2017-11-02 \n",
" 10.325000 \n",
" 0.812019 \n",
" 3.4 \n",
" 0.659375 \n",
" 8.5 \n",
" 11.9 \n",
" 23.0 \n",
" 12.0 \n",
" 10.356882 \n",
" ... \n",
" 14.1 \n",
" 16.017066 \n",
" 7.8 \n",
" 21.9 \n",
" 21.0 \n",
" 1.0 \n",
" 14.244604 \n",
" 0.421528 \n",
" -0.817587 \n",
" Safe \n",
" \n",
" \n",
" 2 \n",
" 2017-11-03 \n",
" 8.683333 \n",
" 1.010225 \n",
" 3.9 \n",
" 1.020556 \n",
" 6.4 \n",
" 10.3 \n",
" 2.0 \n",
" 11.0 \n",
" 8.741901 \n",
" ... \n",
" 7.7 \n",
" 4.274097 \n",
" 4.7 \n",
" 12.4 \n",
" 5.0 \n",
" 21.0 \n",
" 9.291259 \n",
" -0.243920 \n",
" -0.896543 \n",
" Safe \n",
" \n",
" \n",
" 3 \n",
" 2017-11-04 \n",
" 9.675000 \n",
" 0.600174 \n",
" 2.1 \n",
" 0.360208 \n",
" 8.9 \n",
" 11.0 \n",
" 7.0 \n",
" 13.0 \n",
" 9.693598 \n",
" ... \n",
" 7.2 \n",
" 3.880260 \n",
" 6.5 \n",
" 13.7 \n",
" 10.0 \n",
" 23.0 \n",
" 10.302568 \n",
" -0.136474 \n",
" -1.105156 \n",
" Safe \n",
" \n",
" \n",
" 4 \n",
" 2017-11-05 \n",
" 9.133333 \n",
" 1.443279 \n",
" 4.8 \n",
" 2.083056 \n",
" 6.4 \n",
" 11.2 \n",
" 22.0 \n",
" 1.0 \n",
" 9.246666 \n",
" ... \n",
" 8.5 \n",
" 6.137483 \n",
" 5.2 \n",
" 13.7 \n",
" 21.0 \n",
" 1.0 \n",
" 8.641880 \n",
" 0.977124 \n",
" -0.182912 \n",
" Safe \n",
" \n",
" \n",
" ... \n",
" ... \n",
" ... \n",
" ... \n",
" ... \n",
" ... \n",
" ... \n",
" ... \n",
" ... \n",
" ... \n",
" ... \n",
" ... \n",
" ... \n",
" ... \n",
" ... \n",
" ... \n",
" ... \n",
" ... \n",
" ... \n",
" ... \n",
" ... \n",
" ... \n",
" \n",
" \n",
" 1010 \n",
" 2022-04-11 \n",
" 5.045833 \n",
" 2.704006 \n",
" 7.8 \n",
" 7.311649 \n",
" 1.2 \n",
" 9.0 \n",
" 5.0 \n",
" 16.0 \n",
" 5.724691 \n",
" ... \n",
" 7.1 \n",
" 3.707760 \n",
" 2.5 \n",
" 9.6 \n",
" 21.0 \n",
" 11.0 \n",
" 6.575745 \n",
" -0.266277 \n",
" -0.512240 \n",
" Safe \n",
" \n",
" \n",
" 1011 \n",
" 2022-04-12 \n",
" 6.166667 \n",
" 2.755852 \n",
" 8.2 \n",
" 7.594722 \n",
" 1.2 \n",
" 9.4 \n",
" 1.0 \n",
" 14.0 \n",
" 6.754443 \n",
" ... \n",
" 13.6 \n",
" 15.968264 \n",
" 4.0 \n",
" 17.6 \n",
" 0.0 \n",
" 18.0 \n",
" 13.512710 \n",
" -0.874238 \n",
" -0.375518 \n",
" Safe \n",
" \n",
" \n",
" 1012 \n",
" 2022-04-13 \n",
" 10.404167 \n",
" 2.791576 \n",
" 8.4 \n",
" 7.792899 \n",
" 6.6 \n",
" 15.0 \n",
" 1.0 \n",
" 13.0 \n",
" 10.772167 \n",
" ... \n",
" 7.7 \n",
" 4.849375 \n",
" 5.7 \n",
" 13.4 \n",
" 19.0 \n",
" 0.0 \n",
" 9.435571 \n",
" 0.322618 \n",
" -0.817434 \n",
" Safe \n",
" \n",
" \n",
" 1013 \n",
" 2022-04-14 \n",
" 9.583333 \n",
" 1.878090 \n",
" 6.0 \n",
" 3.527222 \n",
" 7.5 \n",
" 13.5 \n",
" 23.0 \n",
" 11.0 \n",
" 9.765628 \n",
" ... \n",
" 10.3 \n",
" 9.359149 \n",
" 5.7 \n",
" 16.0 \n",
" 2.0 \n",
" 15.0 \n",
" 11.301125 \n",
" 0.109536 \n",
" -1.170334 \n",
" Safe \n",
" \n",
" \n",
" 1014 \n",
" 2022-04-15 \n",
" 7.075000 \n",
" 0.784883 \n",
" 2.5 \n",
" 0.616042 \n",
" 5.8 \n",
" 8.3 \n",
" 21.0 \n",
" 13.0 \n",
" 7.118403 \n",
" ... \n",
" 8.0 \n",
" 4.752066 \n",
" 3.8 \n",
" 11.8 \n",
" 23.0 \n",
" 11.0 \n",
" 8.456630 \n",
" 0.101002 \n",
" -0.677766 \n",
" Safe \n",
" \n",
" \n",
"
\n",
"
1015 rows × 57 columns
\n",
"
"
],
"text/plain": [
" Date TT_mean TT_std TT_ptp TT_var TT_minim TT_maxim \\\n",
"0 2017-11-01 11.800000 0.675771 2.4 0.456667 10.5 12.9 \n",
"1 2017-11-02 10.325000 0.812019 3.4 0.659375 8.5 11.9 \n",
"2 2017-11-03 8.683333 1.010225 3.9 1.020556 6.4 10.3 \n",
"3 2017-11-04 9.675000 0.600174 2.1 0.360208 8.9 11.0 \n",
"4 2017-11-05 9.133333 1.443279 4.8 2.083056 6.4 11.2 \n",
"... ... ... ... ... ... ... ... \n",
"1010 2022-04-11 5.045833 2.704006 7.8 7.311649 1.2 9.0 \n",
"1011 2022-04-12 6.166667 2.755852 8.2 7.594722 1.2 9.4 \n",
"1012 2022-04-13 10.404167 2.791576 8.4 7.792899 6.6 15.0 \n",
"1013 2022-04-14 9.583333 1.878090 6.0 3.527222 7.5 13.5 \n",
"1014 2022-04-15 7.075000 0.784883 2.5 0.616042 5.8 8.3 \n",
"\n",
" TT_argminim TT_argmaxim TT_rms ... FF_ptp FF_var FF_minim \\\n",
"0 0.0 14.0 11.819334 ... 10.8 10.831094 11.3 \n",
"1 23.0 12.0 10.356882 ... 14.1 16.017066 7.8 \n",
"2 2.0 11.0 8.741901 ... 7.7 4.274097 4.7 \n",
"3 7.0 13.0 9.693598 ... 7.2 3.880260 6.5 \n",
"4 22.0 1.0 9.246666 ... 8.5 6.137483 5.2 \n",
"... ... ... ... ... ... ... ... \n",
"1010 5.0 16.0 5.724691 ... 7.1 3.707760 2.5 \n",
"1011 1.0 14.0 6.754443 ... 13.6 15.968264 4.0 \n",
"1012 1.0 13.0 10.772167 ... 7.7 4.849375 5.7 \n",
"1013 23.0 11.0 9.765628 ... 10.3 9.359149 5.7 \n",
"1014 21.0 13.0 7.118403 ... 8.0 4.752066 3.8 \n",
"\n",
" FF_maxim FF_argminim FF_argmaxim FF_rms FF_skewness FF_kurtosis \\\n",
"0 22.1 0.0 21.0 17.008931 -0.251824 -1.224803 \n",
"1 21.9 21.0 1.0 14.244604 0.421528 -0.817587 \n",
"2 12.4 5.0 21.0 9.291259 -0.243920 -0.896543 \n",
"3 13.7 10.0 23.0 10.302568 -0.136474 -1.105156 \n",
"4 13.7 21.0 1.0 8.641880 0.977124 -0.182912 \n",
"... ... ... ... ... ... ... \n",
"1010 9.6 21.0 11.0 6.575745 -0.266277 -0.512240 \n",
"1011 17.6 0.0 18.0 13.512710 -0.874238 -0.375518 \n",
"1012 13.4 19.0 0.0 9.435571 0.322618 -0.817434 \n",
"1013 16.0 2.0 15.0 11.301125 0.109536 -1.170334 \n",
"1014 11.8 23.0 11.0 8.456630 0.101002 -0.677766 \n",
"\n",
" Y \n",
"0 Safe \n",
"1 Safe \n",
"2 Safe \n",
"3 Safe \n",
"4 Safe \n",
"... ... \n",
"1010 Safe \n",
"1011 Safe \n",
"1012 Safe \n",
"1013 Safe \n",
"1014 Safe \n",
"\n",
"[1015 rows x 57 columns]"
]
},
"execution_count": 65,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"clas_df['Y'] = clas_df[\"RST_mean\"].apply(scale)\n",
"clas_df = clas_df.drop([\"RST_mean\"], axis=1)\n",
"clas_df"
]
},
{
"cell_type": "markdown",
"id": "c9b35e0b",
"metadata": {},
"source": [
"## Pre processing"
]
},
{
"cell_type": "markdown",
"id": "d82978c6",
"metadata": {},
"source": [
"### Split in train and test sets"
]
},
{
"cell_type": "code",
"execution_count": 66,
"id": "8ca69cff",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The shape of X_train is: (812, 55)\n",
"The shape of X_test is: (203, 55)\n",
"\n",
"The shape of y_train is: (812,)\n",
"The shape of y_test is: (203,)\n"
]
}
],
"source": [
"y = clas_df['Y']\n",
"X = clas_df.drop([\"Y\", \"Date\"], axis=1)\n",
"X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.20, random_state = 42)\n",
"\n",
"print(\"The shape of X_train is:\", X_train.shape)\n",
"print(\"The shape of X_test is:\", X_test.shape)\n",
"print('')\n",
"print(\"The shape of y_train is:\", y_train.shape)\n",
"print(\"The shape of y_test is:\", y_test.shape)"
]
},
{
"cell_type": "markdown",
"id": "c80dd6e3",
"metadata": {},
"source": [
"### Feature scaling"
]
},
{
"cell_type": "markdown",
"id": "04137a52",
"metadata": {},
"source": [
"Coding the response variable in 0 and 1 (1=Risk)"
]
},
{
"cell_type": "code",
"execution_count": 67,
"id": "c22bb21a",
"metadata": {
"scrolled": false
},
"outputs": [
{
"data": {
"text/plain": [
"array([1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1,\n",
" 0, 1, 0, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 0, 0, 1, 0, 1, 1, 1, 1,\n",
" 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1,\n",
" 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0,\n",
" 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0, 1, 1, 0, 1, 1, 0, 0, 1, 0, 0,\n",
" 1, 1, 1, 0, 1, 1, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1,\n",
" 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0,\n",
" 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 1,\n",
" 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0,\n",
" 1, 1, 1, 0, 1])"
]
},
"execution_count": 67,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"#For label data (y) always use LabelEncoder\n",
"LaEnc = LabelEncoder()\n",
"y_train = LaEnc.fit_transform(y_train)\n",
"y_train\n",
"\n",
"y_test = LaEnc.transform(y_test)\n",
"y_test"
]
},
{
"cell_type": "code",
"execution_count": 68,
"id": "c1e16d2a",
"metadata": {
"scrolled": true
},
"outputs": [
{
"data": {
"text/plain": [
"Safe 612\n",
"Risk 403\n",
"Name: Y, dtype: int64"
]
},
"execution_count": 68,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"clas_df['Y'].value_counts()"
]
},
{
"cell_type": "markdown",
"id": "132014b9",
"metadata": {},
"source": [
"The dataset is balanced, the classes are similar in terms of occurrence."
]
},
{
"cell_type": "code",
"execution_count": 69,
"id": "7188c265",
"metadata": {},
"outputs": [],
"source": [
"sc = StandardScaler()\n",
"X_train = sc.fit_transform(X_train)\n",
"X_test = sc.transform(X_test)"
]
},
{
"cell_type": "markdown",
"id": "277440d4",
"metadata": {},
"source": [
"## Classification analysis"
]
},
{
"cell_type": "markdown",
"id": "6d5bdaa6",
"metadata": {},
"source": [
"We fit different models to find the one that could be used in future to early detect a cold day. \n",
"\n",
"A good classifier has minimum test error rate, which is measured by:\n",
"\n",
"$ {ER = \\frac{1}{n}\\sum\\limits_{i=1}^n I(y_i \\neq \\hat{y_i} )} $\n",
"\n",
"This error rate can be easily computed summing the elements on the second diagonal in the confusion matrix divided by the total number of observations in the table.\n",
"\n",
"The accuracy is equal to $ acc = 1 - ER $ , or also the sum of the elements on the first diagonal of the confusion matrix, divided by n. \n",
"\n",
"$ acc = \\frac{TP + TN}{P + N} $\n",
"\n",
"There are other interesting measures like the precision, which is a measure of exactness and the recall, which measures the completeness. "
]
},
{
"cell_type": "markdown",
"id": "ed127e9c",
"metadata": {},
"source": [
"### Logistic regression classifier"
]
},
{
"cell_type": "markdown",
"id": "2ebccf38",
"metadata": {},
"source": [
"Logistic regression models the probability that Y belongs to a particular category h using the logistic function. $ P(Y=h | X=x)=p(x)= \\frac{exp(\\beta_0 + \\beta_1x)}{1+exp(\\beta_0 + \\beta_1x)} $\n",
"\n"
]
},
{
"cell_type": "code",
"execution_count": 70,
"id": "fbb4729a",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[[ 76 5]\n",
" [ 8 114]]\n",
"Accuracy of logistic regression = 93.6 %\n"
]
}
],
"source": [
"LogitReg = LogisticRegression(max_iter = 10000000000000000) # add maximum iteration\n",
"LogitReg.fit(X_train, y_train)\n",
"\n",
"y_pred=LogitReg.predict(X_test)\n",
"\n",
"cm = confusion_matrix(y_test, y_pred)\n",
"print(cm)\n",
"print(\"Accuracy of logistic regression =\", round(accuracy_score(y_test, y_pred)*100,2), \"%\")"
]
},
{
"cell_type": "markdown",
"id": "d0a28917",
"metadata": {},
"source": [
"### KNN"
]
},
{
"cell_type": "markdown",
"id": "7025656d",
"metadata": {},
"source": [
"K-Nearest-Neighbor classifier first identifies the neighbors K points in the training data that are closest (in distance) to the point x0. \n",
"\n",
"Then it estimates the conditional probability for class h as the fraction of points in these group whose response values equal h:\n",
"\n",
"$ {P(Y=h | X=x_0) = \\frac{1}{K}\\sum\\limits_{i=1}^K I(y_i = h)} $\n",
"\n",
"Finally, KNN applyes the Bayes rule and classifies the test observation x0 to the class with the largest probability. "
]
},
{
"cell_type": "code",
"execution_count": 71,
"id": "a325c87a",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Confusion Matrix\n",
"[[ 66 15]\n",
" [ 22 100]]\n",
"\n",
"\n",
"Accuracy of KNN: 81.77 \n",
"\n"
]
}
],
"source": [
"KNNclassifier = KNeighborsClassifier(n_neighbors = 3, metric = 'euclidean', p = 2)\n",
"KNNclassifier.fit(X_train, y_train)\n",
"\n",
"y_pred = KNNclassifier.predict(X_test)\n",
"\n",
"cm = confusion_matrix(y_test, y_pred)\n",
"acc = accuracy_score(y_test, y_pred)\n",
"print('Confusion Matrix')\n",
"print(cm)\n",
"print(\"\\n\")\n",
"print(\"Accuracy of KNN:\", round(acc*100,2),'\\n')"
]
},
{
"cell_type": "markdown",
"id": "4879d3f9",
"metadata": {},
"source": [
"We decided to use as metric to measure the distance between points the euclidean distance and K=3, but it does not mean that this is the best K."
]
},
{
"cell_type": "markdown",
"id": "ddc57364",
"metadata": {},
"source": [
"### SVM linear"
]
},
{
"cell_type": "markdown",
"id": "7356aedf",
"metadata": {},
"source": [
"The support vector classifier is called also soft margin classifier. 'Soft' comes from the fact that hyperplane does not perfectly separate the two classes, accepting some errors. The advantage is that it is robust to individual observations. "
]
},
{
"cell_type": "code",
"execution_count": 72,
"id": "3747da56",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Confusion Matrix\n",
"[[ 78 3]\n",
" [ 9 113]]\n",
"\n",
"\n",
"Accuracy of SVM linear: 94.09 \n",
"\n"
]
}
],
"source": [
"SVMclassifier = SVC(kernel = 'linear', random_state = 1)\n",
"SVMclassifier.fit(X_train, y_train)\n",
"\n",
"y_pred = SVMclassifier.predict(X_test)\n",
"\n",
"cm = confusion_matrix(y_test, y_pred)\n",
"acc = accuracy_score(y_test, y_pred)\n",
"print('Confusion Matrix')\n",
"print(cm)\n",
"print(\"\\n\")\n",
"print(\"Accuracy of SVM linear:\", round(acc*100,2),'\\n')"
]
},
{
"cell_type": "markdown",
"id": "98e111b8",
"metadata": {},
"source": [
"### SVM non linear"
]
},
{
"cell_type": "markdown",
"id": "7dc7063b",
"metadata": {},
"source": [
"The support vector machines are extension of the support vector classifier, resulting from enlarging the feature space using kernels. \n",
"\n",
"The idea behind it is to accomodate a non linear boundary. "
]
},
{
"cell_type": "code",
"execution_count": 73,
"id": "868dc0b9",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Confusion Matrix\n",
"[[ 70 11]\n",
" [ 8 114]]\n",
"\n",
"\n",
"Accuracy of SVM rbf: 90.64 \n",
"\n"
]
}
],
"source": [
"SVMclassifier = SVC(kernel = 'rbf', random_state = 1)\n",
"SVMclassifier.fit(X_train, y_train)\n",
"\n",
"y_pred = SVMclassifier.predict(X_test)\n",
"\n",
"cm = confusion_matrix(y_test, y_pred)\n",
"acc = accuracy_score(y_test, y_pred)\n",
"print('Confusion Matrix')\n",
"print(cm)\n",
"print(\"\\n\")\n",
"print(\"Accuracy of SVM rbf:\", round(acc*100,2),'\\n')"
]
},
{
"cell_type": "markdown",
"id": "051156ee",
"metadata": {},
"source": [
"### Naive bayes classifier"
]
},
{
"cell_type": "markdown",
"id": "797f74d6",
"metadata": {},
"source": [
"The Naive bayes classifier is a technique that assumes that the features $X_k$ are independent for a given class Y=h :\n",
"$ f_h(X) = {\\prod\\limits_{j=1}^p f_{hj}(X_j)} $"
]
},
{
"cell_type": "code",
"execution_count": 74,
"id": "19a13987",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Confusion Matrix\n",
"[[ 73 8]\n",
" [ 15 107]]\n",
"\n",
"\n",
"Accuracy of Naive bayes Classifier: 88.67 \n",
"\n"
]
}
],
"source": [
"NBclassifier = GaussianNB()\n",
"NBclassifier.fit(X_train, y_train)\n",
"\n",
"y_pred = NBclassifier.predict(X_test)\n",
"\n",
"cm = confusion_matrix(y_test, y_pred)\n",
"acc = accuracy_score(y_test, y_pred)\n",
"print('Confusion Matrix')\n",
"print(cm)\n",
"print(\"\\n\")\n",
"print(\"Accuracy of Naive bayes Classifier:\", round(acc*100,2),'\\n')"
]
},
{
"cell_type": "markdown",
"id": "49502959",
"metadata": {},
"source": [
"### Decision tree"
]
},
{
"cell_type": "markdown",
"id": "3bc5f2f8",
"metadata": {},
"source": [
"Classification trees stratifies the predictor space into a number of simple regions according to splitting rules. \n",
"\n",
"The approach is top down since it begins at the top of the tree and then successively splits the predictor space and it is called recursive binary splitting. \n",
"\n",
"Each observation is allocated to the most commonly occurring class of training observations in the region to which it belongs. "
]
},
{
"cell_type": "code",
"execution_count": 75,
"id": "681fb78b",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Confusion Matrix\n",
"[[ 71 10]\n",
" [ 13 109]]\n",
"\n",
"\n",
"Accuracy of decision tree: 88.67 \n",
"\n"
]
}
],
"source": [
"Treeclassifier = DecisionTreeClassifier(criterion = 'entropy', random_state = 1)\n",
"Treeclassifier.fit(X_train, y_train)\n",
"\n",
"y_pred = Treeclassifier.predict(X_test)\n",
"\n",
"cm = confusion_matrix(y_test, y_pred)\n",
"acc = accuracy_score(y_test, y_pred)\n",
"print('Confusion Matrix')\n",
"print(cm)\n",
"print(\"\\n\")\n",
"print(\"Accuracy of decision tree:\", round(acc*100,2),'\\n')"
]
},
{
"cell_type": "markdown",
"id": "e067897c",
"metadata": {},
"source": [
"### Random forest"
]
},
{
"cell_type": "markdown",
"id": "5a91aef5",
"metadata": {},
"source": [
"Random forest is an improvment over bagging by decorrelating trees. \n",
"\n",
"Firstly, it generate B samples from the training set using bootstrap. \n",
"Then, train the tree on each b-th bootstrapped training, but before each split only m predictors are considered as split candidates.\n",
"Finally, it average all the predictors"
]
},
{
"cell_type": "code",
"execution_count": 76,
"id": "3a024e7e",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Confusion Matrix\n",
"[[ 75 6]\n",
" [ 11 111]]\n",
"\n",
"\n",
"Accuracy of random forest: 91.63 \n",
"\n"
]
}
],
"source": [
"Forestclassifier = RandomForestClassifier(n_estimators = 10, criterion = 'entropy', random_state = 1)\n",
"Forestclassifier.fit(X_train, y_train)\n",
"\n",
"y_pred = Forestclassifier.predict(X_test)\n",
"\n",
"cm = confusion_matrix(y_test, y_pred)\n",
"acc = accuracy_score(y_test, y_pred)\n",
"print('Confusion Matrix')\n",
"print(cm)\n",
"print(\"\\n\")\n",
"print(\"Accuracy of random forest:\", round(acc*100,2),'\\n')"
]
},
{
"cell_type": "markdown",
"id": "1d09ca63",
"metadata": {},
"source": [
"We decided to use the entropy as criterion to for making the binary split since it turns out that classification error is not sufficiently sensitive for tree growing. An other alternative could have been the Gini index.\n",
"\n",
"$ D = -{\\sum\\limits_{k=1}^K \\hat{p}_{mk}log(\\hat{p}_{mk})} $"
]
},
{
"cell_type": "markdown",
"id": "e074cca3",
"metadata": {},
"source": [
"### Ada boost"
]
},
{
"cell_type": "markdown",
"id": "3b575077",
"metadata": {},
"source": [
"Ada Boost procedure trains the classifiers on weighted versions of the training sample, giving higher weight to cases that are currently miscalssified, then the final classifier is a linear combination of the classifier from each stage. \n",
"\n",
"Each successive classifier is forced to concentrate on those training observations that are missed by previous one in the sequence.\n",
"\n",
"Below we are going to find the best Ada Boost Classifier between some possible classifier choosing the best values for the learning rate and the number of estimator from a grid of possible values."
]
},
{
"cell_type": "code",
"execution_count": 77,
"id": "ab22fdef",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Wall time: 1min 26s\n",
"Best: 0.923634 using {'learning_rate': 0.45, 'n_estimators': 175}\n",
"0.860849 (0.009035) with: {'learning_rate': 0.01, 'n_estimators': 50}\n",
"0.859619 (0.008844) with: {'learning_rate': 0.01, 'n_estimators': 75}\n",
"0.867013 (0.013652) with: {'learning_rate': 0.01, 'n_estimators': 100}\n",
"0.874398 (0.007775) with: {'learning_rate': 0.01, 'n_estimators': 125}\n",
"0.869473 (0.009010) with: {'learning_rate': 0.01, 'n_estimators': 150}\n",
"0.875637 (0.013419) with: {'learning_rate': 0.01, 'n_estimators': 175}\n",
"0.883030 (0.014696) with: {'learning_rate': 0.01, 'n_estimators': 200}\n",
"0.902724 (0.014776) with: {'learning_rate': 0.12, 'n_estimators': 50}\n",
"0.902724 (0.017321) with: {'learning_rate': 0.12, 'n_estimators': 75}\n",
"0.900260 (0.018261) with: {'learning_rate': 0.12, 'n_estimators': 100}\n",
"0.910113 (0.012450) with: {'learning_rate': 0.12, 'n_estimators': 125}\n",
"0.908879 (0.016535) with: {'learning_rate': 0.12, 'n_estimators': 150}\n",
"0.908874 (0.017095) with: {'learning_rate': 0.12, 'n_estimators': 175}\n",
"0.910104 (0.018382) with: {'learning_rate': 0.12, 'n_estimators': 200}\n",
"0.905184 (0.009093) with: {'learning_rate': 0.23, 'n_estimators': 50}\n",
"0.908879 (0.011321) with: {'learning_rate': 0.23, 'n_estimators': 75}\n",
"0.910104 (0.009633) with: {'learning_rate': 0.23, 'n_estimators': 100}\n",
"0.913790 (0.006316) with: {'learning_rate': 0.23, 'n_estimators': 125}\n",
"0.913794 (0.010570) with: {'learning_rate': 0.23, 'n_estimators': 150}\n",
"0.916259 (0.009179) with: {'learning_rate': 0.23, 'n_estimators': 175}\n",
"0.915020 (0.008023) with: {'learning_rate': 0.23, 'n_estimators': 200}\n",
"0.907644 (0.013075) with: {'learning_rate': 0.34, 'n_estimators': 50}\n",
"0.912564 (0.015148) with: {'learning_rate': 0.34, 'n_estimators': 75}\n",
"0.913799 (0.012505) with: {'learning_rate': 0.34, 'n_estimators': 100}\n",
"0.912573 (0.016537) with: {'learning_rate': 0.34, 'n_estimators': 125}\n",
"0.913794 (0.010570) with: {'learning_rate': 0.34, 'n_estimators': 150}\n",
"0.916250 (0.009742) with: {'learning_rate': 0.34, 'n_estimators': 175}\n",
"0.912560 (0.013597) with: {'learning_rate': 0.34, 'n_estimators': 200}\n",
"0.908870 (0.012155) with: {'learning_rate': 0.45, 'n_estimators': 50}\n",
"0.911325 (0.010903) with: {'learning_rate': 0.45, 'n_estimators': 75}\n",
"0.917489 (0.004578) with: {'learning_rate': 0.45, 'n_estimators': 100}\n",
"0.910095 (0.012201) with: {'learning_rate': 0.45, 'n_estimators': 125}\n",
"0.918719 (0.009040) with: {'learning_rate': 0.45, 'n_estimators': 150}\n",
"0.923634 (0.009779) with: {'learning_rate': 0.45, 'n_estimators': 175}\n",
"0.923634 (0.009779) with: {'learning_rate': 0.45, 'n_estimators': 200}\n",
"0.911334 (0.007924) with: {'learning_rate': 0.56, 'n_estimators': 50}\n",
"0.911339 (0.013077) with: {'learning_rate': 0.56, 'n_estimators': 75}\n",
"0.913803 (0.012109) with: {'learning_rate': 0.56, 'n_estimators': 100}\n",
"0.910095 (0.006318) with: {'learning_rate': 0.56, 'n_estimators': 125}\n",
"0.919958 (0.008634) with: {'learning_rate': 0.56, 'n_estimators': 150}\n",
"0.915020 (0.003148) with: {'learning_rate': 0.56, 'n_estimators': 175}\n",
"0.912555 (0.007040) with: {'learning_rate': 0.56, 'n_estimators': 200}\n",
"0.906419 (0.017325) with: {'learning_rate': 0.67, 'n_estimators': 50}\n",
"0.918714 (0.008021) with: {'learning_rate': 0.67, 'n_estimators': 75}\n",
"0.919954 (0.006236) with: {'learning_rate': 0.67, 'n_estimators': 100}\n",
"0.916259 (0.009179) with: {'learning_rate': 0.67, 'n_estimators': 125}\n",
"0.918714 (0.008021) with: {'learning_rate': 0.67, 'n_estimators': 150}\n",
"0.915015 (0.013198) with: {'learning_rate': 0.67, 'n_estimators': 175}\n",
"0.913781 (0.009332) with: {'learning_rate': 0.67, 'n_estimators': 200}\n",
"0.903936 (0.005308) with: {'learning_rate': 0.78, 'n_estimators': 50}\n",
"0.912564 (0.009178) with: {'learning_rate': 0.78, 'n_estimators': 75}\n",
"0.908874 (0.014194) with: {'learning_rate': 0.78, 'n_estimators': 100}\n",
"0.913799 (0.009635) with: {'learning_rate': 0.78, 'n_estimators': 125}\n",
"0.910091 (0.006389) with: {'learning_rate': 0.78, 'n_estimators': 150}\n",
"0.912560 (0.010595) with: {'learning_rate': 0.78, 'n_estimators': 175}\n",
"0.913785 (0.011469) with: {'learning_rate': 0.78, 'n_estimators': 200}\n",
"0.913785 (0.006385) with: {'learning_rate': 0.89, 'n_estimators': 50}\n",
"0.903931 (0.010528) with: {'learning_rate': 0.89, 'n_estimators': 75}\n",
"0.908852 (0.010730) with: {'learning_rate': 0.89, 'n_estimators': 100}\n",
"0.905157 (0.009381) with: {'learning_rate': 0.89, 'n_estimators': 125}\n",
"0.910082 (0.014360) with: {'learning_rate': 0.89, 'n_estimators': 150}\n",
"0.910082 (0.012319) with: {'learning_rate': 0.89, 'n_estimators': 175}\n",
"0.911316 (0.008142) with: {'learning_rate': 0.89, 'n_estimators': 200}\n",
"0.902711 (0.004574) with: {'learning_rate': 1.0, 'n_estimators': 50}\n",
"0.911325 (0.010903) with: {'learning_rate': 1.0, 'n_estimators': 75}\n",
"0.910091 (0.014290) with: {'learning_rate': 1.0, 'n_estimators': 100}\n",
"0.917466 (0.012713) with: {'learning_rate': 1.0, 'n_estimators': 125}\n",
"0.917471 (0.009851) with: {'learning_rate': 1.0, 'n_estimators': 150}\n",
"0.912537 (0.014103) with: {'learning_rate': 1.0, 'n_estimators': 175}\n",
"0.912537 (0.016751) with: {'learning_rate': 1.0, 'n_estimators': 200}\n"
]
}
],
"source": [
"n_estimators =[int(x) for x in np.linspace(start = 50, stop = 200, num =7)]\n",
"learning_rate =[float(x) for x in np.linspace(start = 0.01, stop = 1, num =10)]\n",
"\n",
"param_grid = {'n_estimators':n_estimators,\n",
" 'learning_rate':learning_rate}\n",
"\n",
"ada=AdaBoostClassifier()\n",
"\n",
"grid_ada = GridSearchCV(estimator = ada, param_grid=param_grid, cv=3)\n",
"\n",
"%time grid_ada_result = grid_ada.fit(X_train,y_train)\n",
"\n",
"# summarize results\n",
"print(\"Best: %f using %s\" % (grid_ada_result.best_score_, grid_ada_result.best_params_))\n",
"means = grid_ada_result.cv_results_['mean_test_score']\n",
"stds = grid_ada_result.cv_results_['std_test_score']\n",
"params = grid_ada_result.cv_results_['params']\n",
"for mean, stdev, param in zip(means, stds, params):\n",
" print(\"%f (%f) with: %r\" % (mean, stdev, param))"
]
},
{
"cell_type": "code",
"execution_count": 78,
"id": "aec0bf8f",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Confusion Matrix\n",
"[[ 73 8]\n",
" [ 10 112]]\n",
"\n",
"\n",
"Accuracy of Adaboost: 91.13 \n",
"\n"
]
}
],
"source": [
"#results on the test set for the best model\n",
"best_model_ada = grid_ada.best_estimator_\n",
"y_pred = best_model_ada.predict(X_test)\n",
"conf_matrix = confusion_matrix(y_test, y_pred)\n",
"ada_acc = accuracy_score(y_test, y_pred)\n",
"print('Confusion Matrix')\n",
"print(conf_matrix)\n",
"print(\"\\n\")\n",
"print(\"Accuracy of Adaboost:\",round(ada_acc*100,2),'\\n')"
]
},
{
"cell_type": "code",
"execution_count": 79,
"id": "adf02faa",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAACFkAAAIaCAYAAADxmwABAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAAAsTAAALEwEAmpwYAAEAAElEQVR4nOzdd3gUVf/+8XvTExJKSCGBBJIAoYTeuw2RpoiAioIiiFR9UCzwtSAIgqJIUUBFkCrSpRcpQZAmvZtIIPTQSSF1f3/425VIEpLNJtng+3Vdz/XInDNz7pmdbJvPnjEYjUajAAAAAAAAAAAAAAAAkCW7gg4AAAAAAAAAAAAAAABQGFBkAQAAAAAAAAAAAAAAkA0UWQAAAAAAAAAAAAAAAGQDRRYAAAAAAAAAAAAAAADZQJEFAAAAAAAAAAAAAABANlBkAQAAAAAAAAAAAAAAkA0UWQAAAAAAYEVnz55VaGhohv+rVKmSqlevrubNm6tv377asGFDQceVJJ08edKc8W7vvfeeQkNDNWbMmFyPceXKFd26dSvX28lP3bp1U2hoqGbPnl3QUfJVZGRkQUcAAAAAAMBmORR0AAAAAAAAHlRhYWFycnIy/9toNCopKUlnz57Vxo0btXHjRnXt2lUfffRRAabMezNmzNDEiRM1b948FS1atKDjIBMxMTEaOXKkoqOjtWjRooKOAwAAAACATaLIAgAAAACAPDJ+/HiVKVPmnuXJycmaNGmSpkyZorlz56pZs2Z65JFHCiBh1t588029+uqrKlGiRK628+mnn1opUf4aM2aMEhIS5O3tXdBR8sXWrVu1evVqVa1ataCjAAAAAABgs7hdCAAAAAAA+czR0VGDBg1SrVq1JElz584t4EQZ8/HxUUhIiDw9PQs6SoHw9/dXSEgIs28AAAAAAAAziiwAAAAAACggDz/8sCTp0KFDBZwEAAAAAAAA2UGRBQAAAAAABcTd3V2SFBcXZ142ceJEhYaGatq0aZo7d66aN2+u6tWrq127djp9+rS5X3R0tD788EM98sgjCgsLU4MGDfTaa6/p999/z3S8mJgYjRo1So8++qiqV6+u1q1ba+bMmUpLS8uw/3vvvafQ0FCNGTPmnrbo6GiNHDlSjz/+uKpXr6769eurZ8+e+u233+7ZF5P27dsrNDRUO3fuTLetdevWqWfPnqpfv77CwsL08MMPa+jQoTp16tQ942bn+ERHR+v9999Xu3btVLNmTdWtW1edO3fW999/r4SEhEyPz79169ZNoaGhmj17tnnZ4sWLFRoaqpEjR+rKlSv68MMP1bRpU1WvXl1t2rTRrFmzJElGo1E//fSTnnzySVWvXl0NGzbU4MGDdfny5XRj7Ny5U6GhoerZs6du376tYcOGqWnTpqpZs6bat2+vadOmKTExMcN8iYmJmj59ujp16qRatWqpRo0aateunb766ivdvHkz0/3Zu3evPv74Y9WuXVu1a9fWyy+/rIceekhDhgyRJB05ckShoaH33MLG9Ji3b99etWvXVlhYmJo2bar+/ftrx44d94xnOn/WrFmj48ePa+DAgWrYsKGqVaumtm3basqUKUpKSspw37Jzft3t6tWrGjNmjFq1aqXq1aurXr16eumll7RmzZoM+wMAAAAAYCmHgg4AAAAAAMB/1ZkzZyRJfn5+97StW7dO+/fvl7+/v0qXLq34+HgFBARIkrZu3arXX39d8fHxcnV1VYUKFXTt2jVt3rxZmzdv1sCBAzVgwIB02zt16pR69OihCxcuyMXFRRUqVNClS5c0cuRI1a1bN0e5t23bpjfeeEO3b9+Wm5ubypcvr5iYGP3222/67bffNHLkSHXq1El+fn6qXbu29u7dK0mqUqWKXFxc5OHhIUlKS0vTO++8o+XLl5uPQ0BAgE6dOqVFixZpxYoVGjt2rB5//PFsH5/IyEg9//zzunnzpooVK6bg4GDFx8fr0KFDOnjwoNavX6/Zs2fL0dExR/v8b+fPn1eHDh10/fp1hYSEyGAwKDIyUp988okSEhJ06tQpLV68WN7e3goKCtLJkye1fPlyHT16VMuWLbtn/Pj4eL344os6fvy4AgICVKJECf3555/67LPPtHHjRk2dOtVclCNJ165d08svv6wTJ07IYDAoODhYTk5O+vPPPzV58mQtW7ZM33//vUJCQu7JPmbMGO3fv18VK1bUjRs35O3traJFi8rZ2VlRUVFyc3NTpUqV5O3tbV7nt99+U//+/XXnzh15eHgoMDBQiYmJio6O1oYNG/Trr79q7Nixateu3T3j7dixQ4MHD5YkBQUFydXVVRERERo3bpwOHDigyZMnp+uf3fPL5MiRI3r11Vd19epVOTk5KSgoSAkJCdqxY4d27Nihjh07atSoUTIYDJY9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s2aNihYtqoceekg1a9bMk/FNzw2ff/655s6dq4SEBDk6Oio5OVnFihUzFxzWq1dPVapUsfhz8Icffqiff/5Zjo6OqlmzpooUKaI9e/aYZ3CqUaOG3n777Xs+L9gC0zH65JNPNHv2bBUrVkxJSUnmz74eHh5q0KCBHn74YdWuXVt+fn5ycXHJ8Timv4/4+HgNHTpUa9euldFo1BtvvKEePXrIxcVFW7Zs0e7du5Wamqq2bdsqLCzM5t4rZKVLly46ePCg/P39devWLfPjX6JECTVu3FiPPPKIqlevLl9f31w9R5mOyXPPPacTJ07onXfe0SOPPKKzZ89q6dKlWrFihfnxk/7+nqFjx473/GDifiiyeICZXlAmT56s8ePHq0WLFmrXrp2io6N19OhRHT58WBcvXjRfiDFVkpYtW1YBAQG5GvuNN97QoUOH9N1336X7YJCQkKD9+/dr7dq12rBhg/neo97e3tq6dWuuxswLpifPrVu36tVXX9VDDz2kcePGyd7eXk5OTpo+fbomTJhgfuFxdnbWwIED9dJLL1l8sSwuLk5NmzZV06ZNNXr0aHPl1jvvvKNffvlFzZs318svv6zz58/r/fff16OPPqqvv/4610+kd9839/HHH1dYWJjef/99VapUSdHR0Vq6dKl++eUXxcTEmNdp3Lix2rRpow4dOph/RWYttpbnbqbHdsSIEZo/f77Gjh2rJ554QrGxsYqJidGBAwe0ZcsW7dixw/xmNjQ0VDVq1NDQoUMteoG9m+m8HDFihObMmaPnnntO3bt3l4uLixISEnTu3Dlt2rRJa9asUXx8vPr27avevXvn+YwjpuKq999/Xy+++KIk6erVq+rcubMuXbqkLl26qH79+po+fboOHjyo+fPnq0aNGnmSyVINGzaUp6enpk+fbv7CZsmSJRo/frwuXrwof39/nT9/Xvb29po5c6bq1KmT6zFtsaghKSlJzz77rDw9PTV16tR0t3lJSkrSvn37tGXLFv3+++/6888/lZKSopYtW2rixIl5ksf0fPDiiy9qz5496t27t/z9/XX16lXt3LlTR44cUVxcnLy8vBQWFqb69eurVq1aqlKlSoFMSZ0fF59s9WJBTnXs2FFHjx7Viy++aH7OP3LkiK5cuSJXV1eFhYWpUaNGql27toKCglSyZMl056O1dOjQQadOndJ7772nli1b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s2fP4uLiQklJCW5ubldsKyJS1RRnrT/0F5Ab4urqytSpUykrK2P27Nm8/vrrZGRkUFxcbGxja3yYTCays7OZNWsWZrOZUaNGAcoAFRERERERERERERGRmtOgQQM8PDwwm824ubkpbiEi1UJx1vrDzqq/hNwAW/bUxo0bmTNnDkeOHKFt27ZER0fTuXNn3N3d8fLywmQysX79epYuXcqZM2eYPn06MTExWh9IRERERERERERERERERO44irPWH0qykJuWnp7OvHnzSExMBMDR0REvLy8KCgowm80UFRXh7e3NE088YaxjJiIiIiIiIiIiIiIiIiJyJ1OctW5TkoXcEqvVyuHDh1m1ahVJSUmUlZVRVFSEs7MzkZGRDB8+nFatWhnbah0zEREREREREREREREREbnTKc5adynJQqpMeXk5Z8+excXFhZKSEtzc3Gp6l0REREREREREREREREREajXFWesWJVnIbaOMKhERERERERERERERERGRG6M4a+2mJAsRERERERERERERERERERGR62Bf0zsgIiIiIiIiIiIiIiIiIiIiUhcoyUJERERERERERERERERERETkOijJQkREREREREREREREREREROQ6KMlCRERERERERERERERERERE5DooyUJEREREREREakRFRQVz587l/vvvJzAwkIiICNasWVOt+2CxWDh8+HC1fqaIiIiIiIiI1F1KshARERERERGRGrFgwQLmzZvH999/j7+/Px4eHjRt2rTaPj8zM5OhQ4eycuXKavtMEREREREREanbGtT0DoiIiIiIiIjInenLL78E4JlnnuG5556r9s9ftmwZ+/btIzw8vNo/W0RERERERETqJlWyEBEREREREZEacfr0aQBCQkJqeE9ERERERERERK6PkixEREREREREpEaUl5cDYDaba3hPRERERERERESuj53VarXW9E6IiIiIiIiIyJ3jiSeeYMeOHVc8/sgjj/Dmm28CkJqayuLFi0lPT+fs2bN4enoSERHBuHHj8Pf3v+r7pqWlsWLFCnbt2sWPP/4IgLe3N927d+epp54yXnfs2DF+//vfX/PzV69ezcsvv8y9997L6tWrr9ju448/5rXXXiMsLIyPPvrIeLxdu3Y4Ozvz5ZdfMnXqVFJTU3F2dubRRx/lL3/5CwAWi4U1a9awatUqcnJyKC0tpXnz5jzwwAOMHTsWV1fXKz4vOzubDz74gL1795Kfn4+TkxNt27Zl4MCBxMTE0KCBVoMVERERERERqS6qZCEiIiIiIiIi1apt27Z07drVSA6w/btFixYAzJ8/n5EjR7Jp0yYsFgtt27blwoULrFq1iocffpgtW7Zc8Z7z58/nD3/4A2vXrqW0tJQ2bdrg6enJsWPHWLlyJUOGDOHbb78FwNHRka5du+Lp6QlAkyZNKn3+raioqOBPf/oTO3bsoHXr1pSVlXHPPfcAUFpayrPPPsvLL79MWloabm5utG7dmu+++453332XRx55hLy8vErvt2PHDoYNG8a6des4d+4cbdu2xc3NjdTUVKZNm8af//znW95nEREREREREbl+muogIiIiIiIiItXqb3/7GwDh4eH89NNPvPLKK4SHhwPw1Vdf8dZbb+Hi4sJrr71G//79ASgrK+P999/nrbfe4s9//jNr167F19cXgP379zN37lxMJhMzZ87koYceMj5r//79jBs3jh9++IGlS5fy6quv4u3tzfLly3nppZf4/PPPGTBgAC+++GKVfLeLFy9y4sQJ1q5dS4sWLbhw4QImkwmAmTNnsnnzZlq3bs2sWbPo2LEjAGfOnGHatGl89dVXTJo0ic8++wx7+0vzYmbMmEFpaSkvvvgiY8aMMR5PTEzk2WefZcOGDaSlpRESElIl+y8iIiIiIiIiv06VLERERERERESk1njrrbcAmDp1qpFgAeDg4MD//M//8OCDD1JUVMTixYuN57Zv306DBg3o169fpQQLgPbt2zN8+HAAcnNzb/8XAIYNG2ZUxXB2dsbR0ZETJ06wYsUKHBwcmDt3rpFgAXDXXXcxa9YsfH192bdvH998843x3IEDBwAYOnSokWABEBERwVNPPUX//v0pKyurlu8lIiIiIiIiIkqyEBEREREREZFa4rvvvuPQoUPY29tXSrC4nC2JYuvWrcZjTz75JBkZGbz55ptXfY2TkxMAxcXFVbzHV9e5c+crHtu6dStlZWV07NiR1q1bX/G8o6MjvXv3Nra1sS018sILL5CZmYnVajWemzhxInPmzKF79+5V/A1ERERERERE5Fq0XIiIiIiIiIiI1AqHDh0CwN7enieffPKq25SUlABw9OhRrFYrdnZ2AMZ/k5KSOHToEHl5eRw9epSsrCxOnjwJgMViud1fAQBvb+8r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\n",
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"importances = best_model_ada.feature_importances_*100\n",
"feature_list = X.columns\n",
"\n",
"sample_df = pd.DataFrame([])\n",
"feature_list\n",
"sample_df['features'] = feature_list\n",
"sample_df['importance_score'] = importances\n",
"sample_df = sample_df.sort_values(by = ['importance_score'],ascending=False)\n",
"plt.figure(figsize=(30,8))\n",
"sb.set(font_scale = 2)\n",
"sb.barplot(x='features',y='importance_score',data =sample_df).set(title=\"Predictors importance\")\n",
"plt.xticks(rotation=70)\n",
"plt.tight_layout()"
]
},
{
"cell_type": "markdown",
"id": "db6057fa",
"metadata": {},
"source": [
"## Conclusions\n",
"\n",
"In the regression analysis we constructed prediction models for two different times in the day and saw that we were able to predict the road surface temperature based on the given predictors with an estimated MSE of around 2.19 and 0.84 for RST_1400 and RST_2200, respectively. This suggests that we are better in predicting road surface temperatures in the evening/night rather than during the day. Furthermore, the most important features for predicting the current road surface temperature seems to be the current temperature and - depending on whether it is day or night - solar radiation is an important predictor.\n",
"\n",
"From the classification analysis we observed that all the classification models works well in predicting the response variable. \n",
"The best one is the SVM, which has an accuracy of about 94%. \n",
"Thus, in future, it would be possible to aware people about the risk of driving in days with specific values of air temperature, dew point temperature, solar radiation, effective cloud cover, wind speed, without really knowing the road surface temperature. Moreover in the context of self-driving cars it is necessary to improve the performance of sensors in recognizing these weather situations and then study the behaviour of the car in terms of road-holding. "
]
}
],
"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.9.7"
},
"toc": {
"base_numbering": 1,
"nav_menu": {},
"number_sections": true,
"sideBar": true,
"skip_h1_title": true,
"title_cell": "Table of Contents",
"title_sidebar": "Contents",
"toc_cell": false,
"toc_position": {},
"toc_section_display": true,
"toc_window_display": false
}
},
"nbformat": 4,
"nbformat_minor": 5
}