sklearn.preprocessing.Imputer 用法

填补缺失值:sklearn.preprocessing.Imputer(missing_values=’NaN’, strategy=’mean’, axis=0, verbose=0, copy=True)

主要参数说明:

missing_values:缺失值,可以为整数或NaN(缺失值numpy.nan用字符串‘NaN’表示),默认为NaN

strategy:替换策略,字符串,默认用均值‘mean’替换

①若为mean时,用特征列的均值替换

②若为median时,用特征列的中位数替换

③若为most_frequent时,用特征列的众数替换

axis:指定轴数,默认axis=0代表列,axis=1代表行

copy:设置为True代表不在原数据集上修改,设置为False时,就地修改,存在如下情况时,即使设置为False时,也不会就地修改

①X不是浮点值数组

②X是稀疏且missing_values=0

③axis=0且X为CRS矩阵

④axis=1且X为CSC矩阵

statistics_属性:axis设置为0时,每个特征的填充值数组,axis=1时,报没有该属性错误

以X为数组为例:

 

 
  1. In [1]: import numpy as np

  2. ...: from sklearn.preprocessing import Imputer

  3. ...: train_X = np.array([[1, 2], [np.nan, 3], [7, 6]])

  4. ...: imp = Imputer(missing_values=np.nan , strategy='mean', axis=0)

  5. ...: imp.fit(train_X)

  6. ...:

  7. Out[1]: Imputer(axis=0, copy=True, missing_values=nan, strategy='mean', verbose=

  8. 0)

  9.  
  10. In [2]: imp.statistics_

  11. Out[2]: array([ 4. , 3.66666667])

  12.  
  13. In [3]: test_X = np.array([[np.nan, 2], [6, np.nan], [7, 6]])

  14. ...: imp.transform(test_X)

  15. ...:

  16. Out[3]:

  17. array([[ 4. , 2. ],

  18. [ 6. , 3.66666667],

  19. [ 7. , 6. ]])

  20.  
  21. In [4]: imp.fit_transform(test_X)

  22. Out[4]:

  23. array([[ 6.5, 2. ],

  24. [ 6. , 4. ],

  25. [ 7. , 6. ]])

  26.  
  27. In [5]: imp.statistics_

  28. Out[5]: array([ 6.5, 4. ])

以X为稀疏矩阵为例:

 

 

 
  1. In [6]: import scipy.sparse as sp

  2. ...: from sklearn.preprocessing import Imputer

  3. ...: X = sp.csc_matrix([[1, 2], [0, 3], [7, 6]])

  4. ...: imp = Imputer(missing_values = 0 , strategy = 'mean',axis=0)

  5. ...: imp.fit(X)

  6. ...: test_X = sp.csc_matrix([[0, 2], [6, 0], [7, 6]])

  7. ...: imp.transform(test_X)

  8. ...:

  9. Out[6]:

  10. array([[ 4. , 2. ],

  11. [ 6. , 3.66666667],

  12. [ 7. , 6. ]])

  13.  
  14. In [7]: imp.statistics_

  15. Out[7]: array([ 4. , 3.66666667])

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值