如何解释机器学习预测中的虚拟变量?

数据挖掘 机器学习 深度学习 数据挖掘 特征选择 虚拟变量
2022-03-02 07:52:22

我正在研究一个二进制分类问题,其中混合了连续变量和分类变量。

分类变量是我使用get_dummiespandas 中的函数创建的。

现在我的问题是,

1)我看到有一个名为的参数drop_first,它通常被赋予 value True为什么我们必须这样做?假设出于示例的目的,我们在性别列中有 2 个值,即Male, Female如果我使用drop_first=True,它只返回一列。例如如果我的特征重要性作为一个重要特征返回gender_male我是否可以推断出只有性别会影响结果(因为男性表示为 1,女性表示为 0)和女性(0)不影响模型结果?还是 0 通常在 ML 模型预测中不起任何作用?10gender_maleMale

2) 假设我的性别有 3 个值,例如Male, Female, Transgender在这种情况下,如果我使用drop_first=True,它只会返回两列

gender_male带 1 和 0 - 这里0代表Transgender对吗?

gender_female带 1 和 0 - 这里0代表Transgender对吗?

3)不使用的缺点是什么drop_first=True仅仅是关于列数的增加吗

你能帮我解决上述问题吗?

1个回答

1) Usingdrop_first=True在统计中更常见,通常被称为“虚拟编码”,而 usingdrop_first=False为您提供“一个热编码”,这在 ML 中更常见。对于像随机森林这样的算法方法,它没有任何区别。另请参阅“Python 机器学习简介”;穆勒,圭多;2016 年:

我们使用的 one-hot 编码与统计中使用的虚拟编码非常相似,但并不完全相同。为简单起见,我们使用不同的二进制特征对每个类别进行编码。在统计学中,通常将具有 k 个不同可能值的分类特征编码为 k-1 个特征(最后一个表示为全零)。这样做是为了简化分析(从技术上讲,这将避免使数据矩阵秩不足)。

但是,对二进制变量使用虚拟编码并不意味着 a0没有相关性。Ifgender_male具有很高的重要性,通常不会说明gender_male==0vs的重要性gender_male==1它是变量重要性,因此按变量计算。例如,如果您在 Trees 中使用基于杂质的估计,它只会为您提供通过拆分这个非常变量而实现的杂质平均减少量。

此外,如果您的性别变量是二进制的,gender_male==1则相当于gender_female==0. 因此,从你的高度可变重要性gender_male不能推断出女性(或不是)是不相关的。

2)在这种情况下gender_male==0 AND gender_female==0意味着跨性别是真实的。

3) 见 1)。对于 ML 中的算法方法,使用 one-hot-encoding 没有统计上的缺点。(正如评论中指出的那样,它甚至可能是有利的,因为基于树的模型可以在没有被丢弃的情况下直接拆分所有特征)