Нормализация данных для обучения

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

  1. Пример производит нормализацию по каждой колонке отдельно.

     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 шт):

Автор решения: passant

Не очень понимаю, зачем это может потребоваться, но если вы получаете 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 сделать проще.

→ Ссылка