机器学习模型(或其特征系数)如何用于解释特征是否与特定类相关?

时间:2015-04-22 13:44:44

标签: machine-learning scikit-learn classification feature-selection

我正在拥有一个包含教育,经验,加入月份等功能的数据集,我的预测是一个人是否接受了报价。我创建了一些使用sk-learn SVM,Randomforest等的模型。我的目标是了解在确定此人是否加入时起着至关重要作用的特征是什么。我认为这是一个分类问题。

创建模型后,我获得了model.coeffc_(如sklearn中所示),它给出了每个特征的系数值。 假设我12月份得到0.0028,我怎么能解释这个月对一个人是否加入有影响。它可能影响,加入的人,而不是拒绝。有可能,对吗?那么,每个特征的这些系数值如何确定,类(特别是哪个类)?

在回归中,我们可以说12月的0.028值对增长值有影响,-0.028对减少值有影响。但是,如何将这个想法用于分类呢?请提供一些有价值的见解。

1 个答案:

答案 0 :(得分:2)

回归和分类之间没有太大区别。正值总是与增加分类为正类的机会相关,而负数则有机会成为负样本(我假设所有特征都是正面的,否则你在这个意义上没有任何意义)。但是要注意,在分类和回归中并非如此如果一个权重大于另一个权重,那么一个功能更重要。有许多方面可以改变这种行为,特别是特征值规模,方差,一般 - 特征值分布。

简而言之。如果您的要素是正值,则该要素的符号会显示哪个类的特征更相关。线性模型中的一般分类程序(如线性SVM,而不是RF)是

cl(x) = sign( SUM_i coef_i x_i )

因此,您可以看到,如果x_i为正数,则coef_i的符号会升高(对于正值)或降低(对于负值)cl(x) = 1的概率。但是,如果您有coef_1 = 1coef_2=180这并不意味着第二个特征更重要,那么可能是第二个特征值更小的事实的结果,例如特征1可能是一个人的身高(厘米)(例如180厘米),而另一个特征是二进制(0或1),所以

x_1 * coef_1 = 180 * 1 = 180 = 1 * 180 = x_2 * coef_2

每个功能的实际重要性是机器学习社区中的一个完整的研究领域,称为“特征重要性”#34;或"特征选择方法"。有许多这样的方法,其中没有一个是简单的"最好的"。

相关问题