StandardScaler, MinMaxScaler, MaxAbsScaler
Існує три популярних підходи до масштабування даних:
MinMaxScaler
: масштабує ознаки до діапазону [0, 1];MaxAbsScaler
: масштабує ознаки так, що максимальне абсолютне значення дорівнює 1 (тобто дані гарантовано знаходяться в діапазоні [-1, 1]);StandardScaler
: стандартизує ознаки, роблячи середнє значення рівним 0, а дисперсію — 1.
Для демонстрації роботи скейлерів використаємо ознаки 'culmen_depth_mm'
та 'body_mass_g'
з penguins dataset. Побудуємо їх графік.
MinMaxScaler
MinMaxScaler
працює шляхом віднімання мінімального значення (щоб значення починалися з нуля), а потім ділення на (x_max - x_min), щоб отримати значення, менші або рівні 1.
Ось gif, який демонструє, як працює MinMaxScaler
:
MaxAbsScaler
MaxAbsScaler
працює шляхом знаходження максимального абсолютного значення та ділення кожного значення на нього. Це гарантує, що максимальне абсолютне значення дорівнює 1.
StandardScaler
Ідея StandardScaler
походить зі статистики. Він працює шляхом віднімання середнього значення (для центрування навколо нуля) та ділення на стандартне відхилення (щоб зробити дисперсію рівною 1).
Розгляньмо приклад коду з використанням MinMaxScaler
. Інші скейлери застосовуються аналогічно.
12345678910import pandas as pd from sklearn.preprocessing import MinMaxScaler df = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/a65bbc96-309e-4df9-a790-a1eb8c815a1c/penguins_imputed_encoded.csv') # Assign X,y variables X, y = df.drop('species', axis=1), df['species'] # Initialize a MinMaxScaler object and transform the X minmax = MinMaxScaler() X = minmax.fit_transform(X) print(X)
Вивід виглядає не дуже зручно, оскільки скейлери перетворюють дані у масив NumPy, але при використанні конвеєрів це не буде проблемою.
Який масштабувальник обрати?
StandardScaler
є більш чутливим до викидів, тому його не рекомендують використовувати як масштабувальник за замовчуванням. Якщо ви шукаєте альтернативу StandardScaler
, вибір між MinMaxScaler
та MaxAbsScaler
залежить від особистих уподобань: чи потрібно масштабувати дані до діапазону [0,1] за допомогою MinMaxScaler
, чи до [-1,1] за допомогою MaxAbsScaler
.
1. Яка основна мета використання MinMaxScaler
при попередній обробці даних?
2. Чому варто переглянути доцільність використання StandardScaler
для вашого набору даних?
Дякуємо за ваш відгук!
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат
Awesome!
Completion rate improved to 3.13
StandardScaler, MinMaxScaler, MaxAbsScaler
Свайпніть щоб показати меню
Існує три популярних підходи до масштабування даних:
MinMaxScaler
: масштабує ознаки до діапазону [0, 1];MaxAbsScaler
: масштабує ознаки так, що максимальне абсолютне значення дорівнює 1 (тобто дані гарантовано знаходяться в діапазоні [-1, 1]);StandardScaler
: стандартизує ознаки, роблячи середнє значення рівним 0, а дисперсію — 1.
Для демонстрації роботи скейлерів використаємо ознаки 'culmen_depth_mm'
та 'body_mass_g'
з penguins dataset. Побудуємо їх графік.
MinMaxScaler
MinMaxScaler
працює шляхом віднімання мінімального значення (щоб значення починалися з нуля), а потім ділення на (x_max - x_min), щоб отримати значення, менші або рівні 1.
Ось gif, який демонструє, як працює MinMaxScaler
:
MaxAbsScaler
MaxAbsScaler
працює шляхом знаходження максимального абсолютного значення та ділення кожного значення на нього. Це гарантує, що максимальне абсолютне значення дорівнює 1.
StandardScaler
Ідея StandardScaler
походить зі статистики. Він працює шляхом віднімання середнього значення (для центрування навколо нуля) та ділення на стандартне відхилення (щоб зробити дисперсію рівною 1).
Розгляньмо приклад коду з використанням MinMaxScaler
. Інші скейлери застосовуються аналогічно.
12345678910import pandas as pd from sklearn.preprocessing import MinMaxScaler df = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/a65bbc96-309e-4df9-a790-a1eb8c815a1c/penguins_imputed_encoded.csv') # Assign X,y variables X, y = df.drop('species', axis=1), df['species'] # Initialize a MinMaxScaler object and transform the X minmax = MinMaxScaler() X = minmax.fit_transform(X) print(X)
Вивід виглядає не дуже зручно, оскільки скейлери перетворюють дані у масив NumPy, але при використанні конвеєрів це не буде проблемою.
Який масштабувальник обрати?
StandardScaler
є більш чутливим до викидів, тому його не рекомендують використовувати як масштабувальник за замовчуванням. Якщо ви шукаєте альтернативу StandardScaler
, вибір між MinMaxScaler
та MaxAbsScaler
залежить від особистих уподобань: чи потрібно масштабувати дані до діапазону [0,1] за допомогою MinMaxScaler
, чи до [-1,1] за допомогою MaxAbsScaler
.
1. Яка основна мета використання MinMaxScaler
при попередній обробці даних?
2. Чому варто переглянути доцільність використання StandardScaler
для вашого набору даних?
Дякуємо за ваш відгук!