什么是缺失值?缺失值指数据集中某些变量的值有缺少的情况,缺失值也被称为NA(not available)值。在pandas里使用浮点值NaN(Not a Number)表示浮点数和非浮点数组中的缺失值,用NaT表示时间序列中的缺失值,此外python内置的None值也会被当作是缺失值。需要注意的是,有些缺失值也会以其他形式出现,比如说用0或无穷大(inf)表示。

缺失值产生的原因: a. 数据采集时发生错误

b. 数据提取过程有问题

处理缺失值的方法:

1. 直接删除(Deletion):如果缺失值非常少,不影响整体数据,那么可以直接删除整条记录(list-wise deletion)。这种方法的优点是简单,缺点是减少了样本数量。

2. 用标量插补(Single Imputation):如果缺失值比较少,那么可以使用平均值,中位数,众数进行插补。

3. 插值法(Interpolation):先求得插值函数,然后将缺失值对应的点代入插值函数得到缺失值的近似值。常见插值方法有拉格朗日插值法、分段插值法、样条插值法、线性插值法。

4.  用模型预测(Model-based Imputation):通过模型来估计缺失值,是处理缺失值比较复杂的方法。 如果缺失值很多,但是比较适用模型预测。在这种情况下,我们将数据集分为两组:一组没有缺失值,另一组有缺少值。 第一个数据集成为模型的训练数据集,而有缺失值的第二个数据集是测试数据集,有缺失值的变量被视为目标变量。 接下来,我们创建一个模型,根据训练数据集的特征预测目标变量,并填充测试数据集的缺失值。我们可以使用线性回归,随机森林,最近邻法,逻辑回归等各种建模技术来执行此操作。

 

这种方法有两个缺点:

  • 模型的估计值通常比真实值更好
  • 如果数据集中的特征与有缺少值的特征之间没有关系,那么模型估计将不精确。

附:

缺失值处理(Missing Values)的更多相关文章

  1. [sklearn]官方例程-Imputing missing values before building an estimator 随机填充缺失值

    官方链接:http://scikit-learn.org/dev/auto_examples/plot_missing_values.html#sphx-glr-auto-examples-plot- ...

  2. [sklearn] 官方例程-Imputing missing values before building an estimator 随机填充缺失值

    官方链接:http://scikit-learn.org/dev/auto_examples/plot_missing_values.html#sphx-glr-auto-examples-plot- ...

  3. Handling Missing Values

    1) A Simple Option: Drop Columns with Missing Values 如果这些列具有有用信息(在未丢失的位置),则在删除列时,模型将失去对此信息的访问权限. 此外, ...

  4. Multi-batch TMT reveals false positives, batch effects and missing values(解读人:胡丹丹)

    文献名:Multi-batch TMT reveals false positives, batch effects and missing values (多批次TMT定量方法中对假阳性率,批次效应 ...

  5. 【原】关于使用Sklearn进行数据预处理 —— 缺失值(Missing Value)处理

    关于缺失值(missing value)的处理 在sklearn的preprocessing包中包含了对数据集中缺失值的处理,主要是应用Imputer类进行处理. 首先需要说明的是,numpy的数组中 ...

  6. 关于缺失值(missing value)的处理---机器学习 Imputer

    关于缺失值(missing value)的处理 在sklearn的preprocessing包中包含了对数据集中缺失值的处理,主要是应用Imputer类进行处理. 首先需要说明的是,numpy的数组中 ...

  7. [Scikit-Learn] - 数据预处理 - 缺失值(Missing Value)处理

    reference : http://www.cnblogs.com/chaosimple/p/4153158.html 关于缺失值(missing value)的处理 在sklearn的prepro ...

  8. 探索性数据分析EDA综述

    目录 1. 数据探索的步骤和准备 2. 缺失值处理 为什么需要处理缺失值 Why data has missing values? 缺失值处理的技术 3. 异常值检测和处理 What is an ou ...

  9. Web Scraping with R: How to Fill Missing Value (爬虫:如何处理缺失值)

    网络上有大量的信息与数据.我们可以利用爬虫技术来获取这些巨大的数据资源. 这次用 IMDb 网站的2018年100部最欢迎的电影 来练练手,顺便总结一下 R 爬虫的方法. >> Prepa ...

随机推荐

  1. 论DOM中文档和元素的位置大小属性及其区别

    element.offsetLeft/Top  获取元素相对于最近的有定位的父元素的坐标,如果没有有定位的父元素,则是文档坐标 element.scrollTop/Left 获取元素滚动卷去的距离 e ...

  2. yii框架定时任务的操作

    在项目根目录里找到console(操作台,控制台)文件夹,在console文件夹里建一个TestController文件,如图所示: 文件内部写如下内容: 切记该文件继承的Controller一定是 ...

  3. nginx.conf配置demo

    #user nobody; worker_processes 4; #error_log logs/error.log; #error_log logs/error.log notice; #erro ...

  4. MongoDB和Java(5):Spring Data整合MongoDB(注解配置)

    最近花了一些时间学习了下MongoDB数据库,感觉还是比较全面系统的,涉及了软件安装.客户端操作.安全认证.副本集和分布式集群搭建,以及使用Spring Data连接MongoDB进行数据操作,收获很 ...

  5. pandas-05 map和replace操作

    # pandas-05 map和replace操作 map可以做一个映射,对于操作大型的dataframe来说就非常方便了,而且也不容易出错.replace的作用是替换,这个很好理解. import ...

  6. Linux DHCP 中继

    具体到一个公司的网络环境中,不可能只有一个VLAN,更不可能对每个VLAN都架设一个DHCP服务器,这时就要做一个DHCP的中继,使得DHCP的广播可以通过VLAN. 实验拓扑 三层交换机下面连接一台 ...

  7. Gtest:Using visual studio 2017 cross platform feature to compile code remotely

    参考:使用Visual Studio 2017作为Linux C++开发工具 前言 最近在学Gtest单元测试框架,由于平时都是使用Source Insight写代码,遇到问题自己还是要到Linux下 ...

  8. AD中怎么将字体stroke全部改为truetype?

    shift+F 智能查找功能,然后鼠标会变成十字状,你点一下你的这个字体会弹出如下: 一开始如果你没有改动过字体那应该都是同一总字体 在1的地方选择same,你点apply再点OK就可以把全部stro ...

  9. 解决pycharm导入pygame包问题

    在正确用pip命令安装好pygame后, 运行pycharm仍然会报错找不到pygame包, 这时候我们可以用pycharm自带的工具安装好pygame包,操作步骤如下: 点击设置,(或者ctrl+a ...

  10. Python入门篇-面向对象概述

    Python入门篇-面向对象概述 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.语言的分类 面向机器 抽象成机器指令,机器容易理解 代表:汇编语言 面向过程 做一件事情,排出个 ...