吳恩達機器學習ex7

2021-10-06 09:23:53 字數 2073 閱讀 4273

這一部分實現k-means聚類方法並用於影象壓縮。

k-mean演算法是一種自動將相似資料聚類到一起的方法。該演算法是乙個迭代的過程,開始時隨機設定乙個質心,之後重複地將資料點分配到離其最近的質心,再重新計算質心。

演算法過程就是重複以下兩個步驟:

1)將每個樣本點分配到最近的質心

2)重新計算每個類的均值作為新的質心

由於一開始選定的隨機質心對結果有很大的影響,因此通常用隨機化質心執行多次。最後選擇代價函式最低的值作為解。

1.1 最近鄰質心

代價函式(距離公式):

c(i)為質心的索引,μ(j)為第j個質心的座標。

**思路就是計算每個樣本點到每個質心的距離,選擇距離最小的作為最近鄰質心。

for i =1:

size(x

,1) minerror =

sum((x

(i,:)-

centroids(1

,:))

.^2)

; minidx =1;

for j =2:

k error =

sum((x

(i,:)-

centroids

(j,:))

.^2)

;if error < minerror

minerror = error;

minidx = j;

endidx

(i)= minidx;

endend

1.2 計算質心

c(k)為屬於第k類的資料集,如果x(3)和x(5)屬於第2類,那麼μ(2)=(x(3)+ x(5))/ 2

for i =1:

k s =

sum(idx == i);if

(s ~=0

)centroids

(i,:)=

mean(x

(find

(idx == i),:

))else

centroids

(i,:)=

zeros(1

, n)

; end

end

這一部分使用使用k-means進行影象壓縮。將數千種顏色的影象壓縮為16種顏色。

對於一張128×128,使用rgb表示的影象,每個點用24位表示,需要儲存的畫素點為128×128×24 = 393216,壓縮為16種顏色(4位表示)後只需要128 × 128 × 4 + 24 × 16 = 65920,基本為原影象的六分之一,我們需要使用k-means選出最適合的16種顏色。

這一部分應用主成分分析降維。

計算步驟:

1)計算資料的協方差矩陣

2)使用svd計算本徵向量u1,u2,…,un,對應於資料變換的主要成分。

在使用pca之前,通常需要對資料進行歸一化處理。

sigma =

(x' *x)

/ m;[u

,s,v

]=svd(sigma)

;

計算出主成分之後就可以通過將資料對映到低緯度的方法,降低特徵維度。

將資料集x對映到主成分u中的前k個成分。

ureduce =u(

:,1:

k);z

=x* ureduce;

降維後可以將資料對映回原本維度

ureduce =u(

:,1:

k);x_rec =

z* ureduce';

結果:

圖中藍色點表示原始資料,紅色圓圈表示對映後的資料。

吳恩達機器學習ex7 PCA降維

主成分分析 principal component analysis,pca 1 樣本 1.1 樣本資料集 匯入乙個二維的資料集並顯示,得到。1.2 執行pca演算法 pca演算法包括如下幾個部分 對原始資料進行歸一化 其歸一化的演算法為x x mu sigma,其中mu為資料的均值,sigma為資...

吳恩達機器學習 程式設計練習 ex6 1

本節練習是為了應用svm演算法,並靈活運用c和gamma引數 首先load資料集並plot part1 讀取資料1,並將資料整理成可識別的格式 path c users huanuo pycharmprojects ml ex6 svm ex6 ex6data1.mat m loadmat path...

吳恩達機器學習 程式設計練習7

本練習的主題是k means clustering and principal component analysis,即k均值聚類演算法和主要成分分析。因此這篇文章也分兩部分來討論,根據作業檔案的步驟來分別對k均值聚類演算法和pca進行討論原理以及如何實現。k means clustering al...