本次文章内容: 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.