特征重要性分数 Python

数据挖掘 Python 特征提取 特征工程
2022-03-08 21:28:42

我有一个具有 7 个属性的数据集,即时间、C1、... C7 与地震报告有关,其中每一列/属性代表损坏的某个方面,即功率、下水道和水、震动强度等。这些属性中的每一个都有从 0 到 10 的等级,其中 0 表示无损坏,10 表示最大损坏。

因为,每个属性中的一些评级可能不可信,因此我试图计算如下加权分数 - (C1 * W1) + (C2 * W2) + ... + (C7 * W7); 其中 Ci 是第 i 个属性,Wi 是它的特征重要性得分。

为了计算每个行/数据点的加权分数,我正在尝试训练一个分类器,例如随机森林、LightGBM 或 XGBoost,这将为我提供每个属性的特征重要性分数。然而,由于我不知道哪个属性应该是目标,我使用了一种蛮力方法,我选择每个属性作为目标并训练一个分类器来查看哪个属性给了我最高的准确度。

但是,这种方法的问题是,在 n 个属性中,我只会获得 (n - 1) 个属性的特征重要性分数,因为第 n 个属性是目标变量。

你能建议一种方法来获取数据集中每个属性的特征重要性分数吗?

谢谢!

1个回答

并非所有算法都为您提供 feature_importance,其中一些算法为您提供coeff(权重 W1..W7)值。所以根据我的说法,你提取 feature_importance 的方式是正确的。

但是,这种方法的问题是,在 n 个属性中,我只会获得 (n - 1) 个属性的特征重要性分数,因为第 n 个属性是目标变量。

模型根据特征和目标值进行训练。因此,您将仅获得功能而不是目标的 feature_importance。

使用统计方法,您还可以分析各种特征与目标值之间的关系。

作为旁注:

  • 确保以相同的规模对所有特征进行归一化,以便更好、更快地进行训练。