【问题标题】:Python Machine Learning - Imputing categorical data?Python机器学习 - 输入分类数据?
【发布时间】:2018-03-09 10:19:28
【问题描述】:

我正在使用 Python 学习机器学习,并且了解我无法通过模型运行分类数据,并且必须首先获得假人。我的一些分类数据有空值(只有 2 个特征的一小部分)。当我转换为假人时,看看我是否有缺失值,它总是不显示。我应该事先估算吗?还是我完全估算分类数据?例如,如果类别是男性/女性,我不想用 most_frequent 替换空值。如果该功能是收入,我知道这将如何有意义,并且我将估算缺失值。收入就是收入,而男性不是女性。

那么估算分类数据是否有意义?我走远了吗?很抱歉,这是比实际 Python 编程更多的应用理论,但不确定在哪里发布此类问题。

【问题讨论】:

  • 傻瓜正在用 0 和 1 替换分类数据。它还通过特征中不同值的数量来扩大数据集。因此,名为 M/F 的特征将具有“男性”或“女性”值。这在虚拟形式将是 2 列.. 男性和女性,二进制 0 或 1 而不是文本。这个特殊的例子似乎也引入了共线性,因为每次男性为 0,女性为 1,依此类推。
  • 所以,您的意思只是将 M/F 映射为 1-hot 编码类型:M -> [0, 1] F-> [1, 0]

标签: python scikit-learn modeling imputation


【解决方案1】:

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

expectation maximization (EM) 填写缺失数据

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

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

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

视觉上:

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

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

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

【讨论】:

    猜你喜欢
    • 2021-03-27
    • 2021-05-09
    • 2020-05-04
    • 2019-03-06
    • 2017-05-16
    • 2021-10-27
    • 2023-04-04
    • 2021-04-14
    • 1970-01-01
    相关资源
    最近更新 更多