当有分类数据时,使用Sklearn random forest进行特征选择并不能提供预期的结果

2024-05-13 21:38:54 发布

您现在位置:Python中文网/ 问答频道 /正文

我想使用SKlearn随机森林特征选择函数来了解影响我的自变量(TN污染物浓度)的关键因素。 我有一个分类变量-气候类型,有五种气候类型(温度炎热、温度干燥、温度温暖、热带和干旱),我知道气候类型对我的自变量有很大的影响,但是,当我使用一种炎热的编码方法(通过熊猫假人)时,我发现了这些气候类型(在一次热编码后变成五个假/真的变量)是最不重要的,这是不正确的

如图所示,气候变量的特征重要性得分最低:

我的问题是,在处理分类变量时,随机林的特征选择是否仍然有用?我是否做了一些错误的事情

这是我代码的一部分:

  model = RandomForestRegressor(n_estimators=100, bootstrap = True,max_features = 'sqrt')

  model.fit(x_train, y_train)

  fi = pd.DataFrame({'feature': list(x_train),'importance': 
  model.feature_importances_}).sort_values('importance', ascending = False)

  plt.bar(fi['feature'],fi['importance'])

Tags: 类型model森林分类train特征sklearn温度
1条回答
网友
1楼 · 发布于 2024-05-13 21:38:54

这完全取决于如何计算特征重要性。如果特征的特征重要性是其拆分节点次数的函数,则很难比较数值和类别值,因为数值特征可以(通常是)在树中拆分多次,其中类别只拆分一次

我不完全确定,但我认为sklearn中的功能重要性是功能拆分量的函数,因此mis的重要性

相关问题 更多 >