第二讲课时5-k近邻算法

k近邻算法还有一些优化,如kd数,参看统计学习方法。

http://vision.stanford.edu/teaching/cs231n-demos/knn/    可调试KNN算法,查看超参数作用

k近邻中的距离度量方式有L1,L2距离。如下图,L1的坐标轴转动会有影响,L2的坐标轴转动不影响距离,因此:

如果数据本身各个特征有重要意义,那么使用使用L1可能会更好。但是最好的做法是L1,L2都试一下,看实际效果。

使用L1的决策边界会与坐标轴方向一致,L2则比较自然,如下图(2维数据)


k的选取,不能按照训练集的表现来选取,因为k=1肯定在训练集上最好,但是过拟合了。

数据分为三个部分,训练集,验证集,测试集。验证集用于选取参数和算法,测试集用来得出最终算法的效果。

交叉验证的做法在深度学习中并不经常使用,计算量太大了。

下图为5折交叉验证选取k近邻的k值。每个k的5次交叉验证正确率可以看出算法的方差(稳定性)



由于维度灾难问题,想要训练数据集均匀分布在特征空间里,我们需要的训练数据是随着特征数成指数倍增长的,数据太大了,我们没有这么多数据。数据数目=np.pow(base,特征数)

L2距离并不适合度量图片的差异。L2不合适

猜你喜欢

转载自blog.csdn.net/qq_39638957/article/details/80100461