Када и како користити СтандардСцалер?
Када карактеристике датог скупа података значајно флуктуирају унутар својих опсега или су забележене у различитим мерним јединицама, СтандардСцалер улази у слику.
Подаци се скалирају на варијансу од 1 након што се средња вредност смањи на 0 преко СтандардСцалер-а. Али при одређивању емпиријске средње вредности података и стандардне девијације, одступања присутни у подацима имају значајан утицај који смањује спектар карактеристичних вредности.
шта је извоз у линуксу
Многи алгоритми за машинско учење могу наићи на проблеме због ових варијација у почетним функцијама. За алгоритме који израчунавају растојање, на пример, ако било која од карактеристика скупа података има вредности које имају велике или потпуно различите опсеге, та посебна карактеристика скупа података ће контролисати прорачун удаљености.
Функција СтандардСцалер за склеарн је заснована на теорији да променљиве скупа података чије вредности леже у различитим опсезима немају једнак допринос параметрима уклапања модела и функцији обуке и могу чак довести до пристрасности у предвиђањима направљеним са тим моделом.
Стога, пре укључивања карактеристика у модел машинског учења, морамо да нормализујемо податке (µ = 0, σ = 1). Стандардизација у инжењерингу карактеристика се обично користи за решавање овог потенцијалног проблема.
Стандардизација користећи Склеарн
sklearn.preprocessing.StandardScaler(*, copy = True, with_mean = True, with_std = True)
Елиминацијом средње вредности из карактеристика и њиховим скалирањем на јединичну варијансу, карактеристике се стандардизују помоћу ове функције.
Формула за израчунавање стандардног резултата функције је з = (к - у) / с, где је у средња вредност функције за обуку (или нула ако је витх_меан = Фалсе), а с је стандардна девијација узорка (или један ако витх_стд = Фалсе ).
Израчунавањем релевантне статистике о карактеристикама у скупу за обуку, центрирање и скалирање се примењују независно на сваку карактеристику. Затим, за употребу са каснијим узорцима који користе трансформ(), метода фит() чува средњу вредност и стандардну девијацију.
Параметри:
Атрибути:
Методе класе СтандардСцалер
фит(Кс[, и, тежина_узорка]) | Овај метод израчунава средњу вредност и стандардну девијацију да би се касније користили за скалирање података. |
фит_трансформ(Кс[, и]) | Овај метод се уклапа у параметре података и затим их трансформише. |
гет_феатуре_намес_оут([инпут_феатурес]) | Овај метод добија називе карактеристика за трансформацију. |
гет_парамс([дубоко]) | Овај метод даје параметре одређеног проценитеља. |
инверзна_трансформација(Кс[, копија]) | Смањује величину података како би одговарала њиховом оригиналном облику. |
делимично_прилагођено(Кс[, и, тежина_узорка]) | Средња вредност и стандардна девијација на Кс се израчунавају на мрежи за касније скалирање. |
сет_парамс(**парамс) | Овај метод се користи за постављање вредности параметара проценитеља. |
трансформ (Кс[, копија]) | Овај метод трансформише податке користећи параметре који су већ ускладиштени у класи. |
Пример СтандардСцалер-а
Прво ћемо увести потребне библиотеке. Да бисмо користили функцију СтандардСцалер, морамо да увеземо библиотеку Склеарн.
Затим ћемо учитати скуп података о шареници. Можемо да увеземо ИРИС скуп података из библиотеке склеарн.датасетс.
Направићемо објекат класе СтандардСцалер.
прост број у Јави
Раздвајање независних и циљних обележја.
Користићемо метод фит трансформ() за имплементацију трансформације у скуп података.
Синтакса:
object_ = StandardScaler() object_.fit_transform(features)
Првобитно смо направили инстанцу СтандардСцалер() методе пратећи горе поменуту синтаксу. Поред тога, стандардизујемо податке коришћењем фит_трансформ() заједно са датим објектом.
Код
# 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_)
Излаз
[[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]