我正在使用 Python 学习机器学习,我明白我不能通过模型运行分类数据,必须先获得虚拟模型。我的一些分类数据有空值(只有 2 个特征的一小部分)。当我转换为假人时,然后查看我是否有缺失值,它总是显示没有。我应该事先估算吗?或者我是否完全归因于分类数据?例如,如果类别是男性/女性,我不想用 most_frequent 替换空值。如果特征是收入,我知道这有什么意义,我打算估算缺失值。收入就是收入,而男性不是女性。
那么插补分类数据是否有意义?我走远了吗?很抱歉,这是比实际 Python 编程更实用的理论,但不确定在哪里发布此类问题。
最佳答案
我认为答案取决于您的特征的属性。
用expectation maximization填充缺失数据(EM)
假设您有两个特征,一个是性别(有缺失数据),另一个是工资(没有缺失数据)。如果这两个特征之间存在关系,您可以使用工资中包含的信息来填充性别中的缺失值。
更正式地说——如果你在性别列中有缺失值但你有工资值,EM 告诉你 P(gender=Male | wage=w0, theta),即性别为男性,给定 wage=w0 和 theta,这是通过最大似然估计获得的参数。
简单来说,这可以通过对工资进行性别回归(使用逻辑回归,因为 y 变量是分类变量)来为您提供上述概率。
视觉上:
(这些完全是临时值,但传达了男性的工资分布通常高于女性的想法)
填写缺失值#2 如果您认为数据是随机缺失的,即使这两个特征之间没有关系,您也可以使用最频繁的观察来填充缺失值。不过我会很谨慎。
不要归咎 如果这两个特征之间没有关系,并且您认为丢失的数据可能不是随机丢失的。
关于Python 机器学习 - 输入分类数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46456149/