1. 程式人生 > >Coursera-吳恩達-機器學習-第八週-程式設計作業: K-Means Clustering and PCA

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.