数据缺失值的3种处理方式,终于有人讲明白了

您所在的位置:网站首页 卡钻的处理方法有哪七种 数据缺失值的3种处理方式,终于有人讲明白了

数据缺失值的3种处理方式,终于有人讲明白了

2023-06-13 23:12| 来源: 网络整理| 查看: 265

那怎么办呢?需要首先对数据进行一些处理,这就是数据清洗。

02 怎样清洗数据

数据清洗虽然名叫“清洗”,不过工作的内容也相当广泛。大家如果第一次听,可能对这个名字很好奇,数据怎么和清洗扯上关系了呢?难道数据也可以放到水龙头下一顿猛冲吗? 我觉得,这里的清洗,是让东西变干净的理解。野生的数据,有些脏东西混在里面,而数据清洗的工作,就是让数据变得干净。

什么算是数据里的“脏东西呢”?举一个简单的例子,数据清洗的其中一种常见操作,是将样本数据的某个维度按标准转换格式。

我们都填过个人信息表,少不了要填“出生日期”,但就这个看似简单的信息,大家照样也会填的非常没有默契,譬如“1977.3”“2001月8日30日”“99.12”等等,不难想象,这样的数据直接读进模型,肯定会导致程序出现问题,所以必须首先经过格式转化 ,将所有数据变成统一的格式,才能喂给模型。

这就是数据清洗的作用。当然,数据清洗的工作远不止于此, 另一种很常见的操作,就是上文提到的填补数据缺失值,也就是处理Nan值。

03 怎样处理缺失值

野生的数据经常出现缺失值,这个很好理解,我们填写表格也经常心浮气躁,有一些内容可能就漏填了,譬如说在性别一栏留下了空白,这就是缺失值。

如果光看机器学习的教程,很容易让我们觉得,提供给机器学习的数据应该就像一个一个排列整齐的🥮方阵,都已经蓄势待发准备好接受某个模型的检阅。但在真实的环境中,数据更像是Jerrys最爱的奶酪,上面布满了空空洞洞的缺失值。

要进行数据清洗,就需要处理这些缺失值。那么,遇到缺失值,标准的处理流程都是怎样的呢? 这个问题没有答案,数据缺失值的处理是一门艺术,你想一想,你提交的表格上漏填了性别一项,等待这张表格七转八转转到我这里来时,我虽然看到你漏填了一项,但与你素未谋面,放着留空不合适,填男填女好像也不合适。

一般来说, 有以下三种处理方式:

第一种是咱家有矿型的处理方式,丢弃。

只要是某条样本存在缺失值,就直接丢弃这条样本,眼不见心不烦,也没后面这么多的是。这种做法优点很突出, 简单粗暴,省时省力,知名的数据处理工具pandas中,就专门提供了dropna这种方法。但缺点也很突出,一条宝贵的样本数据,因为沾了点脏东西就被浪费掉了。

一般来说, 这种方法在数据质量比较好,缺失值占比较少的情况下可以考虑。

第二种是和稀泥型的处理方式,填充均值。

如果不丢弃存在缺失值的样本,想要喂给数据,就必须重新给它赋值,这种行为如果上纲上线,是有一点“捏造数据”的意思在里面的,一旦赋值出现某种偏向性,就会影响整个样本的整体数据分布,最终必将导致机器学习模型的预测出现某种偏差。

那怎么办呢?和稀泥, 把均值填入其中,既然均值,也就不会对整体情况产生影响,同时也解决的缺失值的问题。从统计学的角度出发,除了填充均值以外,也可以选择填充 众数、中位数,效果略有区别,不过出发点都是一样的。

第三种我想了半天也不知道该怎么描述这种处理方式,只好留空了。在介绍缺失值填充的文章里留下缺失值,颇有点黑色幽默。这种处理方式比较简单,譬如说前一个样本的值是7,后一个样本的值是9,中间这个样本出现缺失值了,那填什么呢?自然是填一个8。 具体的方法就是插值法和KNN法。

以上三种基本上就是当前最常见的缺失值处理方式,不过,大家也从未忘记寻找更好的处理方式, 《基于机器学习数据缺失值填补》就提出了新的方法,顾名思义,采用了机器学习的方法, 譬如神经网络模型,来填补缺失值。

这个想法首先就很有意思,我填充缺失值,是为了接着进行机器学习,而现在要填充缺失值,却必须首先进行机器学习,嗯,有那味了。那么,机器学习究竟怎样鸡生蛋蛋生鸡,卖个关子,感兴趣的可以看看这本书。

关于作者:莫凡,网名木羊同学。娱乐向机器学习解说选手,《机器学习算法的数学解析与Python实现》作者,前沿技术发展观潮者,擅长高冷技术的“白菜化”解说,微信公众号“睡前机器学习”,个人知乎号“木羊”。

延伸阅读《基于机器学习的数据缺失值填补》

点击上图了解及购买

转载请联系微信:DoctorData

推荐语:资深专家多年研究和实践经验,创新性提出基于神经网络和TS模型的填补方法,大幅提升缺失值填补效率。返回搜狐,查看更多



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3