KMeans的图像压缩】的更多相关文章

# -*- coding: utf-8 -*- """ Created on Thu Aug 11 18:54:12 2016 @author: Administrator """ import numpy as np import matplotlib.pyplot as plt from sklearn.cluster import KMeans from sklearn.utils import shuffle import mahotas…
一.K-means聚类中心初始化问题. 1)随机初始化各个簇类的中心,进行迭代,直到收敛,并计算代价函数J. 如果k=2~10,可以进行上述步骤100次,并分别计算代价函数J,选取J值最小的一种聚类情况,能够得到一个相对不错的局部最优解.(因为k值较小情况下,不同的随机中心,聚类结果不同) 2)如果k值很大,则多次随机意义不大,随机一次进行聚类即可. 二.如何选择聚类数目K? 肘部法则是一个方法,但效果一般不明显.通常来讲,并没有太绝对的方法,主要靠人工选择,以及人为的洞察力. 三.利用k-me…
--------------------------K-Means算法使用-------------------------- 一:数据导入及可视化 import numpy as np import matplotlib.pyplot as plt import scipy.io as sio data = sio.loadmat("ex7data2.mat") X = data['X'] print(X.shape) plt.figure() plt.scatter(X[:,],X…
作业文件 machine-learning-ex7 1. K-means聚类 在这节练习中,我们将实现K-means聚类,并将其应用到图片压缩上.我们首先 从二维数据开始,获得一个直观的感受K-means算法是如何工作的.之后我们将K-means算法应用到图片压缩上,通过减少出现在图片上的颜色的数量. 1.1 实现K-means K-means算法是一种聚类算法,自动将相似的的数据聚成一类.具体来说,给定一个数据集,我们想要将这些数据集聚成一个个簇,K-means的一个直观理解就是从猜测初始聚类…
聚类算法 概述 无监督问题 手中无标签 聚类 将相似的东西分到一组 难点 如何 评估, 如何 调参 基本概念 要得到的簇的个数  - 需要指定 K 值 质心 - 均值, 即向量各维度取平均 距离的度量 - 常用 欧几里得距离 和 余弦线相似度 ( 先标准化 ) 优化目标 -  需求每个簇中的点, 到质心的距离尽可能的加和最小, 从而得到最优 K - MEANS 算法 工作流程 - (a)   初始图 - (b) 在指定了 K 值之后, 会在图中初始化两个点 红点, 蓝点( 随机质心 )    这…
本稿为初稿,后续可能还会修改:如果转载,请务必保留源地址,非常感谢! 博客园:http://www.cnblogs.com/data-miner/ 简书:建设中... 知乎:建设中... 当我们在谈论kmeans(1) 引言 当希望快速了解或回顾某些算法的发展时,一般而言,大家都会选择阅读综述性文章,然后有选择性的阅读部分论文.而这种高效率的做法的负面,就是比较无趣的体验,毕竟一直都行走在别人规划好的思路中,总感觉少了点趣味性. 此系列文章一方面旨在回顾一些算法的历史演变轨迹:同时,看看能否挖掘…
K-Means 概念定义: K-Means 是一种基于距离的排他的聚类划分方法. 上面的 K-Means 描述中包含了几个概念: 聚类(Clustering):K-Means 是一种聚类分析(Cluster Analysis)方法.聚类就是将数据对象分组成为多个类或者簇 (Cluster),使得在同一个簇中的对象之间具有较高的相似度,而不同簇中的对象差别较大. 划分(Partitioning):聚类可以基于划分,也可以基于分层.划分即将对象划分成不同的簇,而分层是将对象分等级. 排他(Exclu…
在K-Means聚类算法原理中,我们对K-Means的原理做了总结,本文我们就来讨论用scikit-learn来学习K-Means聚类.重点讲述如何选择合适的k值. 1. K-Means类概述 在scikit-learn中,包括两个K-Means的算法,一个是传统的K-Means算法,对应的类是KMeans.另一个是基于采样的Mini Batch K-Means算法,对应的类是MiniBatchKMeans.一般来说,使用K-Means的算法调参是比较简单的. 用KMeans类的话,一般要注意的…
K-Means算法是无监督的聚类算法,它实现起来比较简单,聚类效果也不错,因此应用很广泛.K-Means算法有大量的变体,本文就从最传统的K-Means算法讲起,在其基础上讲述K-Means的优化变体方法.包括初始化优化K-Means++, 距离计算优化elkan K-Means算法和大数据情况下的优化Mini Batch K-Means算法. 1. K-Means原理初探 K-Means算法的思想很简单,对于给定的样本集,按照样本之间的距离大小,将样本集划分为K个簇.让簇内的点尽量紧密的连在一…
用c语言写了kmeans算法的串行程序,再用mpi来写并行版的,貌似参照着串行版来写并行版,效果不是很赏心悦目~ 并行化思路: 使用主从模式.由一个节点充当主节点负责数据的划分与分配,其他节点完成本地数据的计算,并将结果返回给主节点.大致过程如下: 1.进程0为主节点,先从文件中读取数据集,然后将数据集划分并传给其他进程: 2.进程0选择每个聚类的中心点,并发送给其他进程: 3.其他进程计算数据块中每个点到中心点的距离,然后标出每个点所属的聚类,并计算每个聚类所有点到其中心点的距离之和,最后将这…