scipy.cluster.vq.kmeans(obs, k_or_guess, iter=20, thresh=1e-05, check_finite=True)
对形成k个群集的一组观察向量执行k均值。

k均值算法将观测值的分类调整为聚类,并更新聚类质心,直到质心的位置在连续迭代中保持稳定为止。 在算法的这种实现中,质心的稳定性是通过将观测值及其对应质心之间的平均欧几里德距离的变化的绝对值与阈值进行比较来确定的。 这样便产生了一个将质心映射到代码的codebook,反之亦然。

参数

  1. obs
    M×N阵列的每一行都是观察向量。 列是每次观察期间看到的特征。 必须先使用whiten将特征增白。
  2. k_or_guess
    生成的质心数。 将代码分配给每个质心,这也是质心在生成的code_book矩阵中的行索引。
    通过从观察矩阵中随机选择观察值来选择初始k重心。 可替代地,将k乘以N数组指定初始的k个质心。
  3. iter
    运行k均值的次数,返回具有最低失真的代码本。 如果为k_or_guess参数的数组指定了初始质心,则将忽略此参数。 此参数不代表k均值算法的迭代次数。
  4. thresh
    如果自上次k均值迭代以来失真的变化小于或等于阈值,则终止k均值算法。
  5. check_finite
    是否检查输入矩阵仅包含有限数。 禁用可能会提高性能,但是如果输入中确实包含无穷大或NaN,则可能会导致问题(崩溃,终止)。 默认值:True

返回值

  1. codebook
    由k个质心组成的k x N数组。 第i个质心代码簿[i]用代码i表示。 生成的质心和代码表示所看到的最低失真,而未必是全局最小失真。
  2. distortion
    通过的观测值与生成的质心之间的平均(非平方)欧氏距离。 请注意,在k均值算法的上下文中,失真的标准定义有所不同,即平方距离的总和。
import numpy as np
from scipy.cluster.vq import vq, kmeans, whiten
import matplotlib.pyplot as pltfeatures = np.array([[1.9,2.0],[1.7,2.5],[1.6,3.1],[0.1,0.1],[0.8,0.3],[0.4,0.3],[0.22,0.1],[0.4, 0.3],[0.4,0.5],[1.8,1.9]])wf = whiten(features)
print("whiten features: \n", wf)book = np.array((wf[0], wf[1]))codebook, distortion = kmeans(wf, book)
# 可以写kmeans(wf,2), 2表示两个质心,同时启用iter参数
print("codebook:", codebook)
print("distortion: ", distortion)plt.scatter(wf[:,0], wf[:,1])
plt.scatter(codebook[:, 0], codebook[:, 1], c='r')
plt.show()

scipy.cluster.vq.kmeans的使用相关推荐

  1. 对scipy.cluster.vq中whiten()函数总结

    目录 函数原型 函数功能 参数介绍 返回值 遇到的坑 函数原型 whiten(obs, check_finite=True) 函数功能 我遇到这个函数是在k-means聚类之前,主要作用是去除数据中的 ...

  2. scipy.cluster.vq

    参考资料: https://docs.scipy.org/doc/scipy/reference/cluster.vq.html vq是vector quantization的缩写. code_boo ...

  3. scipy.cluster模块实现kmeans聚类

    简单验证该模块功能 whiten(数组) 函数:先将数组各列求标准差,然后将数组每个元素分别除以该标准差 例如: [[1,1], [1,0], [5,5] [5,4]] 二维数组,第一列1,1,5,5 ...

  4. python层次聚类_python中做层次聚类,使用scipy.cluster.hierarchy.fclusterdata方法 | 学步园...

    python机器学习包里面的cluster提供了很多聚类 但是没有看明白ward_tree的返回值代表了什么含义,遂决定寻找别的实现方式. 经过查找,发现scipy.cluster.hierarchy ...

  5. 【python-scipy】scipy.cluster.hierarchy 学习 总结 (fcluster, linkage等)

    博主最近在依据scipy的手册学习,按每个模块进行记录,对scipy其他部分有疑惑的可以看一下博主的相关合集.p.s. 更新中 文章目录 层级聚类原理 度量 scipy使用方法 linkage中如何调 ...

  6. 使用k-means聚类anchors

    在之前讲yolo理论基础知识时有提到过,从yolov2开始使用的anchors都是通过聚类得到的.如果想了解更多yolo相关的知识可以看看我在bilibili上录得视频:https://www.bil ...

  7. YOLOV5 修改K-means聚类方法并生成anchors

    将原来聚类方法中的欧氏距离修改为基于 1-IOU(bboxes, anchors)的方法,这里主要和原博主读取文件有些差别,将其中的读取年份删除,更方便读取自己的数据集,并整合至一个文件中,直接可运行 ...

  8. python随机分组的思路_python – 对对象进行分组以实现所有组的类似平均属性

    您可以尝试使用k-means clustering: import scipy.cluster.vq as vq import collections import numpy as np def a ...

  9. python数据分析-聚类分析

    大家好,聚类分析是一类将数据所对应的研究对象进行分类的统计方法.这一类方法的共同特点是,事先不知道类别的个数与结构:进行分析的数据是表明对象之间的相似性或相异性的数据,将这些数据看成对对象" ...

最新文章

  1. 第二讲 从图像到点云 笔记
  2. java定义final_Java中何时将方法声明为final的
  3. 《中国文化要略》第八章 古代教育 第九章 科举制度
  4. c ++查找字符串_C ++朋友功能| 查找输出程序| 套装2
  5. 村庄规划中核心技术(村土地利用规划方面)
  6. 实现链表的增删改查java代码_用Java语言实现链表的增删改查
  7. 【鱼眼镜头4】[鱼眼畸变模型]:四阶多项式模型
  8. python学习笔记2---内置函数
  9. 台服DNF更换Mysql5.6(rpm包安装、二进制安装)
  10. 轻松盘,资产盘点不再难 RFID办公资产盘点管理
  11. 2021漏洞扫描服务TOP20排行榜
  12. 《大话设计模式》学习笔记:
  13. 获取高德地图省市区县列表
  14. cl_long.py
  15. 数据库(MYSQL)之元数据
  16. Linux服务器带宽占用高导致无法登录的处理经验分享
  17. 原理探究:Spring @Value注解详解
  18. 五万字长文总结 C/C++ 知识
  19. 【13位CEO访谈实录】疫情对科技企业带来的影响及应对
  20. 悠哉网李代山与实力派孙红雷有点像

热门文章

  1. NeurIPS TAPE | 用于评估蛋白质表示学习性能的多任务平台
  2. Ubuntu14.04 python 2.7环境下安装Scrapy
  3. 老程序员的忠告:不要做浮躁的软件工程师
  4. mysql必知必会日期函数,MySQL:MySQL必知必会总结
  5. python tk text scrollbar_tk.Scrollbar控件的使用
  6. matlab svm工具箱_机器学习笔记--SVM(MATLAB 实现代码)
  7. JIPB:白洋组综述根系微生物组群落构建及其对植物适应性的贡献
  8. 北京大学北京天然气水合物国际研究中心招聘生信博后
  9. Nature综述:如何获得理想的微生物组
  10. 病毒入侵的故事—BBC细胞的暗战The Hidden Life of the Cell