数据挖掘面试:02填补缺失值与特征工程

本文介绍了数据挖掘中处理缺失值的方法,包括直接填补、使用众数、中位数、均值以及利用随机森林进行预测填补。同时,文章详细讲解了编码与哑变量的转换,如LabelEncoder、OrdinalEncoder和OneHotEncoder的使用。此外,讨论了如何处理连续型特征,通过Binarizer进行二值化和KBinsDiscretizer进行分箱编码。
摘要由CSDN通过智能技术生成

一、缺失值填补
填补缺失值有多种方法,如直接用numpy进行填补,如用该特征的众数,中位数,均值进行填补,sklearn中也有针对缺失值的填补方式。

from sklearn.impute import SimpleImputer  #填补缺失值
imp_mean=SimpleImputer()#默认为均值填补
imp_median=SimpleImputer(strategy='median')#中位数
imp_0=SimpleImputer(strategy='constant',fill_value=0)#指定值
imp_most=SimpleImputer(strategy='most_frequent') #众数
imp_***.fit_transform(data) #使用fit接口进行训练得到填补后的值
注意sklearn中特征矩阵必须是二维,可用reshape(-1,1)改变特征矩阵维度
missing_values参数可指定缺失值

最后也可以用随机森林进行填补,该方法将从缺失值较少的列开始填补,将其他特征数据缺失值用0来填补,将该列作为标签,将其余的所有特征包括原标签作为特征进行训练,并用预测值进行填补,直到填补结束

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.datasets import load_boston
from sklearn.impute import SimpleImputer
from sklearn.ensemble import RandomForestRegressor
from sklearn.model_selection import cross_val_score
dataset = load_boston()
dataset.data.shape
X_full, y_full = dataset.data, dataset.target
n_samples = X_full.shape[0]
n_features = X_full.shape[1]
rng = np.random.RandomState(0)#生成随机数种子
missing_rate = 0.5#设置缺失比例
n_missing_samples = int(np.floor(n_samples * n_features * missing_rate))#计算出缺失值的个数
missing_features 
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值