应用随机森林后提取重要特征进行训练和测试

我正在使用随机森林进行特征选择(拳头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]

我的问题是火车和测试列不匹配。


看图片:


培训和测试中第一列的图片:

http://img.mukewang.com/608774640001431314760937.jpg

我是在做错事还是做事更有效?



慕哥9229398
浏览 284回答 1
1回答

开满天机

尝试使用列名而不是索引将子集设置为新的训练和测试数据集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 frameimportance_df.sort_values('importance', ascending=False, inplace=True)#select 100 most important featuresfeatures= importance_df.feature[:100]#train_100_x= train_x.loc[:,features]test_100_x = test_x.loc[:,features]
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python