五、python 缺失值处理(Imputation)
一、缺失值的处理方法
由于各种各样的原因,真实世界中的许多数据集都包含缺失数据,这些数据经常被编码成空格、nans或者是其他的占位符。但是这样的数据集并不能被scikit - learn算法兼容,因为大多数的学习算法都会默认数组中的元素都是数值,因此素偶有的元素都有自己的代表意义。
使用不完整的数据集的一个基本策略就是舍弃掉整行或者整列包含缺失值的数值,但是这样处理会浪费大量有价值的数据。下面是处理缺失值的常用方法:
1.忽略元组
当缺少类别标签时通常这样做(假定挖掘任务涉及分类时),除非元组有多个属性缺失值,否则该方法不是很有效。当每个属性缺少值的百分比变化很大时,它的性能特别差。
2.人工填写缺失值
一般该方法很费时,并且当数据集很大,缺少很多值时,该方法可能行不通。
3.使用一个全局常量填充缺失值
将缺失的属性值用同一个常数(如“Unknown”或 负无穷)替换。如果缺失值都用“unknown”替换,则挖掘程序可能会认为它们形成一个有趣的概念,因为它们都具有相同的值“unknown”。因此,虽然该方法很简单,但是它十分不可靠。
4.使用与给定元组属同一类的所有样本的属性均值
例如:将顾客按照credit_risk分类,则使用具有相同信用度的给定元组的顾客的平均收入替换income中的缺失值。
5.使用最可能的值填充缺失值
可以用回归、使用贝叶斯形式化的基于推理的工具或决策树归纳确定。例如,利用数据集中其他顾客的属性,可以构造一颗决策树来预测income的缺失值。
注意:缺失值并不总是意味着数据的错误!!!!!!!
二、缺失值处理的代码实现
class:`Imputer`类提供了缺失数值处理的基本策略,比如使用缺失数值所在行或列的均值、中位数、众数来替代缺失值。该类也兼容不同的缺失值编码。
1、使用均值填充缺失值
import numpy as npfrom sklearn.preprocessing import Imputerimp = Imputer(missing_values='NaN', strategy='mean', axis=0)import numpy as np
from sklearn.preprocessing import Imputer###1.使用均值填充缺失值
imp = Imputer(missing_values='NaN', strategy='mean', axis=0)
imp.fit([[1, 2], [np.nan, 3], [7, 6]])X = [[np.nan, 2], [6, np.nan], [7, 6]]
print(imp.transform(X))
[[4. 2. ][6. 3.66666667][7. 6. ]]
2、Imputer
类也支持稀疏矩阵:
import scipy.sparse as sp
X = sp.csc_matrix([[1, 2], [0, 3], [7, 6]])
imp = Imputer(missing_values=0, strategy='mean', axis=0)
imp.fit(X)X_test = sp.csc_matrix([[0, 2], [6, 0], [7, 6]])
print(imp.transform(X_test))
#注意,在这里,缺失数据被编码为0, 这种方式用在当缺失数据比观察数据更多的情况时是非常合适的。
五、python 缺失值处理(Imputation)相关推荐
- 十五. Python基础(15)--内置函数-1
十五. Python基础(15)--内置函数-1 1 ● eval(), exec(), compile() 执行字符串数据类型的python代码 检测#import os 'import' in c ...
- Python缺失值的处理
Python缺失值的处理 一. 缺失值的检测 二. 缺失值的处理 1.删除缺失值 2.填充缺失值 3.插补缺失值 一. 缺失值的检测 pandas中None或NaN代表缺失值,检测缺失值的常用方法包括 ...
- python实验目的_实验五 Python文件操作实验
实验五 Python文件操作实验 一.实验目的与要求 1.掌握文件的打开和关闭. 2.掌握文件的不同操作,如读写.重命名.删除. 3.熟悉闭包.装饰器以及常见内置函数的使用. 二.实验原理 在pyth ...
- python 缺失值处理(Imputation)
一.缺失值的处理方法 由于各种各样的原因,真实世界中的许多数据集都包含缺失数据,这些数据经常被编码成空格.nans或者是其他的占位符.但是这样的数据集并不能被scikit - learn算法兼容,因为 ...
- python缺失值处理 fillna能否用scala来处理_数据清洗(一)丨处理缺失数据
原标题:数据清洗(一)丨处理缺失数据 其实数据分析中80%的时间都是在数据清理部分,而为什么要进行数据清洗呢? 因为在实际生产环境中,存在大量"脏"数据 ✔不完整数据:缺少感兴趣属 ...
- python缺失值与异常值处理_pandas学习(常用数学统计方法总结、读取或保存数据、缺省值和异常值处理)...
pandas学习(常用数学统计方法总结.读取或保存数据.缺省值和异常值处理) 目录 常用数学统计方法总结 读取或保存数据 缺省值和异常值处理 常用数学统计方法总结 count 计算非NA值的数量 de ...
- Python学习篇(五) Python中的循环
文章目录 前言 一.range函数 二.while循环 2.1四步循环法 三.for in 循环 四.流程控制语句 4.1 break 4.2 continue 五.else语句 六.嵌套循环 七.二 ...
- Python实验报告五 python基础试题练习
文件 一.实验目的与要求 1.掌握文件的打开和关闭的方法. 2.掌握文本文件和二进制文件文件的不同操作,如读写.重命名.删除. 3.掌握os与os.path模块文件和文件夹的操作 二.题目 1 编写程 ...
- 人工智能学习笔记 实验五 python 实现 SVM 分类器的设计与应用
学习来源 [机器学习]基于SVM人脸识别算法的一些对比探究(先降维好还是先标准化好等对比分析)_○( ^皿^)っHiahiahia-的博客-CSDN博客 实验原理 有关svm原理 请移步该篇通俗易懂的 ...
最新文章
- mysql简单概述_MySQL入门很简单: 1 数据库概述
- 腾讯云数据库TDSQL-学习心得与收获
- matlab高等数学实验答案,MATLAB高等数学实验-(第2版)
- MATLAB快速傅里叶变换(fft)函数详解
- 模糊聚类及matlab实现,matlab模糊聚类程序
- ASP.NET 学习笔记 之 MasterPageFile母版页
- 端口和网络安全的关系
- 想进大公司先测你EQ
- Unity按钮按下、抬起的反应
- Clonezilla 再生龙
- 本题要求实现一个函数,输出n行空心的数字金字塔。
- java 制作签名版电子合同pdf版本
- iphone12绿色好看 ,相比被全民吐槽的蓝色,绿色是怎么做到零差评的
- 验证boost是否安装成功
- Unity下利用 timeScale和 unscaledDeltaTime实现部分静帧
- O2O汽车平台(三)
- COOX基础培训之MTG
- python查找图片
- Aizu-2200-floyd+dp
- JS Web API