Mikor és hogyan kell használni a StandardScalert?
Ha az adott adatkészlet jellemzői jelentősen ingadoznak a tartományukon belül, vagy különböző mértékegységekben vannak rögzítve, a StandardScaler belép a képbe.
Az adatok 1-es varianciára skálázódnak, miután az átlagot a StandardScaler segítségével 0-ra csökkentették. Ám az adatok empirikus átlagának és a szórásnak a meghatározásakor az adatokban jelenlévő kiugró értékeknek jelentős hatása van, ami csökkenti a jellemző értékek spektrumát.
Sok gépi tanulási algoritmus problémákba ütközhet az induló funkciók ezen eltérései miatt. A távolságot számító algoritmusok esetében például, ha az adatkészlet bármely jellemzője nagy vagy teljesen eltérő tartományú értékekkel rendelkezik, az adatkészlet adott jellemzője szabályozza a távolságszámítást.
java tömb lista
A sklearn StandardScaler függvénye azon az elméleten alapul, hogy az adathalmaz változói, amelyek értéke különböző tartományba esik, nem járulnak hozzá egyenlő mértékben a modell illeszkedési paramétereihez és a betanítási függvényhez, és akár torzításhoz is vezethetnek az adott modellel készített előrejelzésekben.
Ezért, mielőtt a jellemzőket belefoglalnánk a gépi tanulási modellbe, normalizálnunk kell az adatokat (µ = 0, σ = 1). A funkciótervezés szabványosítását általában ennek a lehetséges problémának a megoldására alkalmazzák.
Szabványosítás a Sklearn használatával
sklearn.preprocessing.StandardScaler(*, copy = True, with_mean = True, with_std = True)
A jellemzők átlagának kiiktatásával és egységvarianciára skálázásával a jellemzők szabványosításra kerülnek ezzel a funkcióval.
A jellemző standard pontszámának kiszámításának képlete: z = (x - u) / s, ahol u a betanítási jellemző átlaga (vagy nulla, ha with_mean = hamis), s pedig a minta szórása (vagy egy, ha with_std = hamis ).
A képzési készlet jellemzőire vonatkozó releváns statisztikák kiszámításával a központosítást és a skálázást az egyes jellemzőkre függetlenül alkalmazzák. Ezután a későbbi mintákhoz a transform() használatával a fit() metódus tárolja az átlagot és a szórást.
hogyan kell rendezni a tömblistát java-ban
Paraméterek:
Tulajdonságok:
A StandardScaler osztály módszerei
illeszkedés(X[, y, minta_súlya]) | Ez a módszer kiszámítja az átlagot és a szórást, amelyet később az adatok skálázásához használ. |
fit_transform(X[, y]) | Ez a módszer illeszkedik az adatok paramétereihez, majd átalakítja azokat. |
get_feature_names_out([input_features]) | Ez a metódus lekéri az átalakítás jellemzőneveit. |
get_params([mély]) | Ez a módszer megadja az adott becslő paramétereit. |
inverz_transzformáció(X[, másolás]) | Csökkenti az adatok méretét, hogy megfeleljen az eredeti formájának. |
részleges_illesztés(X[, y, minta_súlya]) | Az X átlagát és szórását a rendszer online számítja ki a későbbi skálázáshoz. |
set_params(**params) | Ez a módszer a becslő paramétereinek értékének beállítására szolgál. |
transzformáció(X[, másolás]) | Ez a metódus átalakítja az adatokat az osztályban már tárolt paraméterek felhasználásával. |
Példa a StandardScalerre
Először is importáljuk a szükséges könyvtárakat. A StandardScaler függvény használatához importálnunk kell a Sklearn könyvtárat.
Ezután betöltjük az írisz adatkészletet. Az IRIS adatkészletet importálhatjuk a sklearn.datasets könyvtárból.
Létrehozunk egy objektumot a StandardScaler osztályból.
A független és céljellemzők elkülönítése.
mycricketlive
A fit transform() metódus segítségével hajtjuk végre az átalakítást az adatkészletbe.
Szintaxis:
object_ = StandardScaler() object_.fit_transform(features)
Kezdetben elkészítettük a StandardScaler() metódus egy példányát a fent említett szintaxist követve. Ezenkívül szabványosítjuk az adatokat a fit_transform() és a megadott objektum használatával.
Kód
# 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_)
Kimenet
[[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]