CS231n assignment1
KNN分类器
第一个作业的第一个问题,写KNN分类器,KNN的原理本身描述起来还是比较简单
这里再啰嗦两句,对KNN分类器的一些描述
KNN算法,只找最相近的那1个图片的标签,我们找最相似的k个图片的标签,然后让他们针对测试图片进行投票,最后把票数最高的标签作为对测试图片的预测。所以当k=1的时候,k-Nearest
Neighbor分类器就是Nearest
Neighbor分类器。从直观感受上就可以看到,更高的k值可以让分类的效果更平滑,使得分类器对于异常值更有抵抗力。
在完成knn.ipynb作业
一、在KNN中 对数据集可视化部分 用到的一些函数:
-
idxs = np.flatnonzero(y_train == y)
这部分使用到了numpy.flatnonzero(),这个该函数输入一个矩阵,返回扁平化后矩阵中非零元素的位置(index)在作业中,是用来返回特定元素的位置,如果y_train 图的标签和当前y指向的classes是同一个类别的,则位置赋给idxs
-
plt.subplot(samples_per_class, num_classes, plt_idx)
这部分使用了matplotlib.pyplot.subplot(XXX):前两个数表示子图组成的矩阵的行列数