前面用kmeanscluster做过聚簇分析,聚簇分析是一种非监督的学习,根据样本之间的距离把样本分成k个类,返回k个类的中心向量。在opencv中kmeanscluster在core.hpp中定义,实现在matrix.cpp中,是比较早提供的一个函数。距离度量函数是欧式距离de平方。opencv不提供修改距离公式的接口。
knn法也是根据欧式距离求出最近的k个样本。opencv中knn有个train方法。貌似就是把样本矩阵的头部转换成一个向量树,主要的工作还是在find-nearest函数中。
不是很明白kmeansculster和knn有啥区别。
em的原理则比较复杂一些。
本文探讨了K-means聚类与KNN算法的区别,K-means是一种非监督学习方法,通过计算样本间的欧式距离将数据划分为K个簇;而KNN则依据相同距离度量找出最邻近的K个样本进行分类或回归预测。
1577

被折叠的 条评论
为什么被折叠?



