机器学习---编程练习(七):K 均值聚类(K-means)与主成成份分析(PCA)

机器学习—编程练习(七):K 均值聚类(K-means)与主成成份分析(PCA)

文件列表

ex7.m - Octave/MATLAB script for the first exercise on K-means
ex7 pca.m - Octave/MATLAB script for the second exercise on PCA
ex7data1.mat - Example Dataset for PCA
ex7data2.mat - Example Dataset for K-means
ex7faces.mat - Faces Dataset
bird small.png - Example Image
displayData.m - Displays 2D data stored in a matrix
drawLine.m - Draws a line over an exsiting figure
plotDataPoints.m - Initialization for K-means centroids
plotProgresskMeans.m - Plots each step of K-means as it proceeds
runkMeans.m - Runs the K-means algorithm
submit.m - Submission script that sends your solutions to our servers
[*] pca.m - Perform principal component analysis
[*] projectData.m - Projects a data set into a lower dimensional space
[*] recoverData.m - Recovers the original data from the projection
[*] findClosestCentroids.m - Find closest centroids (used in K-means)
[*] computeCentroids.m - Compute centroid means (used in K-means)
[*] kMeansInitCentroids.m - Initialization for K-means centroids
* 表示需要完成的内容


1 K 均值聚类

在本次练习中,你将会实现 K -均值聚类算法并且使用它进行图像压缩。首先从一个 2D 的数据开始,它将帮助你对 K 均值算法有一个直观的印象。之后,你将会使用 K 均值算法进行图像压缩,通过将图像中颜色的数量减少到图像最常用的颜色。


1.1 实现 K 均值算法

K 均值算法是一种自动将相似数据聚集起来的方法。具体来说,你有一个训练集,并且想要想要将他们分成一些紧密结合的聚类。

直观上讲,K 聚类算法是一个循环程序,这个程序从推断初始的聚类中心开始,之后推断聚类中心,然后通过标记样本最接近的聚类中心对猜测不断精炼,之后根据标定重新计算聚类中心。

K 聚类算法如下所示

% Initialize centroids
centroids = kMeansInitCentroids(X, K);
for iter = 1:iterations
	% Cluster assignment step: Assign each data point to the
	% closest centroid. idx(i) corresponds to cˆ(i), the index
	% of the centroid assigned to example i
	idx = findClosestCentroids(X, centroids);
	% Move centroid step: Compute means based on centroid
	% assignments
	centroids = computeMeans(X, idx, K);
end

内循环算法重复的执行两步:

  1. 将每个训练样本 x(i) 分配给最接近的聚类中心
  2. 使用分配点重复计算每一个聚类中心值的均值

对于聚类中心,K -均值算法总是收敛到最后一组均值。注意收敛解可能不总是最理想的,这取决于初始设置的聚类中心。因

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值