NN和KNN
1、最近邻分类器(NN)
假如现在用CIFAR-10数据集做训练集,判断一张未知的图片属于CIFAR-10中的哪一类,应该怎么做?
现在有每个像素点的值,那我们就根据输入图片的这些值,计算和训练集中的图片距离,找最近的图片的类别。
图像距离评定准则,其中最简单的是曼哈顿距离:计算所有像素点之间的差值,然后做加法。直观的理解如下:
公式是,I1和I2可以看做两张图片,p可以看做矩阵的坐标
问题1:此处NN调用寒小阳的例子报错,哪里出的问题?
2、KNN
就是在NN的基础上,找到最近的K个邻居,这几个邻居中哪一个类的数目最多,测试样本就属于哪一个类。
影响最后结果的因素:①距离计算方法的选择;②近邻个数K的取值
1)引出来训练集(train set),验证集(validation set),测试集(test set)这三个名词
训练集:学习样本数据集,通过匹配一些参数来建立一个分类器。
验证集:对学习出来的模型,调整分类器的参数,如在神经网络中选择隐藏单元数。用来避免过拟合。问题2:具体的作用还是没有搞清楚?
测试集:测试训练好的模型的分辨能力。
划分的用意在于了防止过度拟合,也就是不要太精确。如果所有的数据都参与训练,出来的结果对这些数据肯定最合适,但对于其它数据就不一定了。
一般把数据集的75%作为训练集,把数据集的25%作为测试集。其中训练集利用K折交叉验证法,将样本打乱,然后均匀分成K份,轮流选择其中K-1份训练,剩余的一份做验证,计算预测误差平方和,最后把K次的预测误差平方和再做平均作为选择最优模型结构的依据。
问题3:K的取值难道不是一个值,还得是一个列表?