压缩包里的lda+knn.zip
是我最近翻出来的一个挺实用的资源,适合想在 MATLAB 里搞搞降维加分类的朋友。LDA负责把维度高的数据压缩得更清晰,交给KNN去判断分类。整体流程顺,代码也不复杂,适合学习也适合改成自己的小项目用。
lda_trans.m
主要搞定线性变换,把数据从原始空间丢进一个更有辨识度的空间里。前面会先下数据,就是算均值、协方差什么的,用个公式算出投影向量,投影完就能丢给 KNN 用了。
knn_predict.m
做的就是 K 最近邻分类,原理简单,谁离得近就跟谁一类。一般我用它来做对比实验挺方便的,直接能跑结果。还有arrDataMat.m
估计是做数据预的,simitzj.m
的是距离计算,感觉像是搞了个小优化。
你要是顺着看代码,还能翻到pca_train.m
这些 PCA 相关的,PCA 就不用多说了,配合 LDA 一起用效果会更好,尤其是在图像类的特征提取里。
,这个压缩包就是把LDA和KNN的经典套路走了一遍,文件也挺清楚的,适合你直接照着跑一遍,了解下流程。如果你想搞图像识别、特征提取之类的,这套代码挺适合入门的,跑通之后再加自己的模块也不难。
如果你对特征提取感兴趣,也可以看看人脸图像特征提取与分类算法比较,或者想搞点视觉相关的,LBP 特征提取和SIFT 图像匹配也都挺不错的。
建议你运行前先看下每个.m
文件在干嘛,有些变量名需要对照下。运行环境推荐用 MATLAB R2018b 以上,兼容性会好点。