1
assert(x) 等同于: if(!x) 则程序直接中断。
试一试给 k 赋值为不再 1 <=k <= X_train.shape[0] 之间的值,运行层序,看看会发生什么?
2
knn 用最近的 k 个样本作为依据,所以 k 最大为 X_train.shape[0],及所有样本数。
3
fit 实际上是完成了一个内部计算,所以并不需要使用返回值。但是你写成 knn_clf = KNN_classifier.fit(X_train, y_train) 也是没问题的。因为 sklearn 内部实际也将自己返回去了。这样设计是为了方便管道的设计需要。现在还没有学习管道,不用管这一点。
4
怎么 predict 的就是 4-1 小节介绍的方式。具体的得到的就是预测的标签。把 predict 的结果打印出来看一看?
继续加油!:)