关于K聚类,我曾经在一篇博客中提到过,这里简单的做个回顾。
KMeans的步骤以及其他的聚类算法
K-均值是因为它可以发现k个不同的簇,且每个簇的中心采用簇中所含值的均值计算
其他聚类算法:二分K-均值
讲解一下步骤,其实就是说明一下伪代码
OpenCV中使用cv2.kmeans()对数据进行分类
1. data:应该是np.float32类型的数据,每个特征应该放在一列。
2. K:聚类的最终数目
3. criteria:终止迭代的条件。当条件满足,算法的迭代终止。它应该是一个含有3个成员的元组,它们是(type,max_iter, epsilon):
type终止的类型:有如下三种选择:
- cv2.TERM_CRITERIA_EPS 只有精确度epslion满足时停止迭代
- cv2.TERM_CRITERIA_MAX_ITER 当迭代次数超过阈值时停止迭代
– cv2.TERM_CRITERIA_EPS + cv2.TERM_CRITERIA_MAX_ITER 上面的任何一个条件满足时停止迭代
max_iter:最大迭代次数
epsilon:精确度阈值
4. attempts:使用不同的起始标记来执行算法的次数。算法会返回紧密度最好的标记。紧密度也会作为输出被返回
5. flags:用来设置如何选择起始中心。通常我们有两个选择:cv2.KMEANS_PP_CENTERS和 cv2.KMEANS_RANDOM_CENTERS。
输出参数:
1. compactness:紧密度返回每个点到相应中心的距离的平方和
2. labels:标志数组,每个成员被标记为0,1等
3. centers:有聚类的中心组成的数组
我们使用KMeans函数。先设置好终止条件。10次迭代或者精确度epsilon=1.0
分别取K=2、4、8
版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/matlabbc/57611.html