Python 机器学习 - 输入分类数据?

Python Machine Learning - Imputing categorical data?

我正在使用 Python 学习机器学习,我知道我无法通过模型 运行 分类数据,必须先获取虚拟变量。我的一些分类数据有空值(只有 2 个特征的一小部分)。当我转换为假人时,然后查看我是否有缺失值,它总是显示 none。我应该事先估算吗?或者我是否完全归因于分类数据?例如,如果类别是 male/female,我不想用 most_frequent 替换空值。如果特征是收入,我知道这有什么意义,我打算估算缺失值。收入就是收入,而男性不是女性。

那么插补分类数据是否有意义?我走远了吗?很抱歉,这是比实际 Python 编程更实用的理论,但不确定 post 此类问题的出处。

我认为答案取决于您的特征的属性。

expectation maximization (EM)

填充缺失数据

假设你有两个特征,一个是性别(有缺失数据),另一个是工资(没有缺失数据)。如果这两个特征之间存在关系,您可以使用工资中包含的信息来填充性别中的缺失值。

说得更正式一点——如果你在性别列中有缺失值,但你有工资值,EM 告诉你 P(gender=Male | wage=w0, theta),即概率给定 wage=w0 和 theta 的性别是男性,theta 是通过最大似然估计获得的参数。

简单来说,这可以通过 运行 性别对工资的回归来实现(使用逻辑回归,因为 y 变量是分类变量),从而得到上述概率。

视觉上:

(这些完全是临时值,但表达了男性的工资分布通常高于女性的想法)

填写缺失值#2 如果您认为数据是随机缺失的,即使这两个特征之间没有关系,您也可以使用最频繁的观察来填充缺失值。不过我会小心点。

不要归咎 如果这两个特征之间没有关系,并且您认为丢失的数据可能不是随机丢失的。