我有一个训练集(12 行),有 3 个自变量。我使用 np.hstack 来组合它们:
datatpk = tpk_online.to_numpy().reshape(-1,1)
datacovid = covid_case_bali.to_numpy().reshape(-1,1)
datainflasi = inflasi.to_numpy().reshape(-1,1)
dataX = np.hstack([datatpk,datacovid,datainflasi])
dataX
我使用了几种模型,并且它们都可以正常工作:
model = make_pipeline(StandardScaler(), RandomForestRegressor())
model = RandomForestRegressor()
model.fit(X=dataX, y=tpk_bps)
tpk_prediksi = model.predict(dataX)
但后来我使用了一个测试集(6 行),也使用了 hpstack:
datatpk_test = tpk_online_test.to_numpy().reshape(-1,1)
datacovid_test = covid_case_bali_test.to_numpy().reshape(-1,1)
datainflasi_test = inflasi_test.to_numpy().reshape(-1,1)
dataX_test = np.hstack([datatpk_test,datacovid_test,datainflasi_test])
dataX_test
tpk_prediksi = model.predict(dataX)
该模型向我显示此错误:
ValueError: Number of features of the model must match the input. Model n_features is 2 and input n_features is 3
数据集具有完全相同的结构,为什么它读取的是 2 个特征而不是 3 个?
============== 我也试过用hstack来做这个:
dataX_test = np.hstack((datatpk_test,datacovid_test,datainflasi_test))
仍然给我同样的错误。