#python #scikit-learn
#python #scikit-учиться
Вопрос:
Я сделал:
Scaler = MinMaxScaler()
for Key in Data:
Columns = Data[Key].columns
ScaledData = Scaler.fit_transform(Data[Key])
Data[Key] = pd.DataFrame(ScaledData, columns=Columns)
Коллега сказал мне поместить MinMaxScaler в цикл, который будет инициализироваться каждый раз.
Это действительно необходимо?
Ответ №1:
Нет, вам не нужно, метод, который вы использовали fit_transform
, подразумевает, что он подходит, а затем преобразуется, например:
from sklearn.preprocessing import MinMaxScaler
Scaler = MinMaxScaler()
np.random.seed(99)
Data = pd.DataFrame({'a':np.random.uniform(0,1,5),'b':np.random.uniform(1,2,5)})
Data
a b
0 0.672279 1.565617
1 0.488078 1.297622
2 0.825495 1.046696
3 0.031446 1.990627
4 0.808050 1.006826
df = pd.DataFrame()
for Key in Data.columns:
df[Key] = Scaler.fit_transform(Data[[Key]]).ravel()
print("column is " key " min /max :" str(Scaler.data_min_[0]) " " str(Scaler.data_max_[0]))
column is a min /max :0.031446387626298145 0.8254951740358963
column is a min /max :1.0068257330436552 1.9906273994707961
Масштабированный фрейм данных равен:
a b
0 0.807044 0.567992
1 0.575068 0.295585
2 1.000000 0.040526
3 0.000000 1.000000
4 0.978030 0.000000