Python 对象没有属性错误(谷歌机器学习教程Ep.5)

Python 对象没有属性错误(谷歌机器学习教程Ep.5),python,Python,嗨,我的代码有点问题,我对python有点陌生,但我确实对类和对象有一些了解 import random class ScrappyKNN(): def fit(self,X_train,Y_train): self.X_train = X_train self.Y_train = Y_train def predict(self, X_test,a): predictions = [] for row in X_t

嗨,我的代码有点问题,我对python有点陌生,但我确实对类和对象有一些了解

import random
class ScrappyKNN():
    def fit(self,X_train,Y_train):
        self.X_train = X_train
        self.Y_train = Y_train
    def predict(self, X_test,a):
        predictions = []
        for row in X_test:
            label = random.choice(self.Y_train)
            predictions.append(label)
        return predictions

import numpy as np

from sklearn import datasets

iris = datasets.load_iris()

X = iris.data
Y = iris.target

from sklearn.model_selection import train_test_split
X_train,X_test,Y_train,Y_test = train_test_split(X,Y,test_size = .5)

#from sklearn.neighbours import KNeighboursClassifier
my_classifier = ScrappyKNN()

my_classifier = my_classifier.fit(X_train,Y_train)

predictions = my_classifier.predict(X_test)

from sklearn.metrics import accuracy_score
print(accuracy_score(Y_test, predictions))
但当我运行它时,我得到了一个错误:

Traceback (most recent call last):
  File "pipelineKNeighbours.py", line 30, in <module>
    predictions = my_classifier.predict(X_test)
AttributeError: 'NoneType' object has no attribute 'predict'
回溯(最近一次呼叫最后一次):
文件“pipelineKNeighbours.py”,第30行,在
预测=我的分类器。预测(X_测试)
AttributeError:“非类型”对象没有属性“预测”
我做错了什么?

线路

my_classifier = my_classifier.fit(X_train,Y_train)
将my_classifier重新定义为fit()的返回值,该值为None,因此my_classifier不再指向ScrapsYKNN类的实例,而是指向非类型对象-因此,出现了错误