数据预处理与特征工程(二)----缺失值的处理

数据预处理与特征工程(二)----缺失值的处理

​ 相关数据集均放置在本人的csdn文件中,如有需要,可免费下载。内容来自老师上课的课件。侵删…

缺失值的处理

背景

​ 机器学习和数据挖掘中所使用的数据,永远不可能是完美的。很多特征,对于分析和建模来说意义非凡,但对于实际收集数据的人却不是如此,因此数据挖掘之中,常常会有重要的字段缺失值很多,但又不能舍弃字段的情况。因此,数据预处理中非常重要的一项就是处理缺失值。在这里,我们使用从泰坦尼克号提取出来的数据,这个数据有三个特征,一个数值型,两个字符型,标签也是字符型。在python的机器学习中,我们常用的包是sklearn。

常用参数

from sklearn.impute import SimpleImputer

其常用参数有:

  • missing_values:告诉SimpleImputer,数据中的缺失值长什么样,默认空值np.nan
  • strategy: 填补缺失值的策略,默认均值。
    1. 输入“mean”使用均值填补(仅对数值型特征可用)
    2. 输入“median"用中值填补(仅对数值型特征可用)
    3. 输入"most_frequent”用众数填补(对数值型和字符型特征都可用)
    4. 输入“constant"表示请参考参数“fill_value"中的值(对数值型和字符型特征都可用)
  • fill_value:当参数startegy为”constant"的时候可用,可输入字符串或数字表示要填充的值,常用0
  • copy: 默认为True,将创建特征矩阵的副本,反之则会将缺失值填补到原本的特征矩阵中去。

实例代码

  1. 读取泰坦尼克缩减版数据并探索

    import pandas as pd
    data = pd.read_csv(r".\Narrativedata.csv" ,index_col=0)
    #index_col=0将第0列作为索引,不写则认为第0列为特征 
    data.head()
    data.info()
    
  2. 对年龄数据进行各种方式的填补

    #填补年龄
    Age = data.loc[:,"Age"].values.reshape(-1,1)        #sklearn当中特征矩阵必须是二维
    Age[:20]
    from sklearn.impute import SimpleImputer
    imp_mean = SimpleImputer()                      #实例化,默认均值填补
    imp_median = SimpleImputer(strategy="median")  #用中位数填补
    imp_0 = SimpleImputer(strategy="constant",fill_value=0) 	#用0填补
    imp_mean = imp_mean.fit_transform(Age)              
    imp_median = imp_median.fit_transform(Age)
    imp_0 = imp_0.fit_transform(Age)
    imp_mean[:20]
    imp_median[:20]
    imp_0[:20]
    data.loc[:,"Age"] = imp_median 							#最终选择中位数
    data.info()
    
  3. 使用众数填补Embarked

    Embarked = data.loc[:,"Embarked"].values.reshape(-1,1)
    imp_mode = SimpleImputer(strategy = "most_frequent")
    data.loc[:,"Embarked"] = imp_mode.fit_transform(Embarked)
    data.info()
    
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值