Projet de Machine Learning, data analysis, EDA et modélisation pour prédiction des consommations d'énergie de la ville de Seattle. Formation Ingénieur Machine Learning
2. NOM OU LOGO
Sommaire
- Problématique, interprétation etpistes derecherche
envisagées.
- Data cleaninget feature engineering.
- Analyseexploratoire.
- Les différentes modélisations.
- Modèle retenuet améliorations.
Prédirel’impactenvironnementaldesbâtimentsde
Seattle…
Analyseportantsurlesensemblesnonrésidentiels delaville.
2
3. NOM OU LOGO
Contexte
Seattle:Objectif devilleneutreenémissions decarboned’ici 2050.
3
La ville de Seattle s’intéresse de près aux émissions et à la
consommation d’énergie des bâtiments non destinés à l’habitation.
Nous sommes donc missionnés pour analyser les données passées et
mettre en place des algorithmes de Machine Learning pour prédire les
données futures qui n’ontpas encore été mesurées.
Les données utilisées sont issues des déclarations des permis
d’exploitation commerciale.
4. NOM OU LOGO
Problématique
Des relevés coûteux
Des relevés de consommations et émissions ont été
réalisés en 2015 et 2016 mais se révèlent très coûteux
pour laville.
Des calculs fastidieux
L’ENERGY STAR Score, évaluant la performance
énergétique des bâtiments est un calcul fastidieux dont il
fautmesurerl’impact.
Utilisation optimale de la data
Utiliser les données déclaratives et les relevés passés pour
prédire les éléments futurs. Analyser, explorer et
modélisercesdatasacquises.
4
5. NOM OU LOGO
Lesdonnéesinitiales
Permisd’exploitation commercialeetrelevésdeconsommations 2015
-2016
5
Les données fournies sont de 2 types :
• Les données déclaratives du permis d’exploitation commerciale : elles
regroupent un certain nombre de variablestels que
• l’emplacement géographique (adresse, GPS),
• lessurfaces dechaque partieexploitée,
• lenombredebâtiments etd’étages,
• lestypes d’utilisations …
• Les relevés de consommation et d’émissions 2015 et 2016 de plusieurs
indices :
• consommationélectrique,
• consommationdegaz,
• émissionsdeCO2…
Ces données seront analysées dans le cadre des traitements préparatoires à nos
modélisations.
6. NOM OU LOGO
ENERGYSTARScore
Focussurcet indicateurdeperformanceénergétiquedelavillede
Seattle.
6
Le score ENERGY STAR fournit un aperçu complet de la performance énergétique
d’un bâtiment.
Il tient compte des actifs physiques, des opérations et du comportement des
occupants du bâtiment. Il est exprimé sur une échelle de 1 à 100 pour en faciliter
la compréhension.
Il permet notamment :
• d’évaluer lesdonnées énergétiques réellement facturées,
• denormaliserpourl'activitécommerciale (heures, travailleurs,climat),
• indiquer leniveau deperformance énergétique.
Nous évaluerons l’impact de cet indicateur dans les performances de nos
modélisations.
9. NOM OU LOGO
Chargementdesdonnéesdesrelevés2015et2016
Les datasets sont issus de Kaggle – Données officielles deSeattle
9
Les fichiers CSVsont chargés viala librairie Pandasde Python. Le dataset 2015 compte 47 variables contre 46 pour le jeu de données de 2016. Il existe donc des variables
différentes dans les 2 DataFrames chargés.
10. NOM OU LOGO
Différencesdevariablesdansles2datasets
Des libellés différents et empaquetage des localisations.
10
Certaines variables ne sont présentes qu’en 2015 (CityCouncilDistricts,SPDBeats…).
Les variables sur les émissions deCO2 (GHGEmissions)ont changé de nom.
Les données delocalisation sont compactées en 2015 (Address,City,State,ZipCode,LatitudeetLongitude)dans un dictionnaire àplusieurs niveaux.
11. NOM OU LOGO
Différencesdevariablesdansles2datasets
Les actions correctives.
11
Les données de localisation 2015 ont été extraites des dictionnaires
présents dans la variable Location pour créer une variable parattribut.
Les variables concernant les émissions de CO2 ont été comparées pour
vérifier qu’elles suivent bien le même ordre de grandeur, puis renommées à
l’identique.
Les variables uniquement présentes en 2015 ont été
supprimées car elles ne présentent pas d’intérêt particulier pour
nos modélisations.
12. NOM OU LOGO
Donnéesdesbâtimentsrésidentiels
Les habitations nesont pas concernéespar l’analyse.
12
Acette étape, le jeu de données compte 3318 lignes et46 variables (aprèsconcaténationdesdonnées2015et2016)
La ville de Seattle souhaite porter son étude sur les bâtiments
non résidentiels.
En nous basant sur la variable BuildingType, nous avons
éliminé toutes les lignes comportant des habitations à savoir
celles qui contiennent lelibellé «Multifamily »
13. NOM OU LOGO
Suppressiondesdoublons
Variable de référencedes doublons : OSEBuildingID
13
Nos modélisations devront porter sur un bâtiment
unique. Ce ne sont pas des modélisations de séries
temporelles.
De ce fait, il faut éliminer les doublons de bâtiments sur les
années 2015 et 2016.
Nous prenons la valeur moyenne des relevés des 2
années pour les bâtiments en doublon et gardons la
dernière relève.
Après dédoublonnage, ledataset compte 1698 entrées.
14. NOM OU LOGO
Suppressiondesvariablesredondantes
14
Les variables suffixées WN (WeatherNormalized)représentent les variables corrigées des effets climatiques.
Dans nos modélisations, nous ne prendrons pas en compte les effets de la météo, ces variables redondantes sont donc
supprimées.
Certaines variables sont exprimées dans plusieurs unités.
Nous conservons donc les variables exprimées en kBtu (British ThermalUnit)afin d’avoir toutes nos variables énergétiques sur
la même échelle.
15. NOM OU LOGO
Lesautresnettoyagesdedonnées
○ Suppression des lignes «vides »
• Les lignes dont les variables à prédiresont vides sont supprimées car très peu
nombreuses (1ligne).
○ Suppression des outliers etnonconformes
• Une variable semble identifier les outliers sur notre dataset. Cependant, cette
variable est mal définie etnous ne savons pas exactement à quoi elle
correspond. Nous avons donc supprimé les lignes identifiées comme
« Outliers »(19lignes).
• La variableComplianceStatus indique les données non conformes. 103 lignes
identifiées non conformes ou incomplètes ont été supprimées.
○ Certainesvariables sont trèspeu renseignées ou inutiles pour nos
modélisations.
• Les variables DefaultData, ComplianceStatus,
TaxParcelIdentificationNumber, CouncilDistrictCode et City(constante à
Seattle) ont été supprimées.
15
Valeurs nulles Variables peurenseignées
17. NOM OU LOGO
Lestypesdebâtimentsanalysés
Répartition des types debâtiments présents dans le jeu dedonnées
17
87% des bâtiments du dataset sont typés « NonResidential ». Dans cette catégorie, les bureaux de petite et moyenne taille occupent la plus grande partie.
18. NOM OU LOGO
Lesannéesdeconstructiondesbâtiments
18
La répartition des années de construction est relativement
équitable avec cependant un creux dans les années 1930 à
1945.
La majeure partie des bâtiments est toutefois construite après
guerre.
Plus que l’année de construction, nous allons créer une
nouvelle variable pour identifier l’âge du bâtiment, ce qui
permettra d’avoir la même répartition mais avec des échelles
moins grandes.
19. NOM OU LOGO
Créationdelavariablepourl'âgedesbâtiments
19
La répartition des années de construction est relativement
équitable avec cependant un creux dans les années 1930 à
1945.
La majeure partie des bâtiments est toutefois construite après
guerre.
Plus que l’année de construction, nous allons créer une
nouvelle variable pour identifier l’âge du bâtiment, ce qui
permettra d’avoir la même répartition mais avec des échelles
moins grandes.
20. NOM OU LOGO
Lescorrélationslinéairesentrevariables
20
La Heatmap ci-contre nous permet de visualiser les variables présentant de fortes
corrélations linéaires.
Ces indications sont importantes pour nos futures modélisations afin d’éviter le
phénomène demulti colinéarité.
Ici dans les tons rouge / orangé, sont représentées les variables les plus
corrélées.
Les variables à prédire TotalGHGEmission et SiteEnergyUse sont déjà très
corrélées. Elles sont également fortement corrélées aux variables des relevés mais
aussi auxsurfaces des bâtiments.
21. NOM OU LOGO
Zoomsurlesvariablesfortementcorrélées
21
Dans ce tableau, nous avons listé toutes les corrélations de Pearson supérieures à
0,7.
On remarque que les variables suffixées GFA présentent de fortes corrélations avec
plusieurs autres variables.
Ces variables représentent les surfaces au sol (Ground Floor Area)
Nous allons donc créer de nouvelles variables pour tenter de gommer ces
corrélations linéaires.
22. NOM OU LOGO
Lescorrélationslinéairesaprèsfeatureengineering
22
Plusieurs variablesont été calculées :
TotalUseTypeNumber : Reprend le nombre d’utilisation totale du
bâtiment.
GFABuildingRate & GFAParkingRate : Surface totale des constructions et
des parkings.
GFAPerBuilding: Surfacemoyenneparbâtiment.
GFAPerFloor: Surfacetotaleparétage.
Ces nouvelles variables et la suppression des anciennes variables de type
LargestPropertyGFA, PropertyGFABuildings(s), etc, permettent de faire baisser
significativement le nombrede variables àfortes corrélations linéaires.
24. NOM OU LOGO
TotalGHGEmissions|Distributiondesdonnées
24
Les données sont très étalées et les faibles émissions sont majoritaires. La distribution ne suit pas deloi normale comme le montre également le test de Kolmogorov-Smirnov
(Pvalue=0)
25. NOM OU LOGO
SiteEnergyUse|Distributiondesdonnées
25
Ici également, les données sont très étalées, centrées sur les faibles consommations. Ladistribution ne suit pas de loi normale comme le montre également le test de
Kolmogorov-Smirnov(Pvalue=0)
26. NOM OU LOGO
Rejetsenfonctiondesconsommations
26
On remarque ici que la répartition des données d'émission de CO2en fonction dela consommation d'énergie ne suit pas uniquement 1 seule droite derégression linéaire si
l'on zoome sur les données les plus représentées.
27. NOM OU LOGO
L’emplacementdesbâtimentsàt’ilunimpact?
27
Les distances haversine entre chaque bâtiment et le centre deSeattle ont été calculées (etleslat/lonsupprimées).
Pour les 2 variablesà prédire,les points les plus proches du centre ont tendance à concentrer des valeurs plus élevées.
29. NOM OU LOGO
Influencedel’âgedesbâtimentssurlesvariablesàprédire
29
Les bâtiments de moins de 30 ans semblent avoirdes consommations d'énergie et rejets de CO2plus importants que les buildings anciens, alors même que lavariable
BuildingAge n'est pas fortement corrélée à d'autres features (commelatailledesbâtimentsparexemple).
30. NOM OU LOGO
Carteinteractivedelocalisationdesbâtiments
Dans le Notebook Kaggle associé à l’analyse, il est possible de
visualiser l’emplacement des bâtiments regroupés en clusters.
Cela permet de voir rapidement où sont concentrés les
buildings non résidentiels.
30
32. NOM OU LOGO
4algorithmesderégressiontestés
ElasticNet
Régression linéaire avec
régularisation L1 et L2.
SVR
Machine à vecteur de
support pour régression.
32
XGBoost
Algorithme de Gradient
Boosting
RandomForest
Assemblage d’arbres de
décision indépendants.
Linéaires
Non-linéaires
33. NOM OU LOGO
Préparationdesdonnées
Séparation destypesdevariables etmiseenplacedu preprocessing
33
Le jeu de données nettoyé compte 1 574 entrées seulement. Ceci reste faible pour
un algorithme de machine learning.
Le but étant de se passer des relevés de consommation, les variables
SteamUse(kBtu), Electricity(kBtu) et NaturalGas(kBtu) ont été
supprimées.
Pour la localisation, nous avons conservé uniquement la distance de
haversine calculée.
Les données de l’ENERGY STAR Score ont dans un premier temps été
ignorées.
34. NOM OU LOGO
Preprocessing
Traitement des variables catégorielles etnumériques
34
• Pour les variables catégorielles, nous utilisons
la méthode TagetEncoder de la librairie
Category_Encoders.
• Les variables numériques sont standardisées
avec la méthode RobustScaler (utilisant la
médiane et l’écart interquartile plutôt que la
moyenneetl’écart-type)
Ces différentes étapes de preprocessing sont
intégrées dans un pipeline Sklearn qui sera
appliquéau momentdes modélisations.
35. NOM OU LOGO
Transformationdesvariablesàprédire
35
Passer nos données Y au logarithme permet d’obtenir une distribution normalisée ce qui permettra une meilleure performance de nos modèles. Ainsi nous utilisons la méthode
TransformedTargetRegressor de Sklearn pour lepreprocessing de nos variables à prédireavec comme fonction np,log() et son inverse np,exp().
36. NOM OU LOGO
ModèleBaseline:Régressionlinéairemultivariée
36
Pour toutes nosmodélisations, le format est le suivant :
Grille de paramètres de modèle
Preprocessing
Grille de recherche avec validation croisée
Transformation des variablesà prédire
Retour des métriques R² et MAE pour les splits
d’entrainement et de test.
Le jeu de test, créé avec la fonction train_test_split de
Scikit Learn (comptant 315 lignes) ne sera utilisé que
sur lemeilleur modèlesélectionné.
37. NOM OU LOGO
ModèleBaseline:Régressionlinéairemultivariée
37
Scores Baseline sur TotalGHGEmissions
Scores Baseline sur SiteEnergyUse
Les résultats des GridSearchCV sont stockés dans un Dataframe pour une
exploitation ultérieure. Nous avons à présent les scores baseline.
39. NOM OU LOGO
Modèlelinéaire:ElasticNet
39
Explication du modèle:
Pour améliorer la régression linéaire, il est possible d’ajouter un terme de
pénalitésàl’équationOLS.
La régression Ridge ajoute une régularisation L2 alors que la régression
Lasso ajoute une régularisation L1. ElasticNet incorpore les 2 pénalités
quiserontrégléesdansleshyperparamètres:
GridSearch sur lesparamètres :
Max_iter :Nombremaximumd’itérations.
Alpha : Multiplicationdutermede pénalité.
L1_ratio : RatioentrepénalitéL1 etL2.
Cross-validation :
5 échantillonnagessonteffectuésdans cettevalidationcroisée.
40. NOM OU LOGO
ModèleLinéaire:ElasticNet
40
Scores ElasticNet sur TotalGHGEmissions
Scores ElasticNet sur SiteEnergyUse
Les scores se sont améliorés comparé à la baseline mais restent très faibles
pour cet algorithme ElasticNet.
41. NOM OU LOGO
Modèlelinéaire:SVR
41
Explication du modèle:
Machine à vecteur de support appliquée à la régression. L’objectif est de
minimiser simultanément lamarge (H- /H+)et l’erreur (points dumauvais
cotédelazone d’indécision).
GridSearch sur lesparamètres :
C : Paramètre de régularisation (importance relative du terme
d’erreuretdutermedemarge).
Epsilon :Largeurdelazoned’indécision.
loss : Type de lafonctionde coût – L1 pour epsilon-insensitive etL2
pour squared-epsilon-insensitive.
Cross-validation :
5 échantillonnagessonteffectuésdans cettevalidationcroisée.
42. NOM OU LOGO
ModèleLinéaire:SVR
42
Scores SVR sur TotalGHGEmissions
Scores SVR sur SiteEnergyUse
Les scores se sont améliorés pour la variable SiteEnergyUse mais pas pour
les émissions de CO2.Cependant, ilsrestent insatisfaisants.
43. NOM OU LOGO
Modèlesnon-linéaires
Modélisation avec RadomForest et XGBoost
43
Synthèse des modélisations avec modèles linéaires.
Les modèles linéaires ElasticNet et SVR n’ont pas fournis de résultats
concluant dans les validations croisées.
Les scores MAE et R² ne sont pas satisfaisant sur le jeu
d’entrainement, Notre problème est donc non linéaire et nous allons à
présent vérifier les performances sur des modélisations RandomForest
et XGBoost.
44. NOM OU LOGO
Arbresdedécision:RandomForestRegressor
44
Explication du modèle:
Assemblage d'arbres de décision indépendants traitant seulement une
partiedes donnéesgrâceàun doubletiragealéatoire:
Treebagging: tiragesurlesindividus.
Featuresampling:tiragesurlesvariables.
Au final, tout ces arbres de décisions indépendants sont assemblés par la
moyennedans lecasde larégression.
GridSearch sur lesparamètres :
Max_features : nombre de variables à prendre en compte pour le
featuresampling.
Max_depth: profondeurmaximalede l’arbrededécision.
Min_sample_split : minimumd’échantillonpourle treebagging.
Bootstrap :Indiquesil’onprendl’ensembledes donnéesou non.
Min_sample_leaf : Apporte un effet de lissage dans le cas d’une
régression.
45. NOM OU LOGO
Arbresdedécision:RandomForestRegressor
45
Scores RFR sur TotalGHGEmissions
Scores RFR sur SiteEnergyUse
Les scores se sont ici nettement améliorés comparé aux modèles linéaires.
En revanche, les temps d’entrainement sont beaucoup plus importants.
46. NOM OU LOGO
GradientBoosting:XGBoost
46
Explication du modèle:
Ce boosting consiste à assembler plusieurs algorithmes ayant une
performancepeuélevéepour encréerunbeaucoupplusefficace.
Dans le cadre de la régression, les variables à prédire vont être estimées
avec un premier modèle, puis les résidus de ce modèle deviendront les
variablesciblesdu secondmodèle,etainsi desuite.
GridSearch sur lesparamètres :
Learning_rate : Le taux d’apprentissage eta réduit les
pondérationsdesfeaturespouréviterl’overfitting.
gamma : Réduction minimale de la perte pour effectuer une
partitionsupplémentaire.
Min_child_weight: nombre d'échantillons requis pour former un
nœud.
N_estimators : Nombre d'arbres séquentiels pour corriger les
arbresprécédents.
47. NOM OU LOGO
GradientBoosting:XGBoost
47
Scores XGB sur TotalGHGEmissions
Scores XGB sur SiteEnergyUse
Les scores de l’algorithme XGBoost sont encore supérieurs à ceux de
RandomForest. Cependant, une RandomizedSearchCV a été ici utilisée et le
recours au calcul GPUaété nécessaire.
51. NOM OU LOGO
AméliorationdesparamètresdelaGridSearchRandomForest
51
Ici les graphiques d’évolution des scores en fonction des paramètres testés avec la grille de recherche. Les meilleurs paramètres sélectionnés pournotre RandomForest sont :
Bootstrap =False Max_features =log2 Min_sample_split=2
Max_depth=50 Min_sample_leaf=1
52. NOM OU LOGO
ImportancedesvariablesdansRandomForest
52
Les surfaces (GFA) de la propriété et le type
d'utilisation principale ont un poids plus
important dans les décisions de notre modèle.
En revanche, le type de bâtiment a un impact très
limité. On remarque également que l'âge du
bâtiment ou encore son emplacement
géographique n'ont pas un impact très important
non plus.
55. NOM OU LOGO
AméliorationdesparamètresdelaGridSearchRandomForest
55
Ici les graphiques d’évolution des scores en fonction des paramètres testés avec la grille de recherche. Les meilleurs paramètres sélectionnés pournotre RandomForest sont :
Bootstrap =False Max_features =log2 Min_sample_split=2
Max_depth=50 Min_sample_leaf=1
58. NOM OU LOGO
TotalGHGEmission:TestdumodèleRandomForest
58
Le modèle est testé sur 315 lignes.
Les métriques obtenues et projections des valeurs
prédites en fonction des valeurs réélles sont très
dégradéescomparées àla validation croisée :
Résultats
MAE 6,48*106
R² -7,73*108
59. NOM OU LOGO
TotalGHGEmission:Pourquoilemodèleestmoinsbon?
59
Si l’on projette les scores obtenus sur les différents splits de la validation croisée, pour les meilleurs paramètres de notre RandomForest, on remarque qu’ils suivent une
évolution normale et qu’il restent dans lamême échelle.
60. NOM OU LOGO
TotalGHGEmission:Pourquoilemodèleestmoinsbon?
60
Plusieurs explications possible à cette perte de
précision sur lejeu de test :
Le transformer logarithme / exponentiel sur
les variables Y a tendance à augmenter le
risque d’erreur lors de la transformation
inverse.
Le jeu de données comporte peu d’entrées.
Les splits de train et test peuvent donc être
complétement différents ce qui n’aide pas à la
généralisation.
61. NOM OU LOGO
SiteEnergyUse:TestdumodèleRandomForest
61
Ici encore, le même problème que pour la variable
TotalGHG se pose. Le modèle est performant en
entrainement mais ne parvient pas à généraliser
sur lejeu detest.
Les métriques sont également dégradées :
Résultats
MAE 3,38*106
R² 6,83*10-1
62. NOM OU LOGO
SiteEnergyUse:Touslestypesdebâtimentssontconcernés?
62
On remarqueici les écartsdemoyenne entrelesvaleurs prédites etles valeurs réelles dela consommation d’énergie. Lescampus,qui sontles bâtiments les plus énergivores et
les moins représentés, présente un écart assez important.
64. NOM OU LOGO
ENERGYSTARScoreenbref:
64
La majorité des scores distribués est supérieur à 50, donc de bonne qualité environnementale. Il ne semble pas exister de corrélations particulière de ce score avec les
émissions de CO2.
Nous allons donc tester cette variable sur un jeu d’entrainement de 833 lignes et 209 lignes de test.
65. NOM OU LOGO
ModélisationRandomForestavecENERGYSTARScore
65
Un modèle RandomForest a donc été ré-entrainé en
ajoutant cette variable en plus des variables déjà
utilisées.
Les métriques sur la GridSearchCV se sont améliorées
demanière assez significatives.
66. NOM OU LOGO
PrédictiondesémissionsdeCO2avecENERGYSTARScore
66
Les valeurs prédites sont en effet beaucoup plus reserrées sur
la première bissectrice et les métriques se sont améliorées
grâceà la prise en comptedel'ENERGY STAR Score :
Sans
Energy Star
Avec
Energy Star
MAE 6,48*106 152,41
R² -7,73*108 0,452
67. NOM OU LOGO
○ Suite à nos modélisations, il est possible de dire que les variables
de localisation ou encore de surface des bâtiments non
résidentiels pourraient permettre de développer des modèles
performants.
○ Ajouter le score ENERGY STAR permet d’améliorer encore ces
prédictions mais il faut en évaluer le rapport bénéfice / coût et le
généraliser.
○ Le volume des données disponibles en revanche, trop faible, pose
des problèmes important de précision de modèles et il est donc
très difficile d’en évaluer clairement les performances.
Conclusion
Peut-on prédire les consommations d’énergie et les rejets de CO2 en évitant les
relevés annuelsà Seattle ?
67