Коли і як використовувати 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() зберігає середнє значення та стандартне відхилення.
Параметри:
Атрибути:
Методи класу 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]