Coursera 機器學習筆記(六)

2022-08-17 19:45:21 字數 3154 閱讀 5991

主要為第八周內容:聚類(clustering)、降維

聚類是非監督學習中的重要的一類演算法。相比之前監督學習中的有標籤資料,非監督學習中的是無標籤資料。非監督學習的任務是對這些無標籤資料根據特徵找到內在結構。聚類就是通過演算法把資料分成不同的簇(點集),k均值演算法是其中一種重要的聚類演算法。

k均值演算法

k-均值是乙個迭代演算法,假設我們想要將資料聚類成 n 個組,其方法為:

1.首先選擇

k 個隨機的點,稱為聚類中心

cluster centroids

)2. 對於資料集中的每乙個資料,按照距離 k 個中心點的距離,將其與距離最近的中心點關聯起來,與同乙個中心點關聯的所有點聚成一類

3. 計算每乙個組的平均值,將該組所關聯的中心點移動到平均值的位置

4. 重複步驟 2-4 直至中心點不再變化

代價函式

k均值演算法的代價函式是所有的資料點與其所關聯的聚類中心點之間的距離之和,又稱為畸變函式(distortion function)

其中u(i)代表x(i)最近的聚類中心點。

我們的優化目標就是最小化代價函式。

隨機初始化

做法:1.我們應該選擇 k取決於初始化,k均值可能會停留在乙個區域性最小值。k 較小時,解決這個問題的辦法是多次執行k均值演算法,每次都隨機初始化,選擇其中代價函式最小的結果。

k較大時,多次隨機初始化,不會有明顯改善。

聚類數k

取決於不同的實際情況,人工進行選擇聚類數。如衣服製造:可以按照身材聚類,有s,m,l 或者 xs,s,m,l,xl等。

有一種方法叫做肘部法則:改變k值,計算相應的代價函式,畫出k與代價函式的曲線:

如果得到一張類似的圖,那麼將"肘點"作為k值選擇是一種合理辦法。不過通常比較難出現這種肘部圖。

降維也是機器學習演算法的重要部分。為什麼需要降維?一、資料壓縮,減少特徵;二、資料視覺化,顯然後50維的資料很難想象出它的視覺化影象,降低至2維、3維即可。主成分分析(pca)是最常見的降維演算法。

主成分分析(pca)

主要成分分析(pca)問題的描述:

1.問題是要將

n 維資料降至k 維

2.目標是找到向量

u(1),u(2),...,u(k)

使得總的投射誤差最小

如二維到一維:

與線性回歸相比,主要成分分析最小化的是投射誤差,而線性回歸嘗試的是最小化**誤差。線性回歸的目的是**結果,而主要成分分析不作任何**。

pca技術的好處是對資料進行降維的處理,將"主元"向量的重要性排序,根據需要選取前面最重要的部分,從而達到降維的目的,同時又最大程度保留了原有資料的資訊。另乙個好處是完全無引數限制,最後只與資料有關,與使用者是獨立的。

演算法步驟:

第一步:均值歸一化。

第二步:計算協方差矩陣σ

第三步:計算協方差矩陣σ的特徵向量

在matlab中可以利用奇異值分解(singular value decomposition), [u, s, v] = svd(sigma)。

對於乙個 n×n 維度的矩陣,上式中的 u 是乙個具有與資料之間最小投射誤差的方向向量構成的矩陣。如果我們希望將資料從 n 維降至 k 維,我們只需要從 u 中選取前 k 個向量,獲得乙個 n×k 維度的矩陣,我們用 ureduce 表示,然後通過如下計算獲得要求的新特徵向量z(i):其中 x 是 n×1 維的,因此結果為 k×1 維度。

主成分數量

主成分分析的代價函式是平均均方誤差:

訓練集的方差:

我們希望在平均均方誤差與訓練集方差的比例盡可能小的情況下選擇盡可能小的 k 值。如果我們希望這個比例小於

1%,就意味著原本數

據的偏差有 99%都保留下來了,如果我們選擇保留 95%的偏差,便能非常顯著地降低模型中特徵的維度了。

我們可以先令 k=1,然後進行主要成分分析,獲得 ureduce 和 z,然後計算比例是否小於1%。如果不是的話再令 k=2,如此類推,直到找到可以使得比例小於 1%的最小 k 值(原因是各個特徵之間通常情況存在某種相關性)。

更好的辦法是利用

matlab

中奇異值分解,

[u, s, v] = svd(sigma)中的s

其中的s

是乙個n×n

的矩陣,只有對角線上有值,而其它單元都是

0,我們可以使用這個矩陣來計算平均均方誤差與訓練集方差的比例:

重建pca

降維方程是:

則可由相反方程重建x:

如圖所示:

建議一般而言,pca使用步驟是先降維;然後降維後的特徵進行訓練,學習演算法;在**時,根據之前pca的ureduce將輸入特徵x轉換為相應z,然後再進行**。

乙個常見的錯誤情況是:將pca其用於減少過擬合(減少了特徵的數量)。原因在於主要成分分析只是近似地丟棄掉一些特徵,它並不考慮任何與結果變數有關的資訊,因此可能會丟失非常重要的特徵。

另乙個常見的錯誤是,預設地將主要成分分析作為學習過程中的一部分,這雖然很多時候有效果,最好還是從所有原始特徵開始,只在有必要的時候(演算法執行太慢或者占用太多記憶體)才考慮採用主要成分分析。

Coursera 機器學習筆記(一)

主要是第一二周內容 生活在資訊時代的我們,其實時時刻刻都離不開機器學習演算法。比如日常使用的搜尋引擎就涉及到很多學習演算法。arthur samuel 給出第乙個定義。他定義機器學習為 在進行特定程式設計的情況下,給予計算機學習能力的領域。維基百科給出的定義為 機器學習演算法是一類從資料中自動分析獲...

Coursera機器學習課程筆記(十)

課程中介紹了三種不同的梯度下降演算法,分別是批量 batch 梯度下降演算法,小批量 mini batch 梯度下降演算法,隨機 stochastic 梯度下降演算法 對於小批量梯度下降,必須要將運算向量化實現才是比隨機梯度下降更好的演算法。隨機梯度下降的前提條件是必須將樣本隨機排列,然後在依次遍歷...

機器學習入門 Coursera

1.解決方法 無論你是mac還是windows還是linux系統,系統中都會有乙個hosts檔案。這個檔案在各系統中的位址如下。1.mac系統 private etc hosts 2.linux系統 etc hosts 3.windows系統 c windows system32 drivers e...