Как масштабировать функцию scikit-learn MinMaxScaler, если у меня большой массив?Итак, давайте определим следующее
import numpy as np
from sklearn.preprocessing import MinMaxScaler
scaler = MinMaxScaler(feature_range=(0, 1))
и рассмотрим следующие наборы данных
Y_train # shape = (2358331,1)
X_train # shape = (2358331,302)
Теперь я могу масштабировать мой Y_train, используя
%%time
Y_train = scaler.fit_transform(Y_train)
, он работает нормально, и яget
CPU times: user 36.3 ms, sys: 104 ms, total: 141 ms
Wall time: 388 ms
Но когда я использую ту же команду для X_train, это занимает вечность, кажется, что время выполнения не линейно по отношению к количеству столбцов.Поэтому я попытался использовать цикл для выполнения скейлера для каждой функции.
for i in range(X_train.shape[1]):
scaled_feature =
scaler.fit_transform(X_train[:,i].reshape(X_train.shape[0],1))
X_train[:,i] = scaled_feature.reshape(X_train.shape[0],)
Но это также бесконечно.
Мой вопрос: почему так происходит?А у вас есть альтернатива для этой проблемы?