Exercise 7:K均值聚类和主成分分析(Coursera-吴恩达Machine Learning编程作业)

本文详细介绍了K-means聚类算法的实现,包括找到最近的质心、计算质心均值,并在示例数据集上应用。此外,探讨了K-means在图像压缩中的应用,以及随机初始化中心点的方法。接着,深入讲解了主成分分析(PCA),包括计算主成分、降维数据以及在面部图像数据集上的应用,展示如何通过PCA进行有效的数据可视化和维度降低。
摘要由CSDN通过智能技术生成

1 K-means Clustering

1.1 Implementing K-means

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.1.1 Finding closest centroids

任务:完成findClosestCentroids.m,实现将各点都归类到最近的中心点。

输入:

  1. 数据点矩阵X,元素为所有点的位置
  2. 中心点矩阵centroids,元素为K个中心点的位置

输出:

  1. 一维数组idx,元素为每个点对应的中心点索引号(1,2,…,K)

遍历所有点,计算点X(i,:)与所有中心点centroids的距离,将距离最小值所对应的索引赋值jidx(i)

for i = 1:length(X)
    L = sum( (X(i,:) - centroids ).^2, 2);
    [~,j] = min(L);
    idx(i) = j;
end

1.1.2 Computing centroid means

任务:完成computeCentroids.m,实现每一类的新中心点的计算。

输入:

  1. 数据点矩阵X,元素为所有点的位置
  2. 一维数组idx,元素为每个点对应的中心点索引号(1,2,…,K)
  3. 分类数K

输出:

  1. 中心点矩阵centroids,元素为K个中心点的位置

计算每类i所属点X(idx == i,:)的中心点(即平均点)

for i = 1:K
	centroids(i,:) = mean(X(idx == i,:));
end

1.2 K-means on example dataset

完成以上两个子函数,再运行ex7.m就可以看到K均值聚类迭代的可视化过程。

在这里插入图片描述

1.3 Random initialization

ex7.m的中心点初始化是人为给定的,但在实际应用中,更多的是随机从数据点中选取K个点作为中心点。

任务:完成kMeansInitCentroids.m,实现随机初始化。

输入:

  1. 数据点矩阵X,元素为所有点的位置
  2. 分类数K

输出:

  1. 中心点矩阵centroids,元素为K个中心点的位置

作业里直接给了下面的代码。首先,用randper

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值