Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Вивчайте StandardScaler, MinMaxScaler, MaxAbsScaler | Попередня Обробка Даних Із Scikit-learn
Вступ до ML з Scikit-learn

bookStandardScaler, MinMaxScaler, MaxAbsScaler

Існують три популярні підходи до масштабування даних:

  • MinMaxScaler: масштабує ознаки до діапазону [0, 1];
  • MaxAbsScaler: масштабує ознаки так, що максимальне абсолютне значення дорівнює 1 (тобто дані гарантовано знаходяться в діапазоні [-1, 1]);
  • StandardScaler: стандартизує ознаки, роблячи середнє значення рівним 0, а дисперсію — 1.

Щоб проілюструвати, як працюють скейлери, розглянемо ознаки 'culmen_depth_mm' та 'body_mass_g' з набору даних penguins. Ці ознаки можна відобразити на графіку, щоб спостерігати їхні масштаби.

MinMaxScaler

MinMaxScaler працює шляхом віднімання мінімального значення (щоб значення починалися з нуля), а потім ділення на (x_max - x_min), щоб отримати значення, менші або рівні 1.

Ось gif, який демонструє, як працює MinMaxScaler:

MaxAbsScaler

MaxAbsScaler працює шляхом знаходження максимального абсолютного значення та ділення кожного значення на нього. Це гарантує, що максимальне абсолютне значення дорівнює 1.

StandardScaler

Ідея StandardScaler походить зі статистики. Він працює шляхом віднімання середнього значення (для центрування навколо нуля) та ділення на стандартне відхилення (щоб дисперсія дорівнювала 1).

Note
Примітка

Якщо ви не розумієте, що таке середнє значення, стандартне відхилення та дисперсія, ви можете ознайомитися з нашим курсом Learning Statistics with Python. Однак ці знання не є обов'язковими для подальшого навчання.

Нижче наведено приклад коду з використанням MinMaxScaler. Інші скейлери застосовуються аналогічно.

12345678910
import 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)
copy

Вивід може виглядати не надто привабливо, оскільки скейлери перетворюють дані у масив numpy, але при використанні конвеєрів це не стане проблемою.

Note
Примітка

Слід масштабувати лише стовпці ознак (змінна X). Масштабування цільової змінної не потрібне, оскільки це ускладнить процес зворотного перетворення.

Який скейлер обрати?

StandardScaler є більш чутливим до викидів, тому його не рекомендується використовувати як скейлер за замовчуванням. Якщо потрібна альтернатива StandardScaler, вибір між MinMaxScaler та MaxAbsScaler залежить від особистих вподобань: чи потрібно масштабувати дані до діапазону [0,1] за допомогою MinMaxScaler, чи до [-1,1] за допомогою MaxAbsScaler.

1. Яка основна мета використання MinMaxScaler при попередній обробці даних?

2. Чому варто переглянути доцільність використання StandardScaler для вашого набору даних?

question mark

Яка основна мета використання MinMaxScaler при попередній обробці даних?

Select the correct answer

question mark

Чому варто переглянути доцільність використання StandardScaler для вашого набору даних?

Select the correct answer

Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 2. Розділ 10

Запитати АІ

expand

Запитати АІ

ChatGPT

Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат

Suggested prompts:

Can you explain when to use each scaler in practice?

What are the main differences between MinMaxScaler and MaxAbsScaler?

Are there any drawbacks to using StandardScaler with outliers?

Awesome!

Completion rate improved to 3.13

bookStandardScaler, MinMaxScaler, MaxAbsScaler

Свайпніть щоб показати меню

Існують три популярні підходи до масштабування даних:

  • MinMaxScaler: масштабує ознаки до діапазону [0, 1];
  • MaxAbsScaler: масштабує ознаки так, що максимальне абсолютне значення дорівнює 1 (тобто дані гарантовано знаходяться в діапазоні [-1, 1]);
  • StandardScaler: стандартизує ознаки, роблячи середнє значення рівним 0, а дисперсію — 1.

Щоб проілюструвати, як працюють скейлери, розглянемо ознаки 'culmen_depth_mm' та 'body_mass_g' з набору даних penguins. Ці ознаки можна відобразити на графіку, щоб спостерігати їхні масштаби.

MinMaxScaler

MinMaxScaler працює шляхом віднімання мінімального значення (щоб значення починалися з нуля), а потім ділення на (x_max - x_min), щоб отримати значення, менші або рівні 1.

Ось gif, який демонструє, як працює MinMaxScaler:

MaxAbsScaler

MaxAbsScaler працює шляхом знаходження максимального абсолютного значення та ділення кожного значення на нього. Це гарантує, що максимальне абсолютне значення дорівнює 1.

StandardScaler

Ідея StandardScaler походить зі статистики. Він працює шляхом віднімання середнього значення (для центрування навколо нуля) та ділення на стандартне відхилення (щоб дисперсія дорівнювала 1).

Note
Примітка

Якщо ви не розумієте, що таке середнє значення, стандартне відхилення та дисперсія, ви можете ознайомитися з нашим курсом Learning Statistics with Python. Однак ці знання не є обов'язковими для подальшого навчання.

Нижче наведено приклад коду з використанням MinMaxScaler. Інші скейлери застосовуються аналогічно.

12345678910
import 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)
copy

Вивід може виглядати не надто привабливо, оскільки скейлери перетворюють дані у масив numpy, але при використанні конвеєрів це не стане проблемою.

Note
Примітка

Слід масштабувати лише стовпці ознак (змінна X). Масштабування цільової змінної не потрібне, оскільки це ускладнить процес зворотного перетворення.

Який скейлер обрати?

StandardScaler є більш чутливим до викидів, тому його не рекомендується використовувати як скейлер за замовчуванням. Якщо потрібна альтернатива StandardScaler, вибір між MinMaxScaler та MaxAbsScaler залежить від особистих вподобань: чи потрібно масштабувати дані до діапазону [0,1] за допомогою MinMaxScaler, чи до [-1,1] за допомогою MaxAbsScaler.

1. Яка основна мета використання MinMaxScaler при попередній обробці даних?

2. Чому варто переглянути доцільність використання StandardScaler для вашого набору даних?

question mark

Яка основна мета використання MinMaxScaler при попередній обробці даних?

Select the correct answer

question mark

Чому варто переглянути доцільність використання StandardScaler для вашого набору даних?

Select the correct answer

Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 2. Розділ 10
some-alt