缺失值处理----缺失值填充方法总结
我们在进行模型训练时,不可避免的会遇到某些特征出现空值的情况,下面整理了几种填充空值的方法
1. 用固定值填充
对于特征值缺失的一种常见的方法就是可以用固定值来填充,例如0,9999, -9999, 例如下面对灰度分这个特征缺失值全部填充为-99
data['灰度分'] = data['灰度分'].fillna('-99')
2. 用均值填充
对于数值型的特征,其缺失值也可以用未缺失数据的均值填充,下面对灰度分这个特征缺失值进行均值填充
data['灰度分'] = data['灰度分'].fillna(data['灰度分'].mean()))
3. 用众数填充
与均值类似,可以用未缺失数据的众数来填充缺失值
data['灰度分'] = data['灰度分'].fillna(data['灰度分'].mode()))
4. 用上下数据进行填充
用前一个数据进行填充
data['灰度分'] = data['灰度分'].fillna(method='pad')
用后一个数据进行填充
data['灰度分'] = data['灰度分'].fillna(method='bfill')
5. 用插值法填充
data['灰度分'] = data['灰度分'].interpolate()
6. 用KNN进行填充
from fancyimpute import BiScaler, KNN, NuclearNormMinimization, SoftImpute
dataset = KNN(k=3).complete(dataset)
7. random forest进行填充
from sklearn.ensemble import RandomForestRegressor
zero_columns_2 = ['机构查询数量', '直接联系人数量', '直接联系人在黑名单数量', '间接联系人在黑名单数量','引起黑名单的直接联系人数量', '引起黑名单的直接联系人占比']
#将出现空值的除了预测的列全部取出来,不用于训练
dataset_list2 = [x for x in dataset if x not in zero_columns_2]
dataset_2 = dataset[dataset_list2]
# 取出灰度分不为空的全部样本进行训练
know = dataset_2[dataset_2['灰度分'].notnull()]
print(know.shape) #26417, 54
# 取出灰度分为空的样本用于填充空值
unknow = dataset_2[dataset_2['灰度分'].isnull()]
print(unknow.shape) #2078, 54y = ['灰度分']
x = [1]know_x2 = know.copy()
know_y2 = know.copy()
print(know_y2.shape)
#
know_x2.drop(know_x2.columns[x], axis=1, inplace=True)
print(know_y2.shape)
print(know_x2.shape)
#
know_y2 = know[y]
# RandomForestRegressor
rfr = RandomForestRegressor(random_state=666, n_estimators=2000, n_jobs=-1)
rfr.fit(know_x2, know_y2)# 填充为空的样本
unknow_x2 = unknow.copy()
unknow_x2.drop(unknow_x2.columns[x], axis=1, inplace=True)
print(unknow_x2.shape) #(2078, 53)
unknow_y2 = rfr.predict(unknow_x2)
unknow_y2 = pd.DataFrame(unknow_y2, columns=['灰度分'])
8. EM算法进行填充
缺失值处理----缺失值填充方法总结相关推荐
- 数据预处理+缺失值处理方案+Missing Value+pandas+缺失值填充方法、方案
数据预处理+缺失值处理方案+Missing Value+pandas+缺失值填充方法.方案 缺失值+sklearn from sklearn.preprocessing import Imputer ...
- python做数据分析时缺失值填补、缺失值填充方法汇总
在我们进行数据分析时,通常会遇到各种数据缺失的情况,针对这种情况我们该如何进行填补呢? 1.人工填补 该方法仅适用于小数据集,受个人因素影响. 2.平均值填补 对某一列的缺失值,采用该列的平均值填充 ...
- 机器学习数据预处理之缺失值:插值法填充+ lagrange插值+拉格朗日插值
机器学习数据预处理之缺失值:插值法填充+ lagrange插值+拉格朗日插值 garbage in, garbage out. 没有高质量的数据,就没有高质量的数据挖掘结果,数据值缺失是数据分析中经常 ...
- 机器学习数据预处理之缺失值:插值法填充+多项式插值
机器学习数据预处理之缺失值:插值法填充+多项式插值 garbage in, garbage out. 没有高质量的数据,就没有高质量的数据挖掘结果,数据值缺失是数据分析中经常遇到的问题之一.当缺失比例 ...
- (数据科学学习手札58)在R中处理有缺失值数据的高级方法
一.简介 在实际工作中,遇到数据中带有缺失值是非常常见的现象,简单粗暴的做法如直接删除包含缺失值的记录.删除缺失值比例过大的变量.用0填充缺失值等,但这些做法会很大程度上影响原始数据的分布或者浪费来之 ...
- 机器学习中处理缺失值的7种方法
机器学习中处理缺失值的7种方法 转载 | https://cloud.tencent.com/developer/article/1680427 作者 | Satyam Kumar 编译 | VK ...
- python实现-用随机森林填补缺失值、均值填充0填充的比较
sklearn中,可以使用sklearn.impute.SimpleImputer来轻松地填充均值等 import numpy as np import pandas as pd import mat ...
- 特征工程——缺失值显示和填充(集中趋势(众数、平均数、中位数)、缺失值矩阵图、条形图、集中趋势填充)
一.引言 在数据挖掘过程中我们会发现由于各种原因都会存在缺少信息,数据不完整.产生的原因多种多样,主要分为机械原因和人为原因. 二.集中趋势 (1)众数:出现次数最多的变量值(M0):不易受极端值的影 ...
- 数据清理之重复值、缺失值的基本处理方法
文章目录 数据去重 检测缺失值 缺失值的处理 删除 缺失值的填补替换 数据去重 python数据清洗中去重常用drop_duplicates函数,下面是它的参数说明 参数名称 说明 subset 接收 ...
最新文章
- 在Mac上利用pip3安装pyecharts模块
- 【编程题目】输入一个单向链表,输出该链表中倒数第 k 个结点
- http_build_query用法,挺方便的
- Leetcode 232. 用栈实现队列 解题思路及C++实现
- vue指令:v-pre原样输出,不解析插值表达式
- Java黑皮书课后题第2章:2.5(金融应用:计算小费)编写一个程序,读入一笔费用与小费利率,计算小费和总钱数
- linux2.6内核compat_ioctl函数
- Linux 多学习过程
- TIDB2.1版本升级步骤
- [NOIP2015]金币
- 特征根法--递推数列前4列
- 《深入浅出数据分析》读书笔记
- 收入时间序列——之预测总结篇
- 计算力学——有限元编程实现
- 支持向量机原理(理解SVM的三层境界)
- 全国62个城市建筑轮廓矢量数据
- 微信小程序样式大全(一)
- 最小生成树算法之Kruskal算法
- linux 小企鹅输入法,Linux(FC) 小企鹅输入法的安装
- 图片,让PPT富有冲击力(师从于珞珈老师)