我將 numpy 陣列拆分為 X 和 y,最初由 Pandas DataFrame 制成,如下所示:
>> X
array([[ 2.86556780e-03, 1.87100798e-01],
[ 2.56781670e-04, 2.45417491e-01],
[ 2.35497137e-03, 1.76615342e-01],
...,
[ 2.30078468e-03, -4.16726811e-60],
[ 5.66213972e-03, -2.98597808e-60],
[ 4.39503905e-03, -2.13954678e-60]])
>> y
array([19.08666992, 19.09239006, 19.08938026, ..., 45.21157634,
45.19350761, 45.13230675])
我將它們分成訓練和測驗資料集,如下所示:
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)
在縮放資料之前,我將標簽重塑如下:
y_train= y_train.reshape((-1,1))
y_test= y_test.reshape((-1,1))
使用 sklearnMinMaxScaler我然后fit_transform我的 training_data 如下:
from sklearn.preprocessing import MinMaxScaler
scaler = MinMaxScaler()
X_train = scaler.fit_transform(X_train)
y_train = scaler.fit_transform(y_train)
然后我嘗試使用以下方法對transform我的測驗資料進行測驗MinMaxScaler:
X_test = scaler.transform(X_test)
y_test = scaler.transform(y_test)
但是測驗資料集沒有轉換,因為我收到以下錯誤:
----> 1 X_test = scaler.transform(X_test)
ValueError: X has 2 features, but MinMaxScaler is expecting 1 features as input.
誰能指導我在這里做錯了什么。
uj5u.com熱心網友回復:
這是因為scaler它適合y_train具有單個特征,而X_test具有 2 個特征。
您必須為X和定義不同的縮放器物件y:
scaler_X = MinMaxScaler()
scaler_Y = MinMaxScaler()
X_train = scaler_X.fit_transform(X_train)
y_train = scaler_Y.fit_transform(y_train)
X_test = scaler_X.transform(X_test)
y_test = scaler_Y.transform(y_test)
做同樣作業的另一種方法是使用適合X_train轉換的縮放器X_test;然后使用縮放器適合y_train轉換y_test:
scaler = MinMaxScaler()
X_train = scaler.fit_transform(X_train)
X_test = scaler.transform(X_test)
y_train = scaler.fit_transform(y_train)
y_test = scaler.transform(y_test)
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/439815.html
標籤:Python 熊猫 数据框 麻木的 scikit-学习
上一篇:Pytorch自定義資料加載器:TypeError:pic應該是PILImage或ndarray。得到<class'torch.Tensor'>
