缺失值填充2——python热卡填充(Hotdeckimputation)、冷卡填充(Co。。。

缺失填充2——python热卡填充(Hotdeckimputation)、冷卡填充(Co。。
基本概念
热卡填充:在完整数据中到⼀个与它最相似的对象,⽤最相似的值填充当前值
冷卡填充:通过其他途径到能填充缺失部分的值
热卡填充其实就是使⽤KNN去预测的⼀种特殊形式,KNN是参考K个,⽽热卡填充是参考最近的1个,所以热卡填充可以⽤KNN做,关键代码是:
from sklearn.impute import KNNImputer
美帝国的崩溃电子书hot_deck_imputer = KNNImputer(n_neighbors=2, weights="uniform")# 虽然看着是⽤KNN,但是参数固定:n_neighbors=2
dataframe = hot_deck_imputer.fit_transform(dataframe)
⽰例代码
蛇娘import pandas as pd
import numpy as np
def hot_deck_imputation(dataframe: pd.DataFrame):
from sklearn.impute import KNNImputer
hot_deck_imputer = KNNImputer(n_neighbors=2, weights="uniform")# 虽然看着是⽤KNN,但是参数固定:n_neighbors=2
青少年科技报new_df = hot_deck_imputer.fit_transform(dataframe)
return new_df
def get_dataset():
"""得到数据
:return data_x:有缺失值的数据
:return true_value:缺失数据的原始真实值
:return data_y:原问题中待预测的label
"""
import copy
from sklearn.datasets import make_classification
data_x, data_y = make_classification(n_samples=100, n_classes=4, n_features=6, n_informative=4,
西华大学图书馆random_state=0)# 6个特征
data_x = pd.DataFrame(data_x)
lumns =['x1','x2','x3','x4','x5','miss_line']
true_data = copy.deepcopy(data_x)
华瑞营养学院# 在miss_line这⼀列删除20%的数据
drop_index = data_x.sample(frac=0.2).index
l2odata_x.loc[drop_index,"miss_line"]= np.nan
true_value = true_data.loc[drop_index,'miss_line']# 空值的真实值
return data_x, true_value, data_y
if __name__ =='__main__':
value_x, true_value_x, value_y = get_dataset()
fill_df = hot_deck_imputation(value_x)

本文发布于:2024-09-21 15:51:40,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/326222.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:填充   数据   缺失   热卡
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议