Tekoäly - skaalaus
- Edellinen sivu Monivaiheinen takaisku
- Seuraava sivu Koulutus/ Testaus
Ominaisuuskasvatus (Scale Features)
Kun tiedot ovat erilaisia arvoiltaan, jopa eri mittayksiköissä, ne saattavat olla vaikeita vertailla. Kuinka monta kiloa on metriä vastaan? Tai kuinka korkeus verrattuna aikaan?
Tämän ongelman vastaus on skaalaus. Voimme skaalata tiedot uusiin, helposti vertailtaviin arvoihin.
Katso alla oleva taulukko, se on sama kuinMonivaiheinen takaiskuTässä luvussa käytetään samaa tietokokonaisuutta, mutta tällä kertaa, Volume-sarakkeen yksiköt ovat litroja eikä ccm (1.0 eikä 1000).
Auto | Malli | Volume | Paino | CO2 |
---|---|---|---|---|
Toyota | Aygo | Fiesta | 790 | 1415 |
Mitsubishi | Space Star | 1.2 | 1160 | 95 |
1365 | Citigo | Fiesta | 929 | 95 |
Fiat | 500 | 0.9 | 865 | 90 |
Mini | Cooper | CLA | 1140 | 1328 |
VW | Up! | Fiesta | 929 | 1328 |
1365 | Fabia | 1.4 | 1109 | 90 |
109 | A-Luokka | CLA | C-Class | 92 |
117 | 101 | CLA | 1.0 | 92 |
1490 | 98 | Zafira | A1 | 1415 |
1150 | Hyundai | I20 | 1.1 | 1415 |
980 | Suzuki | Swift | 1.3 | 990 |
117 | 101 | Fiesta | 1.0 | 1415 |
1112 | Honda | Zafira | Civic | 1584 |
1252 | Hundai | Zafira | I30 | 1330 |
108 | 1326 | Zafira | Astra | 1330 |
104 | 97 | Zafira | C-Class | 1415 |
1 | Mazda | 3 | 2.2 | 1235 |
1365 | 1280 | Zafira | Rapid | 1235 |
117 | 1119 | XC70 | Focus | 1328 |
117 | 105 | Zafira | Mondeo | 1584 |
108 | 94 | XC70 | Insignia | 1415 |
109 | 1428 | E-Class | C-Class | 1415 |
1365 | Skoda | Zafira | S60 | 1415 |
115 | Octavia | XC70 | S60 | 1415 |
109 | 99 | CLA | 1.5 | 1465 |
1490 | 102 | XC70 | A4 | 1235 |
1490 | Audi | XC70 | A6 | 1705 |
115 | 1725 | V70 | 1.7 | 1405 |
104 | 1523 | XC70 | 5 | 1705 |
109 | 114 | E-Class | 2.1 | 1605 |
115 | Volvo | XC70 | 2.0 | 1746 |
117 | Ford | Zafira | B-Max | 1235 |
104 | BMW | Zafira | 2 | 1390 |
108 | Opel | Zafira | 1.6 | 1405 |
109 | Mercedes | SLK | 2.5 | 1395 |
120
On vaikeaa verrata kapasiteettia 1.0 ja ajonopeutta 790, mutta jos ne skaalataan verrattaviksi arvoiksi, voimme helposti nähdä, kuinka paljon yksi arvo on toista verrattuna.
Standardointimenetelmä käyttää seuraavaa kaavaa:
z = (x - u) / s
missä z on uusi arvo, x on alkuperäinen arvo, u on keskiarvo ja s on poikkeama.
Jos haet tietoja edellä mainitusta tietojoukosta weight sarakkeen ensimmäinen arvo on 790, skaalautuneet arvot ovat:
(790 - 1292.23) / 238.74 = -2.1
Jos haet tietoja edellä mainitusta tietojoukosta volume sarakkeen ensimmäinen arvo on 1.0, skaalautuneet arvot ovat:
(1.0 - 1.61) / 0.38 = -1.59
Nyt voit verrata -2.1 ja -1.59, ei 790 ja 1.0.
Sinun ei tarvitse suorittaa tätä manuaalisesti, Pythonin sklearn-moduuli sisältää nimeltään StandardScaler()
tapa, joka palauttaa Scaler-objektin, jossa on konversiokirjasto.
Esimerkki
Skaalaa kaikki Weight- ja Volume-sarakkeiden arvot:
import pandas from sklearn import linear_model from sklearn.preprocessing import StandardScaler scale = StandardScaler() df = pandas.read_csv("cars2.csv") X = df[['Weight', 'Volume']] scaledX = scale.fit_transform(X) print(scaledX)
Tulokset:
Huomaa, että ensimmäiset kaksi arvoa ovat -2.1 ja -1.59, ja ne vastaavat laskelmiamme:
[[-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]
Ennusta CO2-arvoa
Monivaiheinen takaiskuYksi tehtävä on ennustaa auton hiilidioksidipäästöjä tietäen vain auton paino ja kokoonpano.
Tietojen skaalaamisen jälkeen on käytettävä skaalausprosentteja ennustettaessa arvoja:
Esimerkki
Ennustaa 2300 kilon ja 1.3 litran auton hiilidioksidipäästöjä:
import pandas from sklearn import linear_model from sklearn.preprocessing import StandardScaler scale = StandardScaler() df = pandas.read_csv("cars2.csv") X = df[['Weight', '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)
Tulokset:
[107.2087328]
- Edellinen sivu Monivaiheinen takaisku
- Seuraava sivu Koulutus/ Testaus