Что происходит, когда вы преобразуете тестовый набор с помощью MinMaxScaler - PullRequest
0 голосов
/ 19 июня 2019

Я сейчас нахожусь в процессе предварительной обработки моих данных, и я понимаю, что я должен использовать те же параметры масштабирования, которые я использовал в моем тренировочном наборе, в моем тестовом наборе. Однако когда я применил метод transform из библиотеки sklearn, я заметил нечто странное.

Сначала я использовал preprocessing.MinMaxScaler(feature_range=(0,1)) на своем тренировочном наборе, который устанавливает максимум равным 1, а минимум равным 0. Затем я использовал minmax_scaler.transform(data) на своем тестовом наборе, и я заметил, когда распечатывал фрейм данных , У меня есть значения, которые больше 1. Что это может означать?

Ответы [ 2 ]

0 голосов
/ 19 июня 2019

На самом деле MinMaxScalar используется, когда вы хотите, чтобы ваши данные находились в определенном диапазоне. например, если у вас есть данные, такие как

это 2d массив

[
[1000,2000],
[3000,4000],
[1,2],
[3,50]
]

теперь в этих данных я хочу, чтобы минимальное число было 1, а максимальное число было 100 поэтому я должен преобразовать все данные в диапазон (1100)

Теперь мои данные станут

[
[ 33.97799266,50.47523762],
[100,100],
[1,1],
[1.06602201,2.1885943 ]
]

MinMax Scaler In python

from sklearn.preprocessing import MinMaxScaler
data = [[1000,2000],[3000,4000],[1,2],[3,50]]
scaler = MinMaxScaler(feature_range=(1, 100))
print(scaler.fit(data))
print(scaler.transform(data))
0 голосов
/ 19 июня 2019

Для данной функции x ваше масштабирование minmax до (0,1) будет эффективно отображаться:

x to (x- min_train_x)/(max_train_x - min_train_x)

, где min_train_x и max_train_x являются минимальнымии максимальное значение x в обучающем наборе .

Если значение x в наборе больше, чем max_train_x, масштабированиепреобразование вернет значение > 1.

Обычно это не представляет большой проблемы, за исключением случаев, когда вход должен находиться в диапазоне (0,1).

...