from sklearn.preprocessing import Imputer/from sklearn.cross_validation import train_test_split报错

机器学习第一天有两个找不到原有包的问题。

问题1:发现调用sklearn.preprocessing 库中的 Imputer用作处理丢失数据报错。

from sklearn.preprocessing import Imputer/from sklearn.cross_validation import train_test_split报错_第1张图片

原因是Imputer的在数据库中的位置发生了改变,改用最新的导入方法即可。

from sklearn.impute import SimpleImputer

Simpleimputer参数详解

imputer = SimpleImputer(missing_values = np.nan, strategy = "mean",
                        fill_value=None, verbose=0, copy=True,
                        add_indicator=False)

参数含义

  • missing_values:int, float, str, (默认)np.nan或是None, 即缺失值是什么。
  • strategy:空值填充的四种选择(默认)mean、median、most_frequent、constant;mean表示该列的缺失值由该列的均值填充;median为中位数,most_frequent为众数。constant表示将空值填充为自定义的值,但这个自定义的值要通过fill_value来定义。
  • fill_value:str或数值,默认为Zone。当strategy == "constant"时,fill_value被用来替换所有出现的缺失值(missing_values)。fill_value为Zone,当处理的是数值数据时,缺失值(missing_values)会替换为0,对于字符串或对象数据类型则替换为"missing_value" 这一字符串。
  • verbose:int,(默认)0,控制imputer的冗长。
  • copy:boolean,(默认)True,表示对数据的副本进行处理,False对数据原地修改。
  • add_indicator:boolean,(默认)False,True则会在数据后面加入n列由0和1构成的同样大小的数据,0表示所在位置非缺失值,1表示所在位置为缺失值。
     

Imputer参数详解

imputer = Imputer(missing_values = "NaN", strategy = "mean", axis = 0)

axis: 默认为 axis=0

        axis = 0, 按列处理

        aixs =1 , 按行处理

 问题2:交叉验证cross_validation无法调用

from sklearn.preprocessing import Imputer/from sklearn.cross_validation import train_test_split报错_第2张图片

 原因同样是包的位置改变,改为调用一下语句。

from sklearn.model_selection import train_test_split

参考文献: (1条消息) 缺失值处理:SimpleImputer(简单易懂 + 超详细)_Dream丶Killer的博客-CSDN博客_simpleimputer

你可能感兴趣的:(python)