采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
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 这一行,不知道哪里的问题,如何修改
貌似没有问题,fit 后会返回分类器的对象。打印的是分类器的信息(默认是地址)。
尝试使用这个 my_knn 做 predict 是否有问题?
继续加油!:)
y_predict = my_knn_clf.predict(X_test) print(y_predict) 昨晚分类以后 输出这个 <generator object KNNClassiFier.predict.<locals>.<genexpr> at 0x7f7f44cea9e0
在你的环境下运行课程代码也会这样吗?把你的完整代码贴一下。
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]
登录后可查看更多问答,登录/注册
Python3+sklearn,兼顾原理、算法底层实现和框架使用。
2.4k 19
3.4k 17
2.9k 15
1.6k 15
1.4k 14