Данные, используемые в машинном обучении, могут быть разнообразными, включая целые числа, числа с плавающей запятой и другие. Это часто может привести к увеличению объема вычислений при выполнении алгоритма обучения для поиска правильных параметров. Использование данных без создания общего формата может оказаться неэффективным.
Так что стандартизация часто приходит на помощь в этом случае, стандартизируя все данные. Стандартизация масштабирует данные, чтобы иметь среднее значение (μ) равное 0 и стандартное отклонение (σ) равное 1 (единичная дисперсия).
Можно использовать библиотеку для Python, т.е. scikit-learn для стандартизации.
классsklearn.preprocessing.StandardScaler(copy=True, with_mean=True, with_std=True)
Стандартизируйте функции, удалив среднее значение и масштабируя до единичной дисперсии. Стандартный балл выборки x рассчитывается как:
z = (x — u) / s
где u — среднее значение обучающих выборок или ноль, если with_mean=False, а s — стандартное отклонение обучающих выборок или единица, если with_std=False.
Центрирование и масштабирование выполняются независимо для каждой функции путем вычисления соответствующей статистики по выборкам в обучающем наборе. Затем среднее значение и стандартное отклонение сохраняются для использования в более поздних данных с помощью метода преобразования.
Следующий код реализует стандартизацию в блокноте colab.
импортировать numpy как np
импортировать matplotlib.pyplot как plt
из mpl_toolkits импортировать mplot3d
импортировать matplotlib.colors
импортировать pandas как pd
из sklearn.preprocessing import StandardScaler, MinMaxScaler
R = np.random.random([100, 1])
plt.plot(R)
plt.show()
plt.plot(R)
plt.show()
np.mean(R)
np.std(R)
масштабатор = StandardScaler()
scaler.fit(R)
масштаб.среднее_
RT = масштабирование.transform(R)
np.mean(RT)
np.std(RT)
plt.plot(RT)
plt.show()
В случае обучающих и тестовых данных вы можете задаться вопросом, следует ли стандартизировать до или после разделения? Логично разделить данные, а затем применить стандартизацию для сохранения целостности данных. Было бы целесообразно подогнать и преобразовать данные о поезде, а затем преобразовать тестовые данные для стандартизации.
Ссылки:
- Глубокое обучение от One Fourth Labs
- scikit-learn.org
- коллаб блокнот