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

时间:2017-09-27 19:51:24

标签: python scikit-learn modeling imputation

我正在使用Python学习机器学习,并了解我无法通过模型运行分类数据,并且必须首先获得假人。我的一些分类数据有空值(只有2个特征的一小部分)。当我转换为假人,然后看看我是否有丢失的值,它总是显示没有。我应该事先估算吗?或者我根本不会归类分类数据?例如,如果类别是男性/女性,我不希望用most_frequent替换null。我知道如果这个特征是收入,这将是多么有意义,而且我将把错误的价值归咎于此。收入是收入,而男性不是女性。

那么归类分类数据是否有意义?我离开了吗?对不起,这比实际的Python编程更适用于理论,但不知道在哪里发布这类问题。

1 个答案:

答案 0 :(得分:4)

我认为答案取决于功能的属性。

使用expectation maximization(EM)

填写缺失的数据

假设您有两个功能,一个是性别(缺少数据),另一个是工资(没有丢失数据)。如果两个要素之间存在关联,则可以使用工资中包含的信息填写性别中的缺失值。

更正式地说 - 如果你在性别列中有一个缺失值,但你有工资值,EM会告诉你P(性别=男性|工资= w0,theta),即概率性别为男性给定工资= w0和theta是最大似然估计得到的参数。

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

目视:

enter image description here

(这些是完全临时的价值观,但传达的观点是男性的工资分配一般高于女性的工资分配)

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

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