Mise à l’échelle de l’apprentissage automatique Python

Caractéristiques de l’échelle
Lorsque vos données ont des valeurs différentes, voire des unités de mesure différentes, il peut être difficile de les comparer. Qu’est-ce que les kilogrammes par rapport aux mètres ? Ou l’altitude par rapport au temps ?
La réponse à ce problème est la mise à l’échelle. Nous pouvons transformer les données en nouvelles valeurs plus faciles à comparer.
Jetez un oeil au tableau ci-dessous, c’est le même ensemble de données que nous avons utilisé dans le chapitre sur la régression multiple, mais cette fois le volume la colonne contient des valeurs dans litres au lieu de cm3 (1.0 au lieu de 1000).
Voiture | Modèle | Volume | Lester | CO2 |
Toyota | Aygo | 1.0 | 790 | 99 |
Mitsubishi | Étoile de l’espace | 1.2 | 1160 | 95 |
Skoda | Citigo | 1.0 | 929 | 95 |
Décret | 500 | 0,9 | 865 | 90 |
mini | Tonnelier | 1.5 | 1140 | 105 |
VW | En haut! | 1.0 | 929 | 105 |
Skoda | fabienne | 1.4 | 1109 | 90 |
Mercedes | Une classe | 1.5 | 1365 | 92 |
Gué | Fête | 1.5 | 1112 | 98 |
Audi | A1 | 1.6 | 1150 | 99 |
Hyundai | I20 | 1.1 | 980 | 99 |
Suzuki | Rapide | 1.3 | 990 | 101 |
Gué | Fête | 1.0 | 1112 | 99 |
Honda | Civique | 1.6 | 1252 | 94 |
Hundaï | I30 | 1.6 | 1326 | 97 |
Opel | Astra | 1.6 | 1330 | 97 |
BMW | 1 | 1.6 | 1365 | 99 |
Mazda | 3 | 2.2 | 1280 | 104 |
Skoda | Rapide | 1.6 | 1119 | 104 |
Gué | Se concentrer | 2.0 | 1328 | 105 |
Gué | Mondeo | 1.6 | 1584 | 94 |
Opel | Insigne | 2.0 | 1428 | 99 |
Mercedes | Classe C | 2.1 | 1365 | 99 |
Skoda | Octavie | 1.6 | 1415 | 99 |
VOLVO | S60 | 2.0 | 1415 | 99 |
Mercedes | CLA | 1.5 | 1465 | 102 |
Audi | A4 | 2.0 | 1490 | 104 |
Audi | A6 | 2.0 | 1725 | 114 |
VOLVO | V70 | 1.6 | 1523 | 109 |
BMW | 5 | 2.0 | 1705 | 114 |
Mercedes | Classe E | 2.1 | 1605 | 115 |
VOLVO | XC70 | 2.0 | 1746 | 117 |
Gué | B-Max | 1.6 | 1235 | 104 |
BMW | 2 | 1.6 | 1390 | 108 |
Opel | Zafira | 1.6 | 1405 | 109 |
Mercedes | SLK | 2.5 | 1395 | 120 |
Il peut être difficile de comparer le volume 1.0 avec le poids 790, mais si nous les mettons tous les deux à l’échelle en valeurs comparables, nous pouvons facilement voir à quel point une valeur est comparée à l’autre.
Il existe différentes méthodes pour mettre à l’échelle les données, dans ce didacticiel, nous utiliserons une méthode appelée standardisation.
La méthode de standardisation utilise cette formule :
z = (x - u) / s
Où z
est la nouvelle valeur,
x
est la valeur d’origine,
u
est la moyenne et s
est l’écart-type.
Si vous prenez le lester colonne de l’ensemble de données ci-dessus, la première valeur est 790 et la valeur mise à l’échelle sera :
(790 - 1292.23) / 238.74 = -2.1
Si vous prenez le volume colonne de l’ensemble de données ci-dessus, la première valeur est 1,0 et la valeur mise à l’échelle sera :
(1.0 - 1.61) / 0.38 = -1.59
Vous pouvez maintenant comparer -2,1 avec -1,59 au lieu de comparer 790 avec 1,0.
Vous n’avez pas à le faire manuellement, le module Python sklearn a une méthode appelée StandardScaler()
qui renvoie un objet Scaler avec des méthodes de transformation d’ensembles de données.
Exemple
Mettre à l’échelle toutes les valeurs dans les colonnes Poids et Volume :
importer des pandas
de sklearn importer linear_model
depuis sklearn.preprocessing importer StandardScaler
échelle = Échelle Standard()
df = pandas.read_csv(“data.csv”)
X = df[[‘Weight’, ‘Volume’]]
scaledX = scale.fit_transform(X)
imprimer (à l’échelle X)
Résultat:
A noter que les deux premières valeurs sont -2,1 et -1,59, ce qui correspond à nos calculs :
[[-2.10389253 -1.59336644] [-0.55407235 -1.07190106] [-1.52166278 -1.59336644] [-1.78973979 -1.85409913] [-0.63784641 -0.28970299] [-1.52166278 -1.59336644] [-0.76769621 -0.55043568] [ 0.3046118 -0.28970299] [-0.7551301 -0.28970299] [-0.59595938 -0.0289703 ] [-1.30803892 -1.33263375] [-1.26615189 -0.81116837] [-0.7551301 -1.59336644] [-0.16871166 -0.0289703 ] [ 0.14125238 -0.0289703 ] [ 0.15800719 -0.0289703 ] [ 0.3046118 -0.0289703 ] [-0.05142797 1.53542584] [-0.72580918 -0.0289703 ] [ 0.14962979 1.01396046] [ 1.2219378 -0.0289703 ] [ 0.5685001 1.01396046] [ 0.3046118 1.27469315] [ 0.51404696 -0.0289703 ] [ 0.51404696 1.01396046] [ 0.72348212 -0.28970299] [ 0.8281997 1.01396046] [ 1.81254495 1.01396046] [ 0.96642691 -0.0289703 ] [ 1.72877089 1.01396046] [ 1.30990057 1.27469315] [ 1.90050772 1.01396046] [-0.23991961 -0.0289703 ] [ 0.40932938 -0.0289703 ] [ 0.47215993 -0.0289703 ] [ 0.4302729 2.31762392]]
Exemple d’exécution »
Prédire les valeurs de CO2
La tâche du chapitre sur la régression multiple consistait à prédire les émissions de CO2 d’une voiture alors que vous ne connaissiez que son poids et son volume.
Lorsque l’ensemble de données est mis à l’échelle, vous devrez utiliser l’échelle lorsque vous prédisez des valeurs :
Exemple
Prévoyez les émissions de CO2 d’une voiture de 1,3 litre qui pèse 2300 kilogrammes :
importer des pandas
de sklearn importer linear_model
depuis sklearn.preprocessing importer StandardScaler
échelle = Échelle Standard()
df = pandas.read_csv(“data.csv”)
X = df[[‘Weight’, ‘Volume’]]
y = df[‘CO2’]
scaledX = scale.fit_transform(X)
regr = linear_model.LinearRegression()
regr.fit(scaledX, y)
mise à l’échelle = mise à l’échelle.transform([[2300, 1.3]])
préditCO2 = regr.predict([scaled[0]])
impression (CO2 prédit)
Résultat:
Exemple d’exécution »
#Mise #léchelle #lapprentissage #automatique #Python