machine-learning - 如何使用机器学习模型(或其特征系数)来解释该特征是否与特定类别相关?

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

我有一个包含教育、经验、加入月份等特征的数据集,我的预测是一个人是否接受录用。我使用 sk-learn SVM、Randomforest 等创建了一些模型。我的目标是了解哪些特征在确定该人是否加入方面发挥着至关重要的作用。我认为这是一个分类问题。

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

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

最佳答案

回归和分类之间没有太大区别。正值总是与分类为正类的机会增加相关,而负值则有机会成为负样本(我假设你的所有特征都是正的,否则你就失去了这个意义上的任何意义)。但要小心,在分类和回归中,如果一个权重大于另一个权重,那么一个特征就更重要,这种说法是不正确的。有很多方面会改变这种行为,特别是特征值尺度、方差,一般来说 - 特征值分布。

简而言之。如果您的特征为正值,则该特征的符号会显示该特征与哪个类更相关。线性模型(例如线性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

每个特征的实际重要性是机器学习社区中称为“特征重要性”或“特征选择方法”的整个研究领域。这样的方法有几十种,但没有一种是“最好的”。

关于machine-learning - 如何使用机器学习模型(或其特征系数)来解释该特征是否与特定类别相关?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29799524/

相关文章:

java - GRT 库,以及如何在 Android Studio 上导入 native 库

machine-learning - 可以将 Terraform 模板与 SageMaker ML Pipelines 结合使用吗?

python - 同一算法 scikit 神经网络多次运行的不同预测

machine-learning - 在 Logistic 回归 (Scikit-learn) 中选择合适的容差值

matlab - 使用 hmm 对序列进行分类的基本帮助

java - 使用 DROOLS 对项目进行分类

python - 为什么我得到 DatasetV1Adapter 返回类型而不是 TensorSliceDataset for tf.data.Dataset.from_tensor_slices(X)

machine-learning - 这两个代码有什么区别吗?

python - PCA 上的组件数量受样本数量限制

C#:有没有办法对枚举进行分类?