我正在使用隨機森林進行特征選擇(拳頭100個最重要的特征)。這是我正在使用的代碼;RandomForest_model = RandomForestRegressor(n_estimators=300,n_jobs=-1) RandomForest_model.fit(train_x,train_y) RandomForest_model.score(train_x,train_y) indices = RandomForest_model.feature_importances_.argsort()[:100] train_100_x= train.iloc[:,indices] test_100_y = test_100_y.iloc[:,indices]我的問題是火車和測試列不匹配??磮D片:培訓和測試中第一列的圖片:我是在做錯事還是做事更有效?
1 回答

開滿天機
TA貢獻1786條經驗 獲得超13個贊
嘗試使用列名而不是索引將子集設置為新的訓練和測試數據集
RandomForest_model = RandomForestRegressor(n_estimators=300,n_jobs=-1)
RandomForest_model.fit(train_x,train_y)
importance_df=pd.DataFrame({'feature':train_x.columns, 'importance':RandomForest_model.feature_importances_})
#sort feature importance data frame
importance_df.sort_values('importance', ascending=False, inplace=True)
#select 100 most important features
features= importance_df.feature[:100]
#
train_100_x= train_x.loc[:,features]
test_100_x = test_x.loc[:,features]
添加回答
舉報
0/150
提交
取消