【问题标题】:Deprecation warning in scikit-learnscikit-learn 中的弃用警告
【发布时间】:2019-06-04 08:32:54
【问题描述】:

大家好,我正在学习机器学习,起初代码运行良好,但第二天当我再次执行代码时,它开始警告我处理数据集中丢失的数据,我不知道是什么问题,但有谁知道解决方案的人吗

源代码:

import numpy as np

import matplotlib.pyplot as plt

import pandas as pd

dataset = pd.read_csv('Data.csv')

x = dataset.iloc[:, :-1]

y = dataset.iloc[:, 3]


from sklearn.preprocessing import Imputer

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

imputer = imputer.fit(x[:, 1:3])

x[:, 1:3] = imputer.transform(x[:, 1:3])

这里是警告:

DeprecationWarning: Class Imputer is deprecated; Imputer was deprecated in version 0.20 and will be removed in 0.22. Import impute.SimpleImputer from sklearn instead.

【问题讨论】:

  • 这是一个警告而不是错误,除了它告诉你该怎么做
  • @EdChum 请原谅兄弟,它没有采取任何解决方案的缺失值的平均值吗?
  • 编辑您的问题以包含此信息,因为这不在您的问题中
  • @EdChum 好的兄弟

标签: python scikit-learn


【解决方案1】:
from sklearn.impute import SimpleImputer

imputer = SimpleImputer(missing_values = np.nan, strategy = 'mean', verbose = 0)

imputer = imputer.fit(X[:, 1:3])
X[:, 1:3] = imputer.transform(X[:, 1:3])

【讨论】:

    【解决方案2】:

    处理丢失的数据

    from sklearn.impute import SimpleImputer
    
    imputer = SimpleImputer(missing_values= np.nan, strategy='mean')
    
    imputer = imputer.fit(X.iloc[:, 1:3])
    X = imputer.transform(X.iloc[:, 1:3])
    

    在第 3 行和第 4 行中使用 .iloc 会有所帮助!

    【讨论】:

    • 如果有人像我一样发现这很有帮助,我发现我还必须在第 4 行的变量重新分配上使用 .iloc
    【解决方案3】:

    试试这个。 在新的 python 版本中SimpleImputer 工作。

    from sklearn.impute import SimpleImputer
    
    imputer = SimpleImputer(missing_values = np.nan, strategy = 'mean',verbose=0)
    
    imputer = imputer.fit(X[:, 1:3])
    
    X[:, 1:3] = imputer.transform(X[:, 1:3])
    

    【讨论】:

      【解决方案4】:
      from sklearn.impute import SimpleImputer
      
      imputer = SimpleImputer(missing_values = np.nan, strategy = 'mean',verbose=0)
      
      imputer = imputer.fit(X[:, 1:3])
      
      X[:, 1:3] = imputer.transform(X[:, 1:3])
      

      【讨论】:

      • 如果需要,如何在 SimpleImputer 中使用axis=1(按行计算)?谢谢!
      【解决方案5】:

      SimpleImputer 的工作方式与旧的 Imputer 几乎相似,只需导入并使用它即可。 Imputer 不再使用。

      from sklearn.impute import SimpleImputer
      

      https://scikit-learn.org/stable/modules/generated/sklearn.impute.SimpleImputer.html

      【讨论】:

        【解决方案6】:

        Imputer 仍然可以使用,只需添加剩余参数(详细和复制)并在必要时填写。

        from sklearn.preprocessing import Imputer
        
        imputer = Imputer(missing_values="NaN", strategy="mean", axis=0, verbose=0, copy="True")
        
        imputer = imputer.fit(X[:, 1:3])
        
        X[:, 1:3] = imputer.transform(X[:, 1:3]))
        

        【讨论】:

          猜你喜欢
          • 2014-02-21
          • 2013-12-03
          • 2017-02-05
          • 2018-01-18
          • 2015-12-13
          • 2021-10-16
          • 2020-02-14
          • 2016-05-07
          相关资源
          最近更新 更多