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

标签 python scikit-learn modeling imputation

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

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

最佳答案

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

expectation maximization填充缺失数据(EM)

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

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

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

视觉上:

enter image description here

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

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

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

关于Python 机器学习 - 输入分类数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46456149/

相关文章:

Python 正则表达式的含义

Python 修剪列表中的空格

python - 使用 numpy 对周期信号的单个周期进行平均

scikit-learn - scikit-learn 中的 Nu_SVR 没有详细信息

python - 基于原始列的数据类型是对象,在数据框中创建多个虚拟变量的最佳方法是什么?

python - Pandas 如何创建一个具有开始和结束的新数据框,即使在不同的行上也是如此

python - 计算多类的sklearn.roc_auc_score

uml - 如何使 StarUML 组件图中的端口在左侧对齐?

r - auto.arima 使用 xreg 并一起预测多个 ts

c++ - 如何针对 "suspicious sizeof"或 SIZEOF_MISMATCH 结果训练 Coverity?