机器学习中如何处理缺失数据(NAN)?

文章目录:

  • 一、NAN 和 Inf
  • 二、机器学习中空值的处理方法

一、NAN 和 Inf

NAN(Not A number):意思:不是一个数字,是一个空值

Inf(Infinity 英 /ɪn’fɪnɪtɪ/ 美 /ɪn’fɪnəti/ ):意识是:无穷、无穷大

在使用numpy数组的过程中时常会出现nan或者inf的元素,可能会造成数值计算时的一些错误。这里提供一个numpy库函数的用法,使nan和inf能够最简单地转换成相应的数值。

  1. numpy.nan_to_num(x): 函数就是把nan和inf数值转换成数值

使用0代替数组x中的nan元素,使用有限的数字代替inf元素

>>>import numpy as np
>>> a = np.array([[np.nan,np.inf],\
...               [-np.nan,-np.inf]])
>>> a
array([[  nan,   inf],[  nan,  -inf]])
>>> np.nan_to_num(a)
array([[ 0.00000000e+000,  1.79769313e+308],[ 0.00000000e+000, -1.79769313e+308]])
  1. 判断是否为空值和无穷值的函数
  • isinf
  • isneginf
  • isposinf
  • isnan
  • isfinite

使用方法也很简单,以isnan举例说明:

>>> import numpy as np
>>> np.isnan(np.array([[1, np.nan, np.inf],\
...               [np.nan, -np.inf, -0.25]]))
array([[False,  True, False],[ True, False, False]], dtype=bool)
  1. pandas也有判断是否为空值的函数
>>> import pandas as pd
>>> pd.isnull(np.nan)
True

#同样的pd.notnull()用来判断不为nan值

二、机器学习中空值的处理方法

目前有三类处理方法:

  1. 用平均值、中值、分位数、众数、随机值等替代。效果一般,因为等于人为增加了噪声。

  2. 用其他变量做预测模型来算出缺失变量。效果比方法1略好。有一个根本缺陷,如果其他变量和缺失变量无关,则预测的结果无意义。如果预测结果相当准确,则又说明这个变量是没必要加入建模的。一般情况下,介于两者之间。

  3. 最精确的做法,把变量映射到高维空间。比如性别,有男、女、缺失三种情况,则映射成3个变量:是否男、是否女、是否缺失。连续型变量也可以这样处理。比如Google、百度的CTR预估模型,预处理时会把所有变量都这样处理,达到几亿维。这样做的好处是完整保留了原始数据的全部信息、不用考虑缺失值、不用考虑线性不可分之类的问题。缺点是计算量大大提升。
    而且只有在样本量非常大的时候效果才好,否则会因为过于稀疏,效果很差。

Reference:
1、https://www.zhihu.com/question/26639110
2、https://blog.csdn.net/xiaodongxiexie/article/details/54352889


如果你觉得对你有帮助,希望你可以打赏知识!

支付宝收款码 微信收款码

如果你热衷技术,想寻找志同道合的伙伴,欢迎加入我们!

微信交流 QQ技术交流群

机器学习中如何处理缺失数据(NAN和Ifo)?相关推荐

  1. 机器学习中如何处理不平衡数据?

    点击"小詹学Python",选择"星标"公众号 重磅干货,第一时间送达 选自 | TowardsDataScience 参与 | 贾伟.路 本文转载自机器之心, ...

  2. 机器学习中如何处理不平衡数据

    https://mp.weixin.qq.com/s/x48Ctb0_Eu1kcSGTYLt5BQ

  3. 纠正Pandas中的缺失数据

    目录 介绍 查找丢失的数据元素 使用drop和dropna删除缺少的Pandas列 丢掉丢失的Pandas行 替换值 摘要 将数据加载到灵活的结构后,我们需要确定如何处理丢失和重复的数据元素. 下载C ...

  4. eviews如何处理缺失数据填补_python数据预处理之异常值、缺失值处理方法

    数据预处理是明确分析目标与思路之后进行数据分析的第一步,也是整个项目中最基础.花费时间较长的工作.除了互联网埋点的数据或企业内部的业务数据之外,往往我们拿到的,比如说网上采集的数据并不是那样规整,这类 ...

  5. 机器学习中如何解决数据不平衡问题?

    文章目录 目录 什么是数据不平衡问题? 数据不平衡会造成什么影响? 如何处理数据不平衡问题? 1.重新采样训练集 1.1随机欠抽样 1.2.基于聚类的过采样 2.使用K-fold交叉验证 3.转化为一 ...

  6. 机器学习 处理不平衡数据_在机器学习中处理不平衡数据

    机器学习 处理不平衡数据 As an ML engineer or data scientist, sometimes you inevitably find yourself in a situat ...

  7. azure机器学习_如何在Azure机器学习中使用JSON数据

    azure机器学习 Azure Machine Learning (also known as Azure ML) is cloud-based machine learning solution o ...

  8. eviews如何处理缺失数据填补_用EVIEWS把缺失数据补全

    (一)个案剔除法 最常见.最简单的处理缺失数据的方法是用个案剔除法也是很多统计软件(如SPSS和SAS)默认的缺失值处理方法.在这种方法中如果任何一个变量含有缺失数据的话,就把相对应的个案从分析中剔除 ...

  9. 在机器学习中处理大量数据!

    ↑↑↑关注后"星标"Datawhale 每日干货 & 每月组队学习,不错过 Datawhale干货 作者:牧小熊,华中农业大学,Datawhale成员 知乎 | https ...

最新文章

  1. Horizon View 6-虚拟桌面模板制作⑶
  2. ComboBox的真实值和显示值
  3. 必须掌握的前端模板引擎之art-template
  4. vue修改计算属性的值_Vue语法高级之计算属性和侦听器
  5. scanf 输入十六进制_使用C语言中的scanf()在字符变量中输入十进制,八进制和十六进制值...
  6. 7个习惯可以改变一个人和他的一生
  7. python十个评委打分_八个评委打分,通过筛选确定最佳评委和最差评委。
  8. Cisco协议学习笔记(VTP)
  9. 探究Windows内核你知多少
  10. 给你看一下真实的后浪...
  11. MapGIS入门教程——基础操作
  12. ExoPlayer的监听事件(Kotlin)
  13. linux修改hostid
  14. vue中的activated和deactivated
  15. 最详细的Android图片压缩攻略
  16. [转]最速下降曲线:重力场中两点之间曲线更快
  17. java读取.html文件并获取数据
  18. 双色球的简单逻辑!不中五百万天理难容!
  19. Matlab 迭代法计算灰值图像的level
  20. 51单片机 11.0592MHz 产生115200 波特率

热门文章

  1. h5-16-SVG 与 HTML5 的 canvas 各自特点
  2. python中安装一个第三方库的命令格式是-无法使用pip命令安装python第三方库的彻底解决方案...
  3. 财务学python有意义吗-8年老财务:财务分析学python就能提高效率?一半人是骗子...
  4. python简单代码 春节集五福-新年福利来一波之Python轻松集齐五福(demo)
  5. python有道翻译-使用python2爬取有道翻译
  6. 学python心得体会1000字-Python学习心得体会总结,不要采坑
  7. python画图小房子代码-python少儿编程-turtle 基本绘图
  8. python爬虫案例-Python爬取租房数据实例,据说可以入门爬虫的小案例!
  9. 怎么自学python自动化测试-python自动化测试如何自动生成测试用例?
  10. 编程语言python特点-Python编程语言的优点