机器学习中如何处理缺失数据(NAN和Ifo)?
机器学习中如何处理缺失数据(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能够最简单地转换成相应的数值。
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]])
- 判断是否为空值和无穷值的函数
- 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)
- pandas也有判断是否为空值的函数
>>> import pandas as pd
>>> pd.isnull(np.nan)
True
#同样的pd.notnull()用来判断不为nan值
二、机器学习中空值的处理方法
目前有三类处理方法:
用平均值、中值、分位数、众数、随机值等替代。效果一般,因为等于人为增加了噪声。
用其他变量做预测模型来算出缺失变量。效果比方法1略好。有一个根本缺陷,如果其他变量和缺失变量无关,则预测的结果无意义。如果预测结果相当准确,则又说明这个变量是没必要加入建模的。一般情况下,介于两者之间。
最精确的做法,把
变量映射到高维空间
。比如性别,有男、女、缺失三种情况,则映射成3个变量:是否男、是否女、是否缺失。连续型变量也可以这样处理。比如Google、百度的CTR预估模型,预处理时会把所有变量都这样处理,达到几亿维。这样做的好处是完整保留了原始数据的全部信息、不用考虑缺失值、不用考虑线性不可分之类的问题。缺点是计算量大大提升。
而且只有在样本量非常大的时候效果才好,否则会因为过于稀疏,效果很差。
Reference:
1、https://www.zhihu.com/question/26639110
2、https://blog.csdn.net/xiaodongxiexie/article/details/54352889
如果你觉得对你有帮助,希望你可以打赏知识!
支付宝收款码 | 微信收款码 |
如果你热衷技术,想寻找志同道合的伙伴,欢迎加入我们!
微信交流 | QQ技术交流群 |
机器学习中如何处理缺失数据(NAN和Ifo)?相关推荐
- 机器学习中如何处理不平衡数据?
点击"小詹学Python",选择"星标"公众号 重磅干货,第一时间送达 选自 | TowardsDataScience 参与 | 贾伟.路 本文转载自机器之心, ...
- 机器学习中如何处理不平衡数据
https://mp.weixin.qq.com/s/x48Ctb0_Eu1kcSGTYLt5BQ
- 纠正Pandas中的缺失数据
目录 介绍 查找丢失的数据元素 使用drop和dropna删除缺少的Pandas列 丢掉丢失的Pandas行 替换值 摘要 将数据加载到灵活的结构后,我们需要确定如何处理丢失和重复的数据元素. 下载C ...
- eviews如何处理缺失数据填补_python数据预处理之异常值、缺失值处理方法
数据预处理是明确分析目标与思路之后进行数据分析的第一步,也是整个项目中最基础.花费时间较长的工作.除了互联网埋点的数据或企业内部的业务数据之外,往往我们拿到的,比如说网上采集的数据并不是那样规整,这类 ...
- 机器学习中如何解决数据不平衡问题?
文章目录 目录 什么是数据不平衡问题? 数据不平衡会造成什么影响? 如何处理数据不平衡问题? 1.重新采样训练集 1.1随机欠抽样 1.2.基于聚类的过采样 2.使用K-fold交叉验证 3.转化为一 ...
- 机器学习 处理不平衡数据_在机器学习中处理不平衡数据
机器学习 处理不平衡数据 As an ML engineer or data scientist, sometimes you inevitably find yourself in a situat ...
- azure机器学习_如何在Azure机器学习中使用JSON数据
azure机器学习 Azure Machine Learning (also known as Azure ML) is cloud-based machine learning solution o ...
- eviews如何处理缺失数据填补_用EVIEWS把缺失数据补全
(一)个案剔除法 最常见.最简单的处理缺失数据的方法是用个案剔除法也是很多统计软件(如SPSS和SAS)默认的缺失值处理方法.在这种方法中如果任何一个变量含有缺失数据的话,就把相对应的个案从分析中剔除 ...
- 在机器学习中处理大量数据!
↑↑↑关注后"星标"Datawhale 每日干货 & 每月组队学习,不错过 Datawhale干货 作者:牧小熊,华中农业大学,Datawhale成员 知乎 | https ...
最新文章
- Horizon View 6-虚拟桌面模板制作⑶
- ComboBox的真实值和显示值
- 必须掌握的前端模板引擎之art-template
- vue修改计算属性的值_Vue语法高级之计算属性和侦听器
- scanf 输入十六进制_使用C语言中的scanf()在字符变量中输入十进制,八进制和十六进制值...
- 7个习惯可以改变一个人和他的一生
- python十个评委打分_八个评委打分,通过筛选确定最佳评委和最差评委。
- Cisco协议学习笔记(VTP)
- 探究Windows内核你知多少
- 给你看一下真实的后浪...
- MapGIS入门教程——基础操作
- ExoPlayer的监听事件(Kotlin)
- linux修改hostid
- vue中的activated和deactivated
- 最详细的Android图片压缩攻略
- [转]最速下降曲线:重力场中两点之间曲线更快
- java读取.html文件并获取数据
- 双色球的简单逻辑!不中五百万天理难容!
- Matlab 迭代法计算灰值图像的level
- 51单片机 11.0592MHz 产生115200 波特率
热门文章
- h5-16-SVG 与 HTML5 的 canvas 各自特点
- python中安装一个第三方库的命令格式是-无法使用pip命令安装python第三方库的彻底解决方案...
- 财务学python有意义吗-8年老财务:财务分析学python就能提高效率?一半人是骗子...
- python简单代码 春节集五福-新年福利来一波之Python轻松集齐五福(demo)
- python有道翻译-使用python2爬取有道翻译
- 学python心得体会1000字-Python学习心得体会总结,不要采坑
- python画图小房子代码-python少儿编程-turtle 基本绘图
- python爬虫案例-Python爬取租房数据实例,据说可以入门爬虫的小案例!
- 怎么自学python自动化测试-python自动化测试如何自动生成测试用例?
- 编程语言python特点-Python编程语言的优点