Coursera-吴恩达-机器学习-第八周-编程作业: K-Means Clustering and PCA

本次文章内容: Coursera吴恩达机器学习课程,第八周编程作业。编程语言是Matlab。

本文只是从代码结构上做的小笔记,更复杂的推导不在这里。算法分两部分进行理解,第一部分是根据code对算法进行综述,第二部分是代码。

本次作业分两个part,第一个是K-Means Clustering algorithm 压缩图片,第二个部分是PCA

1 K-means Clustering

Implement the K-means algorithm and use it for image compression. first, start on an example 2D dataset, then use the K-means algorithm for image compression

part 0: Initialization

            clear ; close all; clc

Part 1: Find Closest Centroids 

            编写函数findClosestCentroids,计算每个样本与centroid的距离,返回距离最近的点的index。

 Part 2: Compute Means

           编写函数computeCentroids,计算新的centroid。

Part 3: K-Means Clustering

             编写函数brunkMeans。迭代max_iters次, 首先从初始点开始initial_centroids,找所有样本点离centroid最近的点,then循环K次,计算新的centroids

Part 4: K-Means Clustering on Pixels

            将像素信息转换成矩阵,use K-Means to compress an image.

Part 5: Image Compression

            use the clusters of K-Means to compress an image. 将像素recover并显示出来。

2 Principal Component Analysis

Part 0: Initialization
clear ; close all; clc

Part 1: Load Example Dataset

           加载二位数据集,并画出dataset。

Part 2: Principal Component Analysis

           implement PCA, a dimension reduction technique.先做featureNormalize,之后做PCA。

           PCA的过程是先求covariance matrix,再做SVD得到eigenvector和eigenvalues 。画出reduced向量。

 Part 3: Dimension Reduction

           计算projection后的向量,计算recover的向量,并绘出。

Part 4: Loading and Visualizing Face Data

           加载face data,并画出100张face。

Part 5: PCA on Face Data: Eigenfaces

           应用PCA,画出eigenvector的facedata

Part 6: Dimension Reduction for Faces

           输出 Dimension Reducted.

Part 7: Visualization of Faces after PCA Dimension Reduction

          recoverData,绘出PCA Dimension Reduction后的data。

 Part 8(a): Optional (ungraded) Exercise: PCA for Visualization

 Part 8(b): Optional (ungraded) Exercise: PCA for Visualization

          应用Kmeans,画出dataset。将PCA应用image visualized.

猜你喜欢

转载自blog.csdn.net/qq1376725255/article/details/83450808