Apprentissage Automatique - Échelle
- Page précédente Régression multiple
- Page suivante Entraînement/test
Ajustement des caractéristiques (Scale Features)
Il peut être difficile de comparer vos données lorsque vos valeurs sont différentes, même si elles utilisent des unités de mesure différentes. Combien est le kilogramme par rapport au mètre ? Ou l'altitude par rapport au temps ?
La réponse à cette question est le réglage. Nous pouvons régler les données pour obtenir de nouvelles valeurs faciles à comparer.
Veuillez consulter le tableau suivant, qui est enRégression multipleLes ensembles de données utilisés dans ce chapitre sont identiques, mais cette fois, la colonne Volume contient des unités de litre au lieu de ccm (1.0 au lieu de 1000).
Car | Model | Volume | Weight | CO2 |
---|---|---|---|---|
Toyota | Aygo | 1,0 | 790 | 99 |
Mitsubishi | Space Star | 1.2 | 1160 | 95 |
Skoda | Citigo | 1,0 | 929 | 95 |
Fiat | 500 | 0.9 | 865 | 90 |
Mini | Cooper | 1,5 | 1140 | 105 |
VW | Up! | 1,0 | 929 | 105 |
Skoda | Fabia | 1.4 | 1109 | 90 |
Mercedes | A-Class | 1,5 | 1365 | 92 |
Ford | Fiesta | 1,5 | 1112 | 98 |
Audi | A1 | 1,6 | 1150 | 99 |
Hyundai | I20 | 1,1 | 980 | 99 |
Suzuki | Swift | 1,3 | 990 | 101 |
Ford | Fiesta | 1,0 | 1112 | 99 |
Honda | Civic | 1,6 | 1252 | 94 |
Hundai | I30 | 1,6 | 1326 | 97 |
Opel | Astra | 1,6 | 1330 | 97 |
BMW | 1 | 1,6 | 1365 | 99 |
Mazda | 3 | 2,2 | 1280 | 104 |
Skoda | Rapid | 1,6 | 1119 | 104 |
Ford | Focus | 2,0 | 1328 | 105 |
Ford | Mondeo | 1,6 | 1584 | 94 |
Opel | Insignia | 2,0 | 1428 | 99 |
Mercedes | C-Class | 2,1 | 1365 | 99 |
Skoda | Octavia | 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,7 | 1523 | 109 |
BMW | 5 | 2,0 | 1705 | 114 |
Mercedes | E-Class | 2,1 | 1605 | 115 |
Volvo | XC70 | 2,0 | 1746 | 117 |
Ford | 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 est difficile de comparer le volume 1,0 avec le poids 790, mais si nous les dilatons tous pour des valeurs comparables, nous pouvons facilement voir combien une valeur est comparable à une autre.
Il y a plusieurs méthodes d'échelle de données, dans ce tutoriel, nous utiliserons une méthode appelée normalisation (standardization).
La méthode de normalisation utilise la formule suivante :
z = (x - u) / s
Où z est la nouvelle valeur, x est la valeur originale, u est la moyenne, et s est l'écart type.
Si vous obtenez des données à partir des données ci-dessus weight Colonne, la première valeur est 790, et la valeur après l'échelle est :
(790 - 1292,23) / 238,74 = -2,1
Si vous obtenez des données à partir des données ci-dessus volume Colonne, la première valeur est 1,0, et la valeur après l'échelle est :
(1,0 - 1,61) / 0,38 = -1,59
Maintenant, vous pouvez comparer -2,1 avec -1,59, au lieu de comparer 790 avec 1,0.
Vous n'avez pas besoin d'exécuter cette opération manuellement, le module sklearn de Python contient un nom appelé StandardScaler()
La méthode, qui retourne un objet Scaler avec la méthode de conversion de jeu de données.
Exemple
Ajuster toutes les valeurs des colonnes Weight et Volume :
import pandas from sklearn import linear_model from sklearn.preprocessing import StandardScaler scale = StandardScaler() df = pandas.read_csv("cars2.csv") X = df[['Poids', 'Volume']] scaledX = scale.fit_transform(X) print(scaledX)
Résultat :
Veuillez 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]
Prédire la valeur CO2
Régression multipleLa tâche de ce chapitre consiste à prédire les émissions de CO2 d'une voiture en fonction de son poids et de sa capacité, sans connaître d'autres informations.
Après l'ajustement des données, l'échelle de réduction doit être utilisée lors de la prédiction des valeurs :
Exemple
Prédire la quantité de CO2 émise par une voiture de 1.3 litres pesant 2300 kg :
import pandas from sklearn import linear_model from sklearn.preprocessing import StandardScaler scale = StandardScaler() df = pandas.read_csv("cars2.csv") X = df[['Poids', 'Volume']] y = df['CO2'] scaledX = scale.fit_transform(X) regr = linear_model.LinearRegression() regr.fit(scaledX, y) scaled = scale.transform([[2300, 1.3]]) predictedCO2 = regr.predict([scaled[0]]) print(predictedCO2)
Résultat :
[107.2087328]
- Page précédente Régression multiple
- Page suivante Entraînement/test