Стандартизация против Учебник по нормализации

Масштабирование данных - важный этап предварительной обработки данных. В этом руководстве мы рассмотрим две распространенные схемы масштабирования данных, а именно: Стандартизация и Нормализация. Мы проиллюстрируем наши примеры, используя набор данных круизного лайнера.

Импортировать необходимые библиотеки Python

import numpy as np
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt

Импортируйте набор данных и визуализируйте первые 10 строк

url = "https://raw.githubusercontent.com/bot13956/ML_Model_for_Predicting_Ships_Crew_Size/master/cruise_ship_info.csv"
data = pd.read_csv(url)
data.head(n=10)

Показать сводную статистику

data.describe()

Из таблицы 2 видно, что характеристики имеют разные масштабы: Возраст варьируется от [4, 48], Тоннаж варьируется от [2,329, 220], пассажиров от [0,66, 54], длина варьируется от [2,79, 11,82], каюты от [0,33,27], плотность_пассажиров колеблется от [17,7, 71,43], а экипаж - от [0,59, 21]. Масштабирование можно использовать для преобразования элементов таким образом, чтобы все функции находились в одном диапазоне.

1. Масштабирование путем стандартизации

Уравнение стандартизации:

cols = ['Age', 'Tonnage', 'passengers', 'length', 
        'cabins','passenger_density','crew']
from sklearn.preprocessing import StandardScaler
stdsc = StandardScaler()
X_std = stdsc.fit_transform(data[cols].iloc[:,range(0,7)].values)
sns.kdeplot(X_std[:,5],fill=True, color = 'red')
plt.xlabel('standardized passenger_density')
plt.show()

Из рисунка 1 мы видим, что стандартизованная переменная пассажира_плотность теперь находится примерно между [-3, 3] или 3 стандартными отклонениями от стандартизованного среднего ( что равно нулю).

2. Масштабирование путем нормализации

Уравнение для нормализации:

cols = ['Age', 'Tonnage', 'passengers', 'length', 
       'cabins','passenger_density','crew']
from sklearn.preprocessing import Normalizer
norm = Normalizer()
X_norm = norm.fit_transform(data[cols].iloc[:,range(0,7)].values)
sns.displot(X_norm[:,5],fill=True, color = 'red',kde=True)
plt.xlabel('normalized passenger_density')
plt.show()

Из рисунка 2 мы видим, что нормализованная переменная пассажира_плотность теперь находится примерно между [0, 1], как и ожидалось.

Таким образом, мы рассмотрели две важные схемы масштабирования, стандартизации и нормализации данных. Стандартизация преобразует все значения признаков так, чтобы они лежали в диапазоне [-3, 3] (три стандартных отклонения или 99% доверительный интервал) или [-2, 2] (два стандартных отклонения или 95% доверительный интервал). Стандартизация также может использоваться для обнаружения выбросов, поскольку стандартизованные значения, выходящие за пределы диапазона [-2, 2] (95% доверительный интервал), обычно считаются выбросами. С другой стороны, нормализация преобразует признаки так, чтобы значения признаков находились в диапазоне [0, 1]. Стандартизация используется чаще, чем нормализация, потому что она более симметрична по сравнению с нормализацией. Масштабирование функций перед их использованием для построения моделей машинного обучения имеет важное значение для уменьшения систематической ошибки и повышения предсказательной способности модели.

Прочтите все истории Бенджамина Оби Тайо, доктора философии. (и тысячи других авторов на Medium). Ваш членский взнос напрямую поддерживает доктора философии Бенджамина Оби Тайо. и других писателей, которых вы читаете. Вы также получите полный доступ ко всем историям на Medium . Нажмите на следующую ссылку, чтобы стать участником: https://benjaminobi.medium.com/membership