首页 > 解决方案 > 最小-最大缩放查询

问题描述

以下代码出现错误。

我正在尝试仅对数据帧的一项功能执行最小-最大缩放:

from sklearn.preprocessing import MinMaxScaler
scaler = MinMaxScaler()
train_df['training_credits']= scaler.fit_transform(train_df['training_credits']).reshape(1,-1)
test_df['training_credits']= scaler.fit_transform(test_df['training_credits']).reshape(1,-1)
  X=train_df[['department','education','Employee_Acheivement','training_credits','new_age_updated_new']]
 y=train_df['is_promoted']
 from sklearn.model_selection import train_test_split
 X_train, X_test, y_train, y_test = train_test_split(X,y, test_size = 0.2)

错误:-

ValueError                                Traceback (most recent call last)
<ipython-input-47-01a2518dfb0a> in <module>
      3 #train_df=train_df.drop(['region'], axis=1)
      4 #test_df=test_df.drop(['region'], axis=1)
----> 5 train_df['training_credits']= scaler.fit_transform(train_df['training_credits']).reshape(1,-1)
      6 test_df['training_credits']= scaler.fit_transform(test_df['training_credits']).reshape(1,-1)
      7 X=train_df[['department','education','Employee_Acheivement' ,'training_credits','new_age_updated_new']]
'
'
'
'
ValueError: Expected 2D array, got 1D array instead:
array=[49. 60. 50. ... 79. 45. 49.].
Reshape your data either using array.reshape(-1, 1) if your data has a single feature or array.reshape(1, -1) if it contains a single sample.

你能建议我哪里出错了吗?

标签: pythonpandasscikit-learn

解决方案


尝试这个:

scaler.fit_transform(train_df[['training_credits']].values)

或者

scaler.fit_transform(train_df['training_credits'].values.reshape(-1,1))

推荐阅读