在最后一节课上,我们了解了数据缺失的问题,本课主要学习如何填补这些缺失值。这个过程被称为插补(Imputation)。基于其他可用信息的估计值替换缺失的数据进行插补。
Imputation我们将看到两种主要的插补方法,平均插补方法(mean imputation)和回归插补(regression imputation)。
我们还将研究如何修改机器学习管道(pipeline),以便在构建和评估模型之前进行插补,以填补缺失值。
到目前为止,我们已经看到了完整的案例分析,其中我们删除了缺乏数据的行。现在我们将尝试填充缺乏数据的值,即插补。为此,我们将研究心血管疾病事件预测的案例,也称为心血管疾病(CVD)。因此,我们将有一个预测模型来输出心血管疾病事件的十年风险,其中心血管疾病事件可以包括任何心血管疾病事件。这可能包括心脏病发作和中风,其中我们的血流喂养心脏或大脑被阻塞。
作为这个预后模型的输入,我们将有年龄和收缩压力,我们以前见过。因此,让我们研究一下机器学习管道,看看我们是如何使用插件的。
Mean Imputation因此,我们的第一步是将包含这些缺失值的数据集分为训练集和测试集。请注意,训练集和测试集都包含缺失值。
现在,我们应该特别关注训练集。我想在这里解释一些事情。首先,我们探索年龄、血压和心血管疾病之间的关系,并以图表的形式进行。(从现在起,我称心血管疾病的风险为CVD)
我们把年龄放在X轴上,把血压放在Y轴上。这里的每一点都是病人,红色代表未来十年。 CVD 蓝色代表的患者在未来十年内没有发生 CVD 的病人。
现在,请注意,我们有一些缺失的血压测量值。我们知道这些病人的年龄,但我们只是不知道他们的血压在哪里。我们将试图找出我们应该为这些点的每个人分配什么血压值。
我们将从一种简单的插补方法开始,这被称为平均插补(Mean Imputation)。在平均插补中,我们首先看看我们的数据集中所有可观察到的血压值,然后我们简单地平均它们。
因此,假设我正在浏览这个数据集,有很多线,我只是看了所有的血压值,然后取了平均值,假设这个数据集观察到的平均血压值是140,对于所有我不知道血压测量值的点,我会说血压测量值是140。
从上图可以看出,我们已经为所有缺失的血压记录分配了140个血压值。对于训练集,我们填写了140个缺失值,测试集也使用了我们在训练集中发现的平均血压值。
请注意,测试集中的平均血压值没有重新计算,因为测试集可能很小,不能代表所有数据。
考虑到这一点,试试下面的测试。
如图所示,对101名患者和11名患者的血压进行了估计。已知训练集的平均血压为125,测试中的平均血压为120。
花一分钟思考