K-MEANS算法

标准化:将数据的值按比例值缩放,归一化到0~1范围内,去除数据的单位限制,将其转化为无量纲的纯数值,便于不同单位或量级的指标能够进行比较和加权。

K-means算法对随机选取 K个初始点作为初始值是很敏感的,结果非常依赖初始值

使用Kmeans进行图像压缩:

# -*- coding: utf-8 -*-from skimage import io
from sklearn.cluster import KMeans
import numpy as npimage = io.imread('test2.jpg')
io.imshow(image)
io.show()#查看像素点
rows = image.shape[0]#行数h
cols = image.shape[1]#列数w
#c指的是颜色通道
image = image.reshape(image.shape[0]*image.shape[1],3)#彩色图像三维:h*w*c    reshape成2维:h*w,c
kmeans = KMeans(n_clusters = 128, n_init=10, max_iter=200)#n_clusters指的是簇的个数,别的可以不用管,也可以不指定
kmeans.fit(image)#fit数据clusters = np.asarray(kmeans.cluster_centers_,dtype=np.uint8)
labels = np.asarray(kmeans.labels_,dtype=np.uint8 )
labels = labels.reshape(rows,cols);#reshape回去,变成二维图像(灰度图)print (clusters.shape)
np.save('codebook_test.npy',clusters)
io.imsave('compressed_test.jpg',labels)#压缩后的图像,原来的三通道变为1通道,原来的取值0-265,现在只能为0-128

test2.jpg:

(128, 3)
image = io.imread('compressed_test.jpg')
io.imshow(image)
io.show()

DBSCAN聚类使用到一个k-距离的概念,k-距离是指:给定数据集P={p(i); i=0,1,…n},对于任意点P(i),计算点P(i)到集合D的子集S={p(1), p(2), …, p(i-1), p(i+1), …, p(n)}中所有点之间的距离,距离按照从小到大的顺序排序,假设排序后的距离集合为D={d(1), d(2), …, d(k-1), d(k), d(k+1), …,d(n)},则d(k)就被称为k-距离。也就是说,k-距离是点p(i)到所有点(除了p(i)点)之间距离第k近的距离。对待聚类集合中每个点p(i)都计算k-距离,最后得到所有点的k-距离集合E={e(1), e(2), …, e(n)}。

根据经验计算最少点的数量MinPts:确定MinPts的大小,实际上也是确定k-距离中k的值,如DBSCAN算法取k=4,则MinPts=4。

离群点如果想多一点,可以减小半径r和MinPts。

MinPts设置大了,簇的个数会变少。

  

转载于:https://www.cnblogs.com/tianqizhi/p/9171846.html

聚类算法_案例实战:聚类实战相关推荐

  1. kmeans聚类算法_基于K-means聚类的用户用电行为分析

    大数据时代,通过简单的仪表监测家庭.工厂等地的实时用电量后,可以通过聚类算法对用户用电特征进行聚类,这有利于: 1.将用电行为类似的用户进行聚合,以便用电公司提供更合理的套餐服务: 2.根据不同类型的 ...

  2. 现代分层、聚集聚类算法_分层聚类:聚集性和分裂性-解释

    现代分层.聚集聚类算法 Hierarchical clustering is a method of cluster analysis that is used to cluster similar ...

  3. python谱聚类算法_谱聚类(spectral clustering)原理总结

    谱聚类(spectral clustering)是广泛使用的聚类算法,比起传统的K-Means算法,谱聚类对数据分布的适应性更强,聚类效果也很优秀,同时聚类的计算量也小很多,更加难能可贵的是实现起来也 ...

  4. 06 聚类算法 - 代码案例二 - K-Means算法和Mini Batch K-Means算法比较

    03 聚类算法 - K-means聚类 04 聚类算法 - 代码案例一 - K-means聚类 05 聚类算法 - 二分K-Means.K-Means++.K-Means||.Canopy.Mini ...

  5. 聚类算法_层次聚类_密度聚类(dbscan,meanshift)_划分聚类(Kmeans)详解

    注: 两整天的成果,谬误之处勿喷 1 聚类概述 样本 没有训练的样本 没有标注的样本 1.1 相似度度量 1.1.1 距离相似度度量 距离度量 dist(oi,oj)dist(o_{i},o_{j}) ...

  6. 聚类算法小记(part2)--谱聚类

    学习笔记,仅供参考,有错必纠 转载自:谱聚类(spectral clustering)原理总结 文章目录 谱聚类(spectral clustering)原理总结 谱聚类概述 谱聚类基础之一:无向权重 ...

  7. 张伟伟-层次1 Mean_shift聚类算法和其他的聚类算法

    pycharm使用的简单教程 层次一 Mean_shift聚类算法和其他的聚类算法 作者介绍 1. 安装包的准备: 2. Mean-shift原理及实现 2.1 Mean-shift原理 2.2 主要 ...

  8. K-means聚类算法和模糊C-means聚类算法

    K-means聚类算法和模糊C-means聚类算法 1.K-means聚类算法 K-means算法是硬聚类算法,是典型的基于原型的目标函数聚类方法的代表,它是数据点到原型的某种距离作为优化的目标函数, ...

  9. 道路匹配MapMatching:GPS轨迹点常用聚类算法介绍(K-Means聚类、蚁群算法等)

    道路匹配MapMatching:GPS轨迹点常用聚类算法介绍(K-Means聚类.蚁群算法等) 前言 一.聚类算法是什么? 二.道路匹配中常见聚类算法介绍 1.K-Means算法 2.基于时间和距离的 ...

最新文章

  1. springboot集合jpa使用
  2. 自习室网上预约系统设计_港澳居民“回乡证”出新规啦!新系统网上预约更方便!...
  3. HUD 1043 Eight 八数码问题 A*算法 1667 The Rotation Game IDA*算法
  4. 代码实现【mini版】——给定a、b两个文件,各存放50亿个url,每个url各占64字节,内存限制是4G,让你找出a、b文件共同的url?
  5. 10分钟看懂浏览器的渲染过程及优化
  6. C语言代码规范(九)运算符优先级使用括号提高阅读性
  7. BDS-HA:构建高可用、低延迟的HBase服务
  8. 最近用的几个sql语句
  9. hdu 1300(dp)
  10. static与get属性的作用
  11. SQL server 2008配置与用户名登录
  12. 乌龟Git clone失败错误码128解决办法
  13. MySQL的子查询(二十)
  14. Power bi 3.10 折线和堆积柱形图
  15. ubuntu21.04 Thunderbird上配置163邮箱
  16. SPDK/NVMe存储技术分析之用户态ibv_post_send()源码分析(一)
  17. 维度建模——维度建模与数据仓库概述
  18. Linux设置软件开机自启
  19. 统一调度平台V2.0
  20. 互联网奠基人:温顿·瑟夫自曝新冠病毒检测呈阳性

热门文章

  1. C语言仅在函数中可见,如何学习C语言、入门C语言,看这篇就够了
  2. python + selenium 练习篇 - 定位元素的方法
  3. JAVA 使用Jacob调用windows的Sapi实现文本转语音文件
  4. sccm 2007 r2 step by step 之十五 补丁管理
  5. am335x 电容屏驱动添加。
  6. C#的引用类型有四种类、代表、数组、接口
  7. Hadoop文件系统介绍
  8. android surfaceflinger 代码,Android 中的framebuffer和SurFaceFlinger的关系
  9. fastjson 大写转小写 字段_对象转json字符串,属性首字母大写自动变为小写
  10. fastjson反序列化漏洞_【安全风险通告】fastjson反序列化远程代码执行漏洞安全风险通告...