Нормализация данных для обучения
Имеется необходимость нормализовать данные дата фрейма по колонкам и сразу по нескольким колонкам.
Пример производит нормализацию по каждой колонке отдельно.
import pandas as pd from sklearn import preprocessing x = df.values #returns a numpy array min_max_scaler = preprocessing.MinMaxScaler() x_scaled = min_max_scaler.fit_transform(x)
Вопрос. Как использовать min_max_scaler сразу для нескольких колонок в целом (не по каждой отдельно), чтобы min и max выбирались из всего датафрейма или из заданных колонок, а нормализация всех данных в этих колонках проводилась относительно этих двух значений min и мах. Интересует способ сделать это через библиотеки sklearn.
Ответы (1 шт):
Не очень понимаю, зачем это может потребоваться, но если вы получаете numpy-массив, то далее можно сделать так:
import numpy as np
from sklearn import preprocessing
x = np.array([[1,2,3,4,5],[6,7,8,9,10],[11,12,13,14,15]])
min_max_scaler = preprocessing.MinMaxScaler()
x_scaled1 = min_max_scaler.fit_transform(x.reshape((-1, 1))).reshape((x.shape[0], -1))
Результат:
[[0. 0.07142857 0.14285714 0.21428571 0.28571429]
[0.35714286 0.42857143 0.5 0.57142857 0.64285714]
[0.71428571 0.78571429 0.85714286 0.92857143 1. ]]
На мой взгляд то-же самое но без MinMaxScaler сделать проще.