繁体   English   中英

随机森林特征重要性与相关矩阵

[英]Random Forest Feature Importances vs Correlation Matrix

我想看看变量之间的相关性。 所以首先,我使用了相关矩阵。 它向我展示了所有变量之间的相关性。 然后我创建我的random forest regressor model。 在一篇文章中,我发现它有 function 的feature_importances_ 它告诉了自变量和因变量之间的相关性。 所以我尝试了它,然后我看到它显示与相关矩阵的值相同的相关值。 我的问题是,那么相关矩阵和随机森林特征重要性有什么区别?

查看下面的代码。

from sklearn.datasets import load_boston
from sklearn.ensemble import RandomForestRegressor
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

#Load boston housing dataset as an example
boston = load_boston()


X = boston["data"]
Y = boston["target"]
names = boston["feature_names"]
reg = RandomForestRegressor()
reg.fit(X, Y)
print("Features sorted by their score:")
print(sorted(zip(map(lambda x: round(x, 4), reg.feature_importances_), names), 
             reverse=True))


boston_pd = pd.DataFrame(boston.data)
print(boston_pd.head())

boston_pd.columns = boston.feature_names
print(boston_pd.head())

# correlations
boston_pd.corr()
import seaborn as sn
import matplotlib.pyplot as plt
corrMatrix = boston_pd.corr()
sn.heatmap(corrMatrix, annot=True)
plt.show()

在此处输入图像描述

features = boston.feature_names
importances = reg.feature_importances_
indices = np.argsort(importances)

plt.title('Feature Importances')
plt.barh(range(len(indices)), importances[indices], color='#8f63f4', align='center')
plt.yticks(range(len(indices)), features[indices])
plt.xlabel('Relative Importance')
plt.show()

在此处输入图像描述

因此,特征选择依赖于相关分析来确定我们应该使用的最佳特征; 哪些特征(自变量)对帮助确定目标变量(因变量)具有最大的统计影响。 相关性是一个统计术语,它指的是两个变量在彼此之间具有线性关系方面的接近程度。 在执行任何机器学习任务时,特征选择是第一步,也可以说是最重要的步骤之一。 数据集中的特征是一列数据。 在处理任何数据集时,我们必须了解哪一列(特征)将对 output 变量产生统计上的显着影响。 如果我们在 model 中添加许多不相关的功能,它只会使 model 变得最差(Garbage In Garbage Out)。 这就是我们进行特征选择的原因。 Pearson 的相关性(特征选择)在确定所有自变量相对于目标变量(因变量)的相关性方面非常流行。

我假设您使用的是 scikit-learn 随机森林 model,因为它具有该feature_importances_属性。 尽管通过检查特征和目标变量之间的相关性,您可能会看到类似的结果,但feature_importances_使用了更复杂的方法。 用户指南

用作树中决策节点的特征的相对等级(即深度)可用于评估该特征相对于目标变量的可预测性的相对重要性。 树顶部使用的特征有助于更大部分输入样本的最终预测决策。 因此,它们贡献的样本的预期分数可以用作特征相对重要性的估计。 在 scikit-learn 中,特征贡献的样本分数与拆分它们所带来的杂质减少相结合,以创建对该特征预测能力的归一化估计。

通过对几棵随机树的预测能力的估计进行平均,可以减少这种估计的方差并将其用于特征选择。 这被称为杂质平均减少量或 MDI。 有关使用随机森林进行 MDI 和特征重要性评估的更多信息,请参阅 [L2014]。

那里的参考资料是理解随机森林:从理论到实践 您特别感兴趣的是第 6 章(第 135 页),“了解变量重要性”。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM