python重要性_使用Python的随机森林特征重要性图表

我在

python中使用RandomForestRegressor,我想创建一个图表来说明功能重要性的排名.这是我使用的代码:

from sklearn.ensemble import RandomForestRegressor

MT= pd.read_csv("MT_reduced.csv")

df = MT.reset_index(drop = False)

columns2 = df.columns.tolist()

# Filter the columns to remove ones we don't want.

columns2 = [c for c in columns2 if c not in["Violent_crime_rate","Change_Property_crime_rate","State","Year"]]

# Store the variable we'll be predicting on.

target = "Property_crime_rate"

# Let’s randomly split our data with 80% as the train set and 20% as the test set:

# Generate the training set. Set random_state to be able to replicate results.

train2 = df.sample(frac=0.8, random_state=1)

#exclude all obs with matching index

test2 = df.loc[~df.index.isin(train2.index)]

print(train2.shape) #need to have same number of features only difference should be obs

print(test2.shape)

# Initialize the model with some parameters.

model = RandomForestRegressor(n_estimators=100, min_samples_leaf=8, random_state=1)

#n_estimators= number of trees in forrest

#min_samples_leaf= min number of samples at each leaf

# Fit the model to the data.

model.fit(train2[columns2], train2[target])

# Make predictions.

predictions_rf = model.predict(test2[columns2])

# Compute the error.

mean_squared_error(predictions_rf, test2[target])#650.4928

功能重要性

features=df.columns[[3,4,6,8,9,10]]

importances = model.feature_importances_

indices = np.argsort(importances)

plt.figure(1)

plt.title('Feature Importances')

plt.barh(range(len(indices)), importances[indices], color='b', align='center')

plt.yticks(range(len(indices)), features[indices])

plt.xlabel('Relative Importance')

当我尝试使用我的数据复制代码时收到以下错误:

IndexError: index 6 is out of bounds for axis 1 with size 6

此外,在没有标签的情况下,我的图表上只显示一个具有100%重要性的功能.

任何帮助解决这个问题所以我可以创建这个图表将不胜感激.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值