Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele StandardScaler, MinMaxScaler, MaxAbsScaler | Datan Esikäsittely Scikit-learnilla
Johdatus koneoppimiseen Pythonilla

StandardScaler, MinMaxScaler, MaxAbsScaler

Pyyhkäise näyttääksesi valikon

Kolme suosittua lähestymistapaa datan skaalaamiseen:

  • MinMaxScaler: skaalaa ominaisuudet [0, 1] -välille;
  • MaxAbsScaler: skaalaa ominaisuudet siten, että suurin itseisarvo on 1 (tällöin data on varmasti [-1, 1] -välillä);
  • StandardScaler: standardoi ominaisuudet siten, että keskiarvo on 0 ja varianssi 1.

Havainnollistetaan skaalainten toimintaa tarkastelemalla 'culmen_depth_mm'- ja 'body_mass_g'-ominaisuuksia penguins dataset -aineistosta. Näitä ominaisuuksia voidaan visualisoida niiden mittakaavojen havainnollistamiseksi.

ei skaalausta

MinMaxScaler

MinMaxScaler toimii vähentämällä pienimmän arvon (jotta arvot alkavat nollasta) ja jakamalla sitten (x_max - x_min):llä, jolloin tulos on enintään 1.

MinMax
MinMaxScaler

Tässä on gif, joka havainnollistaa, miten MinMaxScaler toimii:

MinMaxSkaalaus

MaxAbsScaler

MaxAbsScaler etsii suurimman itseisarvon ja jakaa jokaisen arvon sillä. Tämä varmistaa, että suurin itseisarvo on 1.

MaxAbs
MaxAbsSkaalain
MaxAbsSkaalaus

StandardScaler

StandardScaler perustuu tilastotieteeseen. Se toimii vähentämällä keskiarvon (keskittääkseen arvot nollan ympärille) ja jakamalla keskihajonnalla (asettaakseen varianssin arvoksi 1).

Note
Huomio

Jos et ymmärrä, mitä keskiarvo, keskihajonta ja varianssi tarkoittavat, voit tutustua Learning Statistics with Python -kurssiimme. Tämä tieto ei kuitenkaan ole välttämätöntä jatkaaksesi eteenpäin.

StandardScaler-kaava
StandardScaler
StandardScaling

Tässä on koodiesimerkki MinMaxScaler-luokan käytöstä. Muita skaalaimia käytetään samalla tavalla.

12345678910
import pandas as pd from sklearn.preprocessing import MinMaxScaler df = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/a65bbc96-309e-4df9-a790-a1eb8c815a1c/penguins_imputed_encoded.csv') # Assign X,y variables X, y = df.drop('species', axis=1), df['species'] # Initialize a MinMaxScaler object and transform the X minmax = MinMaxScaler() X = minmax.fit_transform(X) print(X)

Tuloste ei ole kovin siisti, koska skaalaajat muuntavat datan numpy-taulukoksi, mutta putkistojen avulla tämä ei ole ongelma.

Note
Huomio

Vain piirre-sarakkeet (muuttuja X) tulisi skaalata. Kohdemuuttujaa ei tarvitse skaalata, sillä se vaikeuttaisi käänteismuunnosprosessia.

Minkä skaalaimen valitsisit?

StandardScaler on herkempi poikkeaville arvoille, mikä tekee siitä vähemmän sopivan oletusskaalaimeksi. Jos haluat vaihtoehdon StandardScaler:lle, valinta MinMaxScaler:n ja MaxAbsScaler:n välillä riippuu henkilökohtaisista mieltymyksistä: haluatko skaalata datan [0,1]-välille MinMaxScaler:lla vai [-1,1]-välille MaxAbsScaler:lla.

1. Mikä on MinMaxScaler:n ensisijainen tarkoitus datan esikäsittelyssä?

2. Miksi saattaisit harkita uudelleen StandardScaler:n käyttöä aineistossasi?

question mark

Mikä on MinMaxScaler:n ensisijainen tarkoitus datan esikäsittelyssä?

Valitse oikea vastaus

question mark

Miksi saattaisit harkita uudelleen StandardScaler:n käyttöä aineistossasi?

Valitse oikea vastaus

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 2. Luku 10

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme

Osio 2. Luku 10
some-alt