logo

StandardScaler programmā Sklearn

Kad un kā lietot StandardScaler?

Kad dotās datu kopas īpašības ievērojami svārstās to diapazonos vai tiek ierakstītas dažādās mērvienībās, StandardScaler ievada attēlu.

Dati tiek mērogoti līdz dispersijai 1 pēc tam, kad vidējais rādītājs ir samazināts līdz 0, izmantojot StandardScaler. Bet, nosakot datu empīrisko vidējo un standartnovirzi, datos esošās novirzes būtiski ietekmē, kas samazina raksturīgo vērtību spektru.

Daudzos mašīnmācīšanās algoritmos var rasties problēmas šo sākuma funkciju atšķirību dēļ. Algoritmiem, kas aprēķina attālumu, piemēram, ja kādai no datu kopas funkcijām ir vērtības ar lieliem vai pilnīgi atšķirīgiem diapazoniem, šī konkrētā datu kopas funkcija kontrolēs attāluma aprēķinu.

Sklearn funkcija StandardScaler ir balstīta uz teoriju, ka datu kopas mainīgajiem, kuru vērtības atrodas dažādos diapazonos, nav vienāda ieguldījuma modeļa atbilstības parametros un apmācības funkcijā, un tie var pat izraisīt novirzes prognozēs, kas veiktas ar šo modeli.

pārvērst in par virkni java

Tāpēc pirms funkciju iekļaušanas mašīnmācīšanās modelī mums ir jānormalizē dati (µ = 0, σ = 1). Lai risinātu šo potenciālo problēmu, parasti tiek izmantota standartizācija funkciju inženierijā.

Standartizācija, izmantojot Sklearn

 sklearn.preprocessing.StandardScaler(*, copy = True, with_mean = True, with_std = True) 

Likvidējot pazīmju vidējo vērtību un mērogojot tās līdz vienību dispersijai, funkcijas tiek standartizētas, izmantojot šo funkciju.

Formula objekta standarta rezultāta aprēķināšanai ir z = (x - u) / s, kur u ir apmācības objekta vidējais rādītājs (vai nulle, ja with_mean = False) un s ir izlases standarta novirze (vai viens, ja with_std = False). ).

Aprēķinot atbilstošo statistiku par apmācību komplekta funkcijām, centrēšana un mērogošana tiek piemērota katrai funkcijai neatkarīgi. Pēc tam, lai izmantotu vēlākos paraugos, izmantojot transform(), fit() metode saglabā vidējo un standarta novirzi.

Parametri:

    kopēt (bool, noklusējuma = True):-Ja šis parametrs ir iestatīts uz True, mēģiniet izvairīties no kopijām un tā vietā mērogojiet paraugus vietā. Tas ne vienmēr tiek garantēts, ka tas darbosies savā vietā; piemēram, funkcija joprojām var atgriezt kopiju, ja ievade nav NumPy masīva vai scipy.sparse CSR matricas veidā.with_mean (bool, noklusējuma = True):-Ja parametrs ir iestatīts uz True, mērogojiet datus pēc to centrēšanas. Lietojot uz retām matricām, tas neizdodas (un rada izņēmumu), jo to centrēšanai ir jāizveido blīva matrica, kas vairumā lietošanas gadījumu ir pārāk liela, lai ietilptu aunā.with_std (bool, noklusējuma = True):-Šis parametrs mērogo ievades datus līdz vienības dispersijai, ja tas ir iestatīts uz patiesu (vai mēs varam teikt, ka tas veido vienības standarta novirzi).

Atribūti:

    scale_ (ndarray ar formu (n_features,) vai Nav):-Dati ir relatīvi mērogoti katram objektam ar nulles vidējo un vienības dispersiju.mean_ (ndarray ar formu (n_features,) vai Nav):-Tā ir apmācības datu kopas vidējā vērtība katram objektam. Ja arguments with_mean ir iestatīts uz False, šī vērtība ir vienāda ar None.var_ (ndarray ar formu (n_features,) vai Nav):-Tā ir katras pazīmes dispersijas vērtība apmācības datu kopā. To izmanto, lai noteiktu pazīmju mērogu. Ja arguments ar_std ir iestatīts uz False, šī vērtība ir vienāda ar None.n_features_in_ (no _int tipa):-Šis atribūts norāda uz uzstādīšanas laikā pamanīto pazīmju skaitu.feature_names_in_ (ndarray, kura forma ir (n_features_in_,)):-Šis atribūts ir pazīmes, kas identificētas ar nosaukumiem uzstādīšanas laikā. X tiek definēts tikai tad, ja visi tā līdzekļu nosaukumi ir datu tipa virknes.n_samples_seen_ ( int tipa vai ndarray, kura forma ir (n_features,)):-Tas parāda paraugu skaitu, ko novērtētājs pārbaudīja katram objektam.

StandardScaler klases metodes

atbilst(X[, y, parauga_svars]) Šī metode aprēķina vidējo un standarta novirzi, lai vēlāk izmantotu datu mērogošanu.
fit_transform(X[, y]) Šī metode atbilst datu parametriem un pēc tam tos pārveido.
get_feature_names_out([input_features]) Šī metode iegūst transformācijas līdzekļu nosaukumus.
get_params ([dziļi]) Šī metode dod konkrētā novērtētāja parametrus.
apgrieztā_transformācija(X[, kopēt]) Tas samazina datu lielumu, lai tie atbilstu to sākotnējai formai.
daļēji piemērots(X[, y, parauga_svars]) X vidējā un standarta novirze tiek aprēķināta tiešsaistē vēlākai mērogošana.
set_params(**params) Šo metodi izmanto, lai iestatītu novērtētāja parametru vērtību.
pārveidot (X[, kopēt]) Šī metode pārveido datus, izmantojot klasē jau saglabātos parametrus.

StandardScaler piemērs

Pirmkārt, mēs importēsim vajadzīgās bibliotēkas. Lai izmantotu funkciju StandardScaler, mums ir jāimportē Sklearn bibliotēka.

Pēc tam mēs ielādēsim varavīksnenes datu kopu. Mēs varam importēt IRIS datu kopu no sklearn.datasets bibliotēkas.

Izveidosim StandardScaler klases objektu.

Neatkarīgo un mērķa pazīmju atdalīšana.

Mēs izmantosim fit transform() metodi, lai ieviestu transformāciju datu kopā.

alfabēta numurs

Sintakse:

 object_ = StandardScaler() object_.fit_transform(features) 

Sākotnēji mēs izveidojām StandardScaler () metodes gadījumu, ievērojot iepriekš minēto sintakse. Turklāt mēs standartizējam datus, izmantojot fit_transform() kopā ar sniegto objektu.

Kods

 # 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_) 

Izvade

 [[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]