机器学习中的数据缺失

在这里插入图片描述

删除

删除含缺失数据的特征
dropna() 丢弃缺失值

dropna()

#一行全为NaM的才丢弃,默认how='any'
dropna(how='all')

#一行至少有n个非空值就保留
dropna(thresh=n)

#一行有NaN就丢弃,默认为axi=0
dropna(axis=1)

填补

替代

均值插补
fmedian = ['缺失列名字1'].median() #中位数
fmean = ['缺失列名字2'].mean() #平均值

fillna({'缺失列名字1':fmedian
        '缺失列名字2':fmean})
热卡填补

对于一个包含空值的对象,热卡填充法在完整数据中找到一个与它最相似的对象,然后用这个相似对象的值来进行填充。不同的问题可能会选用不同的标准来对相似进行判定。该方法概念上很简单,且利用了数据间的关系来进行空值估计。这个方法的缺点在于难以定义相似标准,主观因素较多。(网上看到的,具体怎么操作也没例子。。。)

K均值

就是用knn预测一下缺失的数据

knn = KNeighborsClassifier()
knn.fit(x_train, y_train) #完整的特征项,完整的特征值
y_predict = knn.predict(x_test) #缺失的特征项

拟合

回归

建立回归方程。对于包含空值的对象,将已知属性值代入方程来估计未知属性值,以此估计值来进行填充。当变量不是线性相关时会导致有偏差的估计。

极大似然估计

用概率密度函数参数去拟合采样的结果

多重插补

https://blog.csdn.net/sinat_26917383/article/details/51265213
R实现的多重插补

#多重插补法处理缺失,结果转存
library(lattice) #调入函数包
library(MASS)
library(nnet)
library(mice) #前三个包是mice的基础
imp=mice(inputfile,m=4) #4重插补,即生成4个无缺失数据集
fit=with(imp,lm(sales~date,data=inputfile))#选择插补模型
pooled=pool(fit)
summary(pooled)
result4=complete(imp,action=3)#选择第三个插补数据集作为结果
随机森林

包含多个决策树的分类器, 并且其输出的类别是由个别树输出的类别的众数而定

class sklearn.ensemble.RandomForestClassifier(n_estimators=10, criterion='gini', max_depth=None, min_samples_split=2, min_samples_leaf=1, min_weight_fraction_leaf=0.0, max_features=’auto’, max_leaf_nodes=None, min_impurity_decrease=0.0, min_impurity_split=None, bootstrap=True, oob_score=False, n_jobs=1, random_state=None, verbose=0, warm_start=False, class_weight=None)

图片来源:https://www.zhihu.com/question/34470160
关于调参已经很详细了,不必再赘述
在这里插入图片描述

衍生

将缺失与否设置为一个新的特征(假设为Y2),当原特征Y1无缺失时Y2=0,反之Y2=1

忽略

略。。。

持续完善

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值