【问题标题】:'function' object has no attribute 'train_test_split''function' 对象没有属性 'train_test_split'
【发布时间】:2019-08-13 15:38:58
【问题描述】:

我是在 Python 中实现机器学习的新手,目前正在按照 YouTube 教程尝试 KNN 分类。这是代码。

import numpy as np
#from sklearn.model_selection import train_test_split
from sklearn.model_selection import cross_validate
import pandas as pd

df=pd.read_csv('breast-cancer-wisconsin.data.txt')
df.replace('?', -99999, inplace=True)
df.drop(['id'],1,inplace=True)

X=np.array(df.drop(['class'],1))
y=np.array(df['class'])

X_train, X_test, y_train, y_test=cross_validate.train_test_split(X,y,test_size=0.2)

我收到以下错误:-

X_train, X_test, y_train, y_test=cross_validate.train_test_split(X,y,test_size=0.2)
AttributeError: 'function' object has no attribute 'train_test_split'

我尝试将 train_test_split 导入为

 from sklearn.model_selection import train_test_split

但是我得到了同样的错误。任何帮助表示赞赏。谢谢!

【问题讨论】:

    标签: python python-3.x scikit-learn cross-validation


    【解决方案1】:

    我正在观看截至 2021 年 4 月的相同教程和正确答案,如下所示:

    from sklearn.model_selection import train_test_split
    X_train, X_test, y_train, y_test = train_test_split(X,y,test_size=0.2)
    

    这是本课的完整代码:

    import numpy as np
    from sklearn import preprocessing, neighbors
    from sklearn.model_selection import train_test_split
    import pandas as pd
    
    df= pd.read_csv('breast-cancer-wisconsin.data')
    # print(df.head())
    
    df.replace('?', -99999, inplace=True)
    
    df.drop(['id'], 1, inplace=True)
    # print(df.columns)
    
    
    X= np.array(df.drop(['class'],1))
    y= np.array(df['class'])
    
    X_train, X_test, y_train, y_test = train_test_split(X,y,test_size=0.2)
    
    clf = neighbors.KNeighborsClassifier()
    clf.fit(X_train,y_train)
    
    
    accuracy= clf.score(X_test,y_test)
    print(accuracy)
    

    【讨论】:

      【解决方案2】:

      sklearn.cross_validation 已在 0.20 版中弃用

      使用 sklearn.model_selection.train_test_split

      【讨论】:

        【解决方案3】:

        train_test_split是一个单独的模块(docs),不能和cross_validate结合使用;这里的正确用法是(假设 scikit-learn v0.20):

        from sklearn.model_selection import train_test_split
        # [...]
        X_train, X_test, y_train, y_test=train_test_split(X,y,test_size=0.2)
        

        【讨论】:

          猜你喜欢
          • 2020-05-21
          • 2016-03-17
          • 2017-08-02
          • 1970-01-01
          • 1970-01-01
          • 2017-06-08
          • 2017-07-07
          • 2016-03-10
          • 1970-01-01
          相关资源
          最近更新 更多