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.