Масштабування та Нормалізація
Числові ознаки у ваших даних часто мають дуже різні масштаби, що може негативно впливати на ефективність алгоритмів машинного навчання — особливо тих, які використовують обчислення відстаней або припускають нормальний розподіл. Масштабування гарантує, що всі ознаки однаково впливають на навчання моделі.
Основні техніки масштабування:
- Нормалізація: перетворює ознаки у фіксований діапазон, зазвичай між
0та1; - Стандартизація: трансформує ознаки так, щоб середнє значення дорівнювало
0, а стандартне відхилення —1.
Кожен метод змінює діапазон ваших даних по-різному та найкраще підходить для певних сценаріїв.
1234567891011121314151617181920212223242526272829import pandas as pd from sklearn.preprocessing import StandardScaler, MinMaxScaler # Load Titanic dataset from seaborn import seaborn as sns titanic = sns.load_dataset('titanic') # Select numerical features for scaling features = ['age', 'fare', 'sibsp', 'parch'] df = titanic[features].dropna() # Standardization scaler_standard = StandardScaler() df_standardized = pd.DataFrame( scaler_standard.fit_transform(df), columns=df.columns ) # Normalization scaler_minmax = MinMaxScaler() df_normalized = pd.DataFrame( scaler_minmax.fit_transform(df), columns=df.columns ) print("Standardized Data (first 5 rows):") print(df_standardized.head()) print("\nNormalized Data (first 5 rows):") print(df_normalized.head())
Стандартизація найкраще підходить, коли дані мають гаусівський (нормальний) розподіл або коли алгоритми очікують центровані дані, наприклад, linear regression, logistic regression чи k-means clustering.
Нормалізація рекомендована, коли потрібно, щоб усі ознаки мали однаковий масштаб, особливо для алгоритмів, що використовують метрики відстані, таких як k-nearest neighbors або neural networks.
Дякуємо за ваш відгук!
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат
Can you explain when to use normalization versus standardization?
What are the effects of scaling on different machine learning algorithms?
Can you show how to inverse transform the scaled data back to the original values?
Awesome!
Completion rate improved to 8.33
Масштабування та Нормалізація
Свайпніть щоб показати меню
Числові ознаки у ваших даних часто мають дуже різні масштаби, що може негативно впливати на ефективність алгоритмів машинного навчання — особливо тих, які використовують обчислення відстаней або припускають нормальний розподіл. Масштабування гарантує, що всі ознаки однаково впливають на навчання моделі.
Основні техніки масштабування:
- Нормалізація: перетворює ознаки у фіксований діапазон, зазвичай між
0та1; - Стандартизація: трансформує ознаки так, щоб середнє значення дорівнювало
0, а стандартне відхилення —1.
Кожен метод змінює діапазон ваших даних по-різному та найкраще підходить для певних сценаріїв.
1234567891011121314151617181920212223242526272829import pandas as pd from sklearn.preprocessing import StandardScaler, MinMaxScaler # Load Titanic dataset from seaborn import seaborn as sns titanic = sns.load_dataset('titanic') # Select numerical features for scaling features = ['age', 'fare', 'sibsp', 'parch'] df = titanic[features].dropna() # Standardization scaler_standard = StandardScaler() df_standardized = pd.DataFrame( scaler_standard.fit_transform(df), columns=df.columns ) # Normalization scaler_minmax = MinMaxScaler() df_normalized = pd.DataFrame( scaler_minmax.fit_transform(df), columns=df.columns ) print("Standardized Data (first 5 rows):") print(df_standardized.head()) print("\nNormalized Data (first 5 rows):") print(df_normalized.head())
Стандартизація найкраще підходить, коли дані мають гаусівський (нормальний) розподіл або коли алгоритми очікують центровані дані, наприклад, linear regression, logistic regression чи k-means clustering.
Нормалізація рекомендована, коли потрібно, щоб усі ознаки мали однаковий масштаб, особливо для алгоритмів, що використовують метрики відстані, таких як k-nearest neighbors або neural networks.
Дякуємо за ваш відгук!