Hardware components | ||||||
![]() |
| × | 1 | |||
![]() |
| × | 1 | |||
![]() |
| × | 1 | |||
Software apps and online services | ||||||
![]() |
| |||||
| ||||||
![]() |
|
(if you can not read the video on Google Chrome please try another browser :https://www.youtube.com/watch?v=6K29z-XttSg )
With the emergence of IoT and smart devices We are now able to make big changes in many areas such as energy consumption, Today we can track and analyze energy usage to determine ways to reduce it.
in this article we will present POLYTECH’S ENERGY MONITORING SYSTEM in which we will predict a daily energy consumption in one of our school‘s rooms, Our project was divided into two main parts, the first part was to collect the data by sending sensor data to the Things Network platform using LORA protocol and the second part was to analyze the collected data in order to create a machine learning model that will predict a daily energy consumption.
The wiring Diagram- The LoRa sensors used as well as the MCU part of the gateway are based on Arduino cards.
- We used the latest version of Arduino IDE for the software development
After connecting the sensor to the LoRa gateway, the second phase consists in connecting the gateway to the Internet in order to send the data collected to a web platform, or IoT server, or Cloud.
Several IoT server services are offered, ranging from simple data storage to tools sophisticated visualization and analysis. We used The Things Network, which offers an intuitive interface and simple operations.
Data collection- Theoretical study
- Hardware block test:
Before starting the software test, it was necessary to verify that the Polytech’s sensor works. We used a voltmeter to check the presence of a voltage at the terminal of each phase. The voltage values were very low. To solve this problem, we thought of turning on all the computers in the room to increase energy consumption. This allowed us to detect higher voltage values.
- Software block test:
Step 1 : For the first step we wrote an Arduino script to read the value of the voltage in each phase and send it to the Things Network platform through the Gateway, the Lora module was connected to the Polytech sensor, the purpose of this step was to verify that we can send data to the network.
Step 2 : The purpose of the second step is to verify that we return the maximum value of the voltage (for each phase). To do this we returned the values of each 1ms for 1s and we kept the maximum value using a bubble sort algorithm. to test the code and we connected a voltage generator which sends 1V voltage (with a 50 Hz frequency) with the Arduino card to test the code
- Hardware Setup :
- Code :
We used the cayenne library to code the script
Step 3 : The 3rd step consisted in displaying the power value for an input signal of
max value = 1V, this step was done with keeping the previous assembly, we then
compared the theoretical power value with the displayed power value (considering V1max = 1 V)
Step 4 : since the test was successful we codded the final script which sends the sum of the powers of the three phases, and then we connected the Arduino card to the energy sensor to get the real data
As the title indicates the next part of our project is to use the collected data to predict energy consumption in the room by designing a regression machine learning model.
To build a machine learning model we must follow many steps :
1-Analysis: Statistical analysis of the data and verification of the state of the data (values missing or outliers).
2-Enrichment: Research and addition of significant variables
3-Training: Supply a Machine Learning algorithm with the processed and enriched Data
4- Evaluation: Test the model’s performance on new data.
We followed these 4 steps to build a machine learning algorithm that will allow us to predict energy consumption in the room
- Software installation
we downloaded Anaconda( a python machine learning environment ) in which we added the following libraries ( Pandas : Data Processing, Numpy : Mathematical operations, matplotlib : graphics, sklearn.Linear_Model : Machine learning modeling)
- Data Generation
we generated data randomly in a csv format.
- Code
At first we imported the used libraries then we imported the data with the “read_csv” pandas’ function.
Second for the EDA ( exploratory Data Analysis ) we choose to visualize data statistics and to draw the distribution of the data (a first graph for the power consumed over a day and a second graph for the power consumed over a month ) with matplotlib.
We noticed that the consumed energy is high between 8AM and 7PM in the first graph, and low in July and august in the second graph.
From this analysis, we add features to enrich the data:
- time, day, month
- HeureEtude : a binary feature that returns 1 if the day is in the active range*
- MoisEtude : a binary feature that returns 1 if the month is in the active range*
*active range : time where the energy consumption is high
Once the data has been enriched, we divided our data into training data that we will use to train our model, and test data on which we are going to predict the energy consumption.
We used the linear regression algorithm to train our model.
- Results
For the prediction results we used the predefined function of sklearn library.
To evaluate the quality of our model we used the score function that return R² coefficient, it ranges from 0 to 1 with R² = 0 is the perfect model.
In order to make the POLYTECH’S ENERGY MONITORING SYSTEM work we need the following materials:
- The Things Uno board
The things Uno board current consumption is 40 ma (Data Sheet )
- A power supply to energize the things uno board
To energize the board we used a battery pack ( since it was the only power supply available in our Lab ) Most USB battery packs are graded (the Capacity ) in milliamp hours (mAh). To figure out how long it will last we need to know its capacity and the project ‘s current consumption :
The Battery Pack Capacity is 5000 mAh and The things Uno board current consumption is 40 mA.
this gives us a runtime of about 125 hours ( about 5days ) this means that we will have to charge the battery 2 times to collect the necessary data (about two weeks )
When the battery is full we have a stocked energy of :
Energy = Capacity (mAh) X Voltage = 5000mAh X 5V = 25000mWh
If we have to charge the battery twice we need :
Total Energy = 2 X 2500 = 50 000 mWh
ConclusionAt the end of this project we were able to collect energy consumption data in our school’s room as well as predicting the energy consumption daily, We would have liked to go further with this project and develop applications for a better visualization of the results using graphical interfaces but we did not have access to the school’s room due to the global health crisis.
Finally We can say that This project was a great opportunity to discover both the world of Internet of Things and the field of machine learning. together these two areas can allow humanity to do great things.
#include <TheThingsNetwork.h>
#include <CayenneLPP.h>
// Set your AppEUI and AppKey
const char *appEui = "70B3D57ED002A483";
const char *appKey = "C6FE88C86D54E5EB145529E0B47301E5";
#define loraSerial Serial1
#define debugSerial Serial
// Replace REPLACE_ME with TTN_FP_EU868 or TTN_FP_US915
#define freqPlan TTN_FP_EU868
TheThingsNetwork ttn(loraSerial, debugSerial, freqPlan);
CayenneLPP lpp(51);
// Variables globales pour stocker les anciennes valeurs
int valeur1 = 0;
int valeur2 = 0;
int valeur3 = 0;
//Variable global pour grer le dlai d'envoi des donnes
int compteur=0;
void setup()
{
loraSerial.begin(57600);
debugSerial.begin(9600);
// Wait a maximum of 10s for Serial Monitor
while (!debugSerial && millis() < 10000)
;
debugSerial.println("-- STATUS");
ttn.showStatus();
debugSerial.println("-- JOIN");
ttn.join(appEui, appKey);
}
void loop()
{
TheThingsNetwork ttn(loraSerial, debugSerial, freqPlan);
CayenneLPP lpp(51);
int valeur11 = analogRead(A0);
int valeur21 = analogRead(A1);
int valeur31 = analogRead(A2);
valeur1 = max(valeur11,valeur1);
valeur2 = max(valeur21,valeur2);
valeur3 = max(valeur31,valeur3);
compteur += 1;
// 1s = 1000ms
if(compteur == 1000) {
float courant1 = valeur1 *30.3* (5.0 / 1023.0) * sqrt(2); //30.3 (pour100A on a 3.3 V )
float courant2 = valeur2 * 30.3 * (5.0 / 1023.0) * sqrt(2) ; //racine de deux *valeur efficace du courant ( signal sinus) =Imax
float courant3 = valeur3 * 30.3 *(5.0 / 1023.0) * sqrt(2) ;
float puissance1 = 240* (courant1);
float puissance2 = 240* (courant2);
float puissance3 = 240* (courant3);
float puissance4 = puissance1+puissance2+puissance3;
lpp.addAnalogInput(4,puissance4);
//Send it off
ttn.sendBytes(lpp.getBuffer(), lpp.getSize());
compteur = 0;
valeur1 = 0;
valeur2 = 0;
valeur3 = 0;
}
delay(1);
}
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Importation des librairies"
]
},
{
"cell_type": "code",
"execution_count": 52,
"metadata": {},
"outputs": [],
"source": [
"import pandas as pd\n",
"import numpy as np\n",
"import matplotlib.pyplot as plt\n",
"from sklearn import linear_model\n",
"import warnings\n",
"warnings.filterwarnings('ignore')\n",
"warnings.simplefilter('ignore')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Importation des donnes"
]
},
{
"cell_type": "code",
"execution_count": 53,
"metadata": {},
"outputs": [],
"source": [
"data = pd.read_csv(\"../Puissance.csv\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Analyse des donnes"
]
},
{
"cell_type": "code",
"execution_count": 54,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>DateHeure</th>\n",
" <th>Puissance</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>01/04/2020 13:01:29</td>\n",
" <td>1562.445517</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>01/04/2020 13:31:29</td>\n",
" <td>2181.738667</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>01/04/2020 14:01:29</td>\n",
" <td>2752.225827</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>01/04/2020 14:31:29</td>\n",
" <td>2003.979045</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>01/04/2020 15:01:29</td>\n",
" <td>2348.234105</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" DateHeure Puissance\n",
"0 01/04/2020 13:01:29 1562.445517\n",
"1 01/04/2020 13:31:29 2181.738667\n",
"2 01/04/2020 14:01:29 2752.225827\n",
"3 01/04/2020 14:31:29 2003.979045\n",
"4 01/04/2020 15:01:29 2348.234105"
]
},
"execution_count": 54,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"data.head()"
]
},
{
"cell_type": "code",
"execution_count": 55,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(10000, 2)"
]
},
"execution_count": 55,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"data.shape"
]
},
{
"cell_type": "code",
"execution_count": 56,
"metadata": {},
"outputs": [],
"source": [
"data['DateHeure'] = pd.to_datetime(data['DateHeure'], dayfirst = True)"
]
},
{
"cell_type": "code",
"execution_count": 57,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"DateHeure datetime64[ns]\n",
"Puissance float64\n",
"dtype: object"
]
},
"execution_count": 57,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"data.dtypes"
]
},
{
"cell_type": "code",
"execution_count": 58,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>DateHeure</th>\n",
" <th>Puissance</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>count</th>\n",
" <td>10000</td>\n",
" <td>10000.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>unique</th>\n",
" <td>10000</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>top</th>\n",
" <td>2020-06-07 05:31:29</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>freq</th>\n",
" <td>1</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>first</th>\n",
" <td>2020-04-01 13:01:29</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>last</th>\n",
" <td>2020-10-26 20:31:29</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>mean</th>\n",
" <td>NaN</td>\n",
" <td>592.929413</td>\n",
" </tr>\n",
" <tr>\n",
" <th>std</th>\n",
" <td>NaN</td>\n",
" <td>884.358110</td>\n",
" </tr>\n",
" <tr>\n",
" <th>min</th>\n",
" <td>NaN</td>\n",
" <td>100.022437</td>\n",
" </tr>\n",
" <tr>\n",
" <th>25%</th>\n",
" <td>NaN</td>\n",
" <td>131.662871</td>\n",
" </tr>\n",
" <tr>\n",
" <th>50%</th>\n",
" <td>NaN</td>\n",
" <td>163.118110</td>\n",
" </tr>\n",
" <tr>\n",
" <th>75%</th>\n",
" <td>NaN</td>\n",
" <td>194.904384</td>\n",
" </tr>\n",
" <tr>\n",
" <th>max</th>\n",
" <td>NaN</td>\n",
" <td>2998.318641</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" DateHeure Puissance\n",
"count 10000 10000.000000\n",
"unique 10000 NaN\n",
"top 2020-06-07 05:31:29 NaN\n",
"freq 1 NaN\n",
"first 2020-04-01 13:01:29 NaN\n",
"last 2020-10-26 20:31:29 NaN\n",
"mean NaN 592.929413\n",
"std NaN 884.358110\n",
"min NaN 100.022437\n",
"25% NaN 131.662871\n",
"50% NaN 163.118110\n",
"75% NaN 194.904384\n",
"max NaN 2998.318641"
]
},
"execution_count": 58,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"data.describe(include='all')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Enrichissement des donnes"
]
},
{
"cell_type": "code",
"execution_count": 59,
"metadata": {},
"outputs": [],
"source": [
"data['Jour'] = data['DateHeure'].dt.day\n",
"data['Heure'] = data['DateHeure'].dt.hour\n",
"data['Mois'] = data['DateHeure'].dt.month"
]
},
{
"cell_type": "code",
"execution_count": 60,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>DateHeure</th>\n",
" <th>Puissance</th>\n",
" <th>Jour</th>\n",
" <th>Heure</th>\n",
" <th>Mois</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>2020-04-01 13:01:29</td>\n",
" <td>1562.445517</td>\n",
" <td>1</td>\n",
" <td>13</td>\n",
" <td>4</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>2020-04-01 13:31:29</td>\n",
" <td>2181.738667</td>\n",
" <td>1</td>\n",
" <td>13</td>\n",
" <td>4</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>2020-04-01 14:01:29</td>\n",
" <td>2752.225827</td>\n",
" <td>1</td>\n",
" <td>14</td>\n",
" <td>4</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>2020-04-01 14:31:29</td>\n",
" <td>2003.979045</td>\n",
" <td>1</td>\n",
" <td>14</td>\n",
" <td>4</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>2020-04-01 15:01:29</td>\n",
" <td>2348.234105</td>\n",
" <td>1</td>\n",
" <td>15</td>\n",
" <td>4</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" DateHeure Puissance Jour Heure Mois\n",
"0 2020-04-01 13:01:29 1562.445517 1 13 4\n",
"1 2020-04-01 13:31:29 2181.738667 1 13 4\n",
"2 2020-04-01 14:01:29 2752.225827 1 14 4\n",
"3 2020-04-01 14:31:29 2003.979045 1 14 4\n",
"4 2020-04-01 15:01:29 2348.234105 1 15 4"
]
},
"execution_count": 60,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"data.head()"
]
},
{
"cell_type": "code",
"execution_count": 61,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x1e41b72b9b0>"
]
},
"execution_count": 61,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"data1 = data.head(100)\n",
"data1.plot.scatter('Heure','Puissance')"
]
},
{
"cell_type": "code",
"execution_count": 62,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x1e41b5afa58>"
]
},
"execution_count": 62,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"data.plot('Mois','Puissance')"
]
},
{
"cell_type": "code",
"execution_count": 63,
"metadata": {},
"outputs": [],
"source": [
"data['HeureEtude'] = np.zeros(data.shape[0])\n",
"data['MoisEtude'] = np.zeros(data.shape[0])"
]
},
{
"cell_type": "code",
"execution_count": 64,
"metadata": {},
"outputs": [],
"source": [
"for i in range(1,7):\n",
" data['MoisEtude'][data['Mois'] == i]=1\n",
"for i in range(9,13):\n",
" data['MoisEtude'][data['Mois'] == i]=1\n",
"for i in range (8,20):\n",
" data['HeureEtude'][data['Heure'] == i]=1"
]
},
{
"cell_type": "code",
"execution_count": 65,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>DateHeure</th>\n",
" <th>Puissance</th>\n",
" <th>Jour</th>\n",
" <th>Heure</th>\n",
" <th>Mois</th>\n",
" <th>HeureEtude</th>\n",
" <th>MoisEtude</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>2020-04-01 13:01:29</td>\n",
" <td>1562.445517</td>\n",
" <td>1</td>\n",
" <td>13</td>\n",
" <td>4</td>\n",
" <td>1.0</td>\n",
" <td>1.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>2020-04-01 13:31:29</td>\n",
" <td>2181.738667</td>\n",
" <td>1</td>\n",
" <td>13</td>\n",
" <td>4</td>\n",
" <td>1.0</td>\n",
" <td>1.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>2020-04-01 14:01:29</td>\n",
" <td>2752.225827</td>\n",
" <td>1</td>\n",
" <td>14</td>\n",
" <td>4</td>\n",
" <td>1.0</td>\n",
" <td>1.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>2020-04-01 14:31:29</td>\n",
" <td>2003.979045</td>\n",
" <td>1</td>\n",
" <td>14</td>\n",
" <td>4</td>\n",
" <td>1.0</td>\n",
" <td>1.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>2020-04-01 15:01:29</td>\n",
" <td>2348.234105</td>\n",
" <td>1</td>\n",
" <td>15</td>\n",
" <td>4</td>\n",
" <td>1.0</td>\n",
" <td>1.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>2020-04-01 15:31:29</td>\n",
" <td>1502.650369</td>\n",
" <td>1</td>\n",
" <td>15</td>\n",
" <td>4</td>\n",
" <td>1.0</td>\n",
" <td>1.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>2020-04-01 16:01:29</td>\n",
" <td>1781.384275</td>\n",
" <td>1</td>\n",
" <td>16</td>\n",
" <td>4</td>\n",
" <td>1.0</td>\n",
" <td>1.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>2020-04-01 16:31:29</td>\n",
" <td>2985.651120</td>\n",
" <td>1</td>\n",
" <td>16</td>\n",
" <td>4</td>\n",
" <td>1.0</td>\n",
" <td>1.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>2020-04-01 17:01:29</td>\n",
" <td>2625.745700</td>\n",
" <td>1</td>\n",
" <td>17</td>\n",
" <td>4</td>\n",
" <td>1.0</td>\n",
" <td>1.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9</th>\n",
" <td>2020-04-01 17:31:29</td>\n",
" <td>2049.410457</td>\n",
" <td>1</td>\n",
" <td>17</td>\n",
" <td>4</td>\n",
" <td>1.0</td>\n",
" <td>1.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10</th>\n",
" <td>2020-04-01 18:01:29</td>\n",
" <td>2026.813647</td>\n",
" <td>1</td>\n",
" <td>18</td>\n",
" <td>4</td>\n",
" <td>1.0</td>\n",
" <td>1.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>11</th>\n",
" <td>2020-04-01 18:31:29</td>\n",
" <td>2360.017657</td>\n",
" <td>1</td>\n",
" <td>18</td>\n",
" <td>4</td>\n",
" <td>1.0</td>\n",
" <td>1.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>12</th>\n",
" <td>2020-04-01 19:01:29</td>\n",
" <td>104.163034</td>\n",
" <td>1</td>\n",
" <td>19</td>\n",
" <td>4</td>\n",
" <td>1.0</td>\n",
" <td>1.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>13</th>\n",
" <td>2020-04-01 19:31:29</td>\n",
" <td>145.449244</td>\n",
" <td>1</td>\n",
" <td>19</td>\n",
" <td>4</td>\n",
" <td>1.0</td>\n",
" <td>1.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>14</th>\n",
" <td>2020-04-01 20:01:29</td>\n",
" <td>183.481722</td>\n",
" <td>1</td>\n",
" <td>20</td>\n",
" <td>4</td>\n",
" <td>0.0</td>\n",
" <td>1.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>15</th>\n",
" <td>2020-04-01 20:31:29</td>\n",
" <td>133.598603</td>\n",
" <td>1</td>\n",
" <td>20</td>\n",
" <td>4</td>\n",
" <td>0.0</td>\n",
" <td>1.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>16</th>\n",
" <td>2020-04-01 21:01:29</td>\n",
" <td>156.548940</td>\n",
" <td>1</td>\n",
" <td>21</td>\n",
" <td>4</td>\n",
" <td>0.0</td>\n",
" <td>1.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>17</th>\n",
" <td>2020-04-01 21:31:29</td>\n",
" <td>100.176691</td>\n",
" <td>1</td>\n",
" <td>21</td>\n",
" <td>4</td>\n",
" <td>0.0</td>\n",
" <td>1.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>18</th>\n",
" <td>2020-04-01 22:01:29</td>\n",
" <td>118.758952</td>\n",
" <td>1</td>\n",
" <td>22</td>\n",
" <td>4</td>\n",
" <td>0.0</td>\n",
" <td>1.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>19</th>\n",
" <td>2020-04-01 22:31:29</td>\n",
" <td>199.043408</td>\n",
" <td>1</td>\n",
" <td>22</td>\n",
" <td>4</td>\n",
" <td>0.0</td>\n",
" <td>1.0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" DateHeure Puissance Jour Heure Mois HeureEtude MoisEtude\n",
"0 2020-04-01 13:01:29 1562.445517 1 13 4 1.0 1.0\n",
"1 2020-04-01 13:31:29 2181.738667 1 13 4 1.0 1.0\n",
"2 2020-04-01 14:01:29 2752.225827 1 14 4 1.0 1.0\n",
"3 2020-04-01 14:31:29 2003.979045 1 14 4 1.0 1.0\n",
"4 2020-04-01 15:01:29 2348.234105 1 15 4 1.0 1.0\n",
"5 2020-04-01 15:31:29 1502.650369 1 15 4 1.0 1.0\n",
"6 2020-04-01 16:01:29 1781.384275 1 16 4 1.0 1.0\n",
"7 2020-04-01 16:31:29 2985.651120 1 16 4 1.0 1.0\n",
"8 2020-04-01 17:01:29 2625.745700 1 17 4 1.0 1.0\n",
"9 2020-04-01 17:31:29 2049.410457 1 17 4 1.0 1.0\n",
"10 2020-04-01 18:01:29 2026.813647 1 18 4 1.0 1.0\n",
"11 2020-04-01 18:31:29 2360.017657 1 18 4 1.0 1.0\n",
"12 2020-04-01 19:01:29 104.163034 1 19 4 1.0 1.0\n",
"13 2020-04-01 19:31:29 145.449244 1 19 4 1.0 1.0\n",
"14 2020-04-01 20:01:29 183.481722 1 20 4 0.0 1.0\n",
"15 2020-04-01 20:31:29 133.598603 1 20 4 0.0 1.0\n",
"16 2020-04-01 21:01:29 156.548940 1 21 4 0.0 1.0\n",
"17 2020-04-01 21:31:29 100.176691 1 21 4 0.0 1.0\n",
"18 2020-04-01 22:01:29 118.758952 1 22 4 0.0 1.0\n",
"19 2020-04-01 22:31:29 199.043408 1 22 4 0.0 1.0"
]
},
"execution_count": 65,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"data.head(20)"
]
},
{
"cell_type": "code",
"execution_count": 66,
"metadata": {},
"outputs": [],
"source": [
"train = data.iloc[0:7000,:]\n",
"test = data.iloc[7000:,:]"
]
},
{
"cell_type": "code",
"execution_count": 68,
"metadata": {},
"outputs": [],
"source": [
"X_train = train[['Jour','Heure','Mois','HeureEtude','MoisEtude']]\n",
"Y_train = train['Puissance']"
]
},
{
"cell_type": "code",
"execution_count": 69,
"metadata": {},
"outputs": [],
"source": [
"X_test = test[['Jour','Heure','Mois','HeureEtude','MoisEtude']]\n",
"Y_test = test['Puissance']"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Entrainement du modle"
]
},
{
"cell_type": "code",
"execution_count": 70,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"LinearRegression(copy_X=True, fit_intercept=True, n_jobs=None, normalize=False)"
]
},
"execution_count": 70,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"Model = linear_model.LinearRegression()\n",
"\n",
"# Train the model using the training sets\n",
"Model.fit(X_train, Y_train)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Prediction"
]
},
{
"cell_type": "code",
"execution_count": 73,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([ 541.77091184, 541.77091184, 541.22124232, ..., 1198.88216381,\n",
" 416.80765393, 416.80765393])"
]
},
"execution_count": 73,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"Model.predict(X_test)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Coefficient R"
]
},
{
"cell_type": "code",
"execution_count": 74,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0.34852852978549054"
]
},
"execution_count": 74,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"Model.score(X_test, Y_test)"
]
}
],
"metadata": {
"celltoolbar": "Aucun(e)",
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.7.3"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Comments