logo

StandardScaler у Sklearn

Коли і як використовувати StandardScaler?

Коли характеристики заданого набору даних значно коливаються в межах своїх діапазонів або записуються в різних одиницях вимірювання, StandardScaler вступає в дію.

Дані масштабуються до дисперсії 1 після того, як середнє значення зменшено до 0 за допомогою StandardScaler. Але при визначенні емпіричного середнього значення даних і стандартного відхилення викиди, присутні в даних, мають значний вплив, що зменшує спектр характерних значень.

Багато алгоритмів машинного навчання можуть зіткнутися з проблемами через ці варіації початкових функцій. Наприклад, для алгоритмів, які обчислюють відстань, якщо будь-яка функція набору даних має великі або абсолютно різні діапазони значень, ця конкретна функція набору даних керуватиме обчисленням відстані.

шаблони програмного забезпечення java

Функція StandardScaler sklearn базується на теорії, згідно з якою змінні набору даних, значення яких знаходяться в різних діапазонах, не мають рівного внеску в параметри підгонки моделі та функцію навчання та можуть навіть призвести до зміщення в прогнозах, зроблених за допомогою цієї моделі.

Тому, перш ніж включити функції в модель машинного навчання, ми повинні нормалізувати дані (µ = 0, σ = 1). Для вирішення цієї потенційної проблеми зазвичай використовується стандартизація в розробці функцій.

Стандартизація за допомогою Sklearn

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

Вилучаючи середнє значення з ознак і масштабуючи їх до одиничної дисперсії, функції стандартизуються за допомогою цієї функції.

Формула для обчислення стандартної оцінки функції: z = (x - u) / s, де u — середнє значення навчальної функції (або нуль, якщо with_mean = False), а s — стандартне відхилення вибірки (або одиниця, якщо with_std = False). ).

Обчислюючи відповідну статистику для функцій у навчальному наборі, центрування та масштабування застосовуються незалежно до кожної функції. Потім, для використання з пізнішими зразками за допомогою transform(), метод fit() зберігає середнє значення та стандартне відхилення.

Параметри:

    копія (bool, за замовчуванням = True):-Якщо для цього параметра встановлено значення True, намагайтеся триматися подалі від копій і масштабувати зразки на місці. Не обов’язково гарантовано, що це буде працювати на місці; наприклад, функція все одно може повертати копію, якщо вхідні дані не є у формі масиву NumPy або матриці CSR scipy.sparse.with_mean (bool, за замовчуванням = True):-Якщо для параметра встановлено значення True, масштабуйте дані після їх центрування. У застосуванні до розріджених матриць це не вдається (і створює виняток), оскільки їх центрування вимагає побудови щільної матриці, яка в більшості випадків використання буде занадто великою, щоб поміститися в ram.with_std (bool, за замовчуванням = True):-Цей параметр масштабує вхідні дані до одиниці дисперсії, якщо встановлено значення true (або ми можемо сказати, що це стандартне відхилення одиниці).

Атрибути:

    scale_ (ndarray має форму (n_features,) або None):-Дані відносно масштабуються для кожної функції з нульовим середнім значенням і одиничною дисперсією.mean_ (ndarray має форму (n_features,) або None):-Це середнє значення навчального набору даних для кожної функції. Якщо аргумент with_mean має значення False, це значення дорівнює None.var_ (ndarray має форму (n_features,) або None):-Це значення дисперсії кожної функції в навчальному наборі даних. Він використовується для визначення масштабу ознак. Якщо аргумент with_std має значення False, це значення дорівнює None.n_features_in_ (типу _int):-Цей атрибут визначає кількість елементів, помічених під час підгонки.feature_names_in_ (ndarray має форму (n_features_in_,)):-Цей атрибут є ознаками, ідентифікованими іменами під час примірки. X визначено лише тоді, коли всі назви його функцій мають тип даних string.n_samples_seen_ ( типу int або ndarray, що має форму (n_features,)):-Це дає кількість зразків, які досліджував оцінювач для кожної функції.

Методи класу StandardScaler

fit(X[, y, вага_зразка]) Цей метод обчислює середнє значення та стандартне відхилення для використання пізніше для масштабування даних.
fit_transform(X[, y]) Цей метод відповідає параметрам даних, а потім перетворює їх.
get_feature_names_out([input_features]) Цей метод отримує назви функцій для перетворення.
get_params([deep]) Цей метод дає параметри конкретного оцінювача.
inverse_transform(X[, копія]) Це зменшує розмір даних, щоб вони відповідали вихідній формі.
partial_fit(X[, y, sample_weight]) Середнє значення та стандартне відхилення на X обчислюються онлайн для подальшого масштабування.
set_params(**params) Цей метод використовується для встановлення значення параметрів оцінювача.
transform(X[, копія]) Цей метод перетворює дані за допомогою параметрів, які вже зберігаються в класі.

Приклад StandardScaler

По-перше, ми імпортуємо необхідні бібліотеки. Щоб використовувати функцію StandardScaler, нам потрібно імпортувати бібліотеку Sklearn.

Потім ми завантажимо набір даних райдужки. Ми можемо імпортувати набір даних IRIS із бібліотеки sklearn.datasets.

Ми створимо об’єкт класу StandardScaler.

Розмежування самостійних і цільових ознак.

Ми будемо використовувати метод fit transform() для реалізації перетворення набору даних.

Синтаксис:

 object_ = StandardScaler() object_.fit_transform(features) 

Спочатку ми створили екземпляр методу StandardScaler() відповідно до згаданого вище синтаксису. Крім того, ми стандартизуємо дані за допомогою fit_transform() разом із наданим об’єктом.

Код

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