Milloin ja miten StandardScaleria käytetään?
Kun tietyn tietojoukon ominaisuudet vaihtelevat merkittävästi omilla alueillaan tai ne tallennetaan eri mittayksiköihin, StandardScaler tulee kuvaan.
Tiedot skaalataan varianssiin 1 sen jälkeen, kun keskiarvo on vähennetty nollaan StandardScalerin avulla. Mutta määritettäessä datan empiiristä keskiarvoa ja keskihajontaa, tiedoissa esiintyvillä poikkeavuuksilla on merkittävä vaikutus, joka pienentää ominaisarvojen spektriä.
Monet koneoppimisalgoritmit voivat kohdata ongelmia näiden aloitusominaisuuksien vaihtelujen vuoksi. Algoritmeille, jotka laskevat etäisyyttä, esimerkiksi jos jollakin tietojoukon ominaisuuksista on arvot, joilla on suuret tai täysin erilaiset alueet, tietojoukon kyseinen ominaisuus ohjaa etäisyyslaskentaa.
Sklearnin StandardScaler-funktio perustuu teoriaan, että tietojoukon muuttujat, joiden arvot ovat eri alueilla, eivät vaikuta yhtä paljon mallin sovitusparametreihin ja harjoitusfunktioon ja voivat jopa johtaa harhaan tällä mallilla tehdyissä ennusteissa.
Siksi ennen ominaisuuksien sisällyttämistä koneoppimismalliin meidän on normalisoitava tiedot (µ = 0, σ = 1). Ominaisuussuunnittelun standardointia käytetään yleisesti tämän mahdollisen ongelman ratkaisemiseksi.
Standardointi Sklearnilla
sklearn.preprocessing.StandardScaler(*, copy = True, with_mean = True, with_std = True)
Eliminoimalla ominaisuuksien keskiarvo ja skaalaamalla ne yksikkövarianssiin, ominaisuudet standardoidaan tällä toiminnolla.
stdin c -ohjelmointi
Ominaisuuden vakiopistemäärän laskentakaava on z = (x - u) / s, jossa u on harjoitusominaisuuden keskiarvo (tai nolla, jos kanssa_keskiarvo = epätosi) ja s on otoksen keskihajonta (tai yksi, jos with_std = false) ).
Laskemalla asiaankuuluvat tilastot harjoitussarjan ominaisuuksista, keskitys ja skaalaus sovelletaan itsenäisesti jokaiseen ominaisuuteen. Sitten käytettäväksi myöhempien näytteiden kanssa transform()-funktiolla, fit()-menetelmä tallentaa keskiarvon ja keskihajonnan.
Parametrit:
Ominaisuudet:
StandardScaler-luokan menetelmät
sovi(X[, y, näytteen_paino]) | Tämä menetelmä laskee keskiarvon ja keskihajonnan käytettäväksi myöhemmin tietojen skaalauksessa. |
sovi_muunnos(X[, y]) | Tämä menetelmä sovittaa datan parametrit ja muuntaa sen sitten. |
get_feature_names_out([input_features]) | Tämä menetelmä hankkii muunnoksen ominaisuuksien nimet. |
get_params([syvä]) | Tämä menetelmä antaa tietyn estimaattorin parametrit. |
käänteinen_muunnos(X[, kopioi]) | Se pienentää tietojen kokoa vastaamaan sen alkuperäistä muotoa. |
osittainen_sovitus(X[, y, näytteen_paino]) | X:n keskiarvo ja keskihajonta lasketaan verkossa myöhempää skaalausta varten. |
set_params(**params) | Tätä menetelmää käytetään estimaattorin parametrien arvon asettamiseen. |
muunnos(X[, kopioi]) | Tämä menetelmä muuntaa tiedot käyttämällä luokkaan jo tallennettuja parametreja. |
Esimerkki StandardScalerista
Ensin tuomme tarvittavat kirjastot. Jotta voisimme käyttää StandardScaler-toimintoa, meidän on tuotava Sklearn-kirjasto.
Sitten lataamme iiristietojoukon. Voimme tuoda IRIS-tietojoukon sklearn.datasets-kirjastosta.
Luomme StandardScaler-luokan objektin.
Itsenäisten ja kohdeominaisuuksien erottaminen.
Käytämme fit transform() -menetelmää muunnoksen toteuttamiseen tietojoukkoon.
Syntaksi:
object_ = StandardScaler() object_.fit_transform(features)
Alun perin rakensimme StandardScaler()-menetelmän esiintymän edellä mainittua syntaksia noudattaen. Lisäksi standardoimme tiedot käyttämällä fit_transform()-komentoa yhdessä tarjotun objektin kanssa.
int char
Koodi
# Python program to standardize the data # Importing the required library from sklearn.preprocessing import StandardScaler from sklearn.datasets import load_iris # Loading the dataset X, Y = load_iris(return_X_y = True) # Printing 3 rows of original data print(X[:3, :]) # Creating an object of the StandardScaler class std_scaler = StandardScaler() # Printing 3 rows of the transformed data print(std_scaler.fit_transform(X)[:3, :]) print(std_scaler.mean_)
Lähtö
[[5.1 3.5 1.4 0.2] [4.9 3. 1.4 0.2] [4.7 3.2 1.3 0.2]] [[-0.90068117 1.01900435 -1.34022653 -1.3154443 ] [-1.14301691 -0.13197948 -1.34022653 -1.3154443 ] [-1.38535265 0.32841405 -1.39706395 -1.3154443 ]] [5.84333333 3.05733333 3.758 1.19933333]