请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

KNN 导入问题

in from playML.kNN import KNNClassiFier
in my_knn_clf = KNNClassiFier(k=3)
in my_knn_clf.fit(X_train,y_train)
out: <playML.kNN.KNNClassiFier at 0x7f7f44cb7d60>

自动出现了out 这一行,不知道哪里的问题,如何修改

正在回答 回答被采纳积分+3

1回答

liuyubobobo 2021-06-27 17:12:49

貌似没有问题,fit 后会返回分类器的对象。打印的是分类器的信息(默认是地址)。


尝试使用这个 my_knn 做 predict 是否有问题?


继续加油!:)

0 回复 有任何疑惑可以回复我~
  • 提问者 慕斯卡4676759 #1
    y_predict = my_knn_clf.predict(X_test) 
    print(y_predict)
    昨晚分类以后 输出这个
    <generator object KNNClassiFier.predict.<locals>.<genexpr> at 0x7f7f44cea9e0
    回复 有任何疑惑可以回复我~ 2021-06-27 17:17:48
  • liuyubobobo 回复 提问者 慕斯卡4676759 #2
    在你的环境下运行课程代码也会这样吗?把你的完整代码贴一下。
    回复 有任何疑惑可以回复我~ 2021-06-27 17:56:21
  • 提问者 慕斯卡4676759 回复 liuyubobobo #3
    class KNNClassiFier:
        def __init__(self,k):
            #构造函数
            assert k>=1,'k must be valid'
            self.k = k
            self._X_train = None
            self._y_train = None 
        
        def fit(self,X_train,y_train):
            
            self._X_train = X_train
            self._y_train = y_train
            print(self._X_train)
            print(self._y_train)
            return self
    
        def predict(self,X_predict):
           y_predict = (self._predict[x] for x in X_predict) 
    
           return np.array(y_predict)
    
        def _predict(self,x):
            dis  = [sqrt(np.sum((x_train-x)**2)) for x_train in self._X_train]
            nearest  = np.argsort(dis)
            topK_y = [self._y_train[i] for i in nearest[:self.k]]
            votes = Counter(topK_y)
            return votes.most_common(1)[0][0]
    回复 有任何疑惑可以回复我~ 2021-06-28 10:19:52
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信