前言
现实世界的数据中常常包含缺失的数据。原因很多,比如观察结果没有记录,或数据损坏。处理缺失的数据很重要,因为许多机器学习算法不支持具有缺失值的数据库。
本教程将讨论如何使用Python处理缺失的数据来进行机器学习。
您将了解到:
•如何在数据集中标记无效或损坏的值。
•如何从数据集中删除缺失数据的行。
•如何使用数据集的均值估算缺失值。
注意:文章中的例子前提是安装了Python 2或3,Pandas,NumPy和Scikit-Learn的;特别是scikit-learn版本0.18或更高版本。
概述
本教程分为6部分:
Python学习交流Q群:906715085###
•皮马印度人糖尿病数据集:我们在哪里查看已知缺失值的数据集。
•标记缺失值:我们学习如何在数据集中标记缺失值。
•缺少值导致的问题: 机器学习算法如果包含缺少值,将会如何失败。
•删除缺少值的行: 如何删除包含缺失值的行。
•估算缺失值:我们用合理的值替换缺失值。
•允许缺失值的算法:哪些算法允许缺失值。
首先,我们来看看缺少值的示例数据集。
1、皮马印度人糖尿病数据集
皮马印第安人糖尿病数据集根据现有的医疗信息预测5年内皮马印第安人糖尿病发作的概率。
这是两类(2-class)分组问题,每组的观察标本量不同。共有768个观测值,8个输入变量和1个输出变量。变量名称如下:
0.怀孕次数。
-
口服葡萄糖耐量试验中血浆葡萄糖浓度为2小时。
-
舒张压(mm Hg)。
-
三头肌组织褶厚度(mm)。
-
2小时血清胰岛素(μU/ ml)。
-
体重指数(kg/ (身高(m))^ 2)。
-
糖尿病系统功能。
-
年龄(岁)。
-
类变量(0或1)。
预测的标准是大约65%的分类精准度。最好结果的分类精度约为77%。
以下列出前5行的样本。