K-means clustering and image compression

本文介绍了K-means聚类算法的基本原理和实现过程,并通过PyTorch展示了其实现。文章详细阐述了计算中心点、寻找最近中心点和随机初始化的步骤。接着,文章应用K-means进行图像压缩,解释了压缩原理,展示了压缩前后图片的效果,证明了算法的有效性。
摘要由CSDN通过智能技术生成

简单介绍

K-means clustering属于无监督学习(unsupervised learning)的范畴,由于设计思想易于理解,并且计算相对简单,因此实现起来较为简单,本文将采用PyTorch进行实现.
源代码以及题目等文件见博客

原理

K-means clustering主要分为两步:找到各类的中心点(记为 c e n t r o i d s 1 , c e n t r o i d s 2 , . . . , c e n t r o i d s k centroids_1,centroids_2,...,centroids_k centroids1,centroids2,...,centroidsk)和遍历所有的数据,根据其与各中心点的距离为其分类.其中K为最终的分类数,为超参数,需要使用者自行选择.

计算中心点

计算中心点的过程即是求平均的过程,假设一个类中存在n个点,那么中心点即是n个点的坐标平均值.这样做是有数学依据的,以特征值只有两个时为例,一般情况下,我们希望找到的中心点具有:中心点到各个点的几何距离和最小的特性,因此损失函数为:
l = ( x 11 − c 1 ) 2 + ( x 12 − c 2 ) 2 + ( x 21 − c 1 ) 2 + ( x 22 − c 2 ) 2 l=(x_{11}-c_1)^2+(x_{12}-c_2)^2 + (x_{21}-c_1)^2+(x_{22}-c_2)^2 l=(x11c1)2+(x12c2)2+(x21c

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值