機器學習(Coursera吳恩達)(六)
標籤(空格分隔): 機器學習 SVM 聚類
支持向量機
從邏輯迴歸推出SVM。
邏輯迴歸:如果有一個1
樣本,希望得到的 趨近於1,這就要求 應遠大於0。反之如果y=0
,就需要遠小於0。
現在修改代價函數。
然後用替換之後的兩個代價函數 構建支持向量機。
這裏有需要注意的點:
1. 去除了1/m這一項,因爲這就是個常數項,在svm的通常習慣中不用這一項。
2. 在SVM中用C
作爲常量,刪除了正則化項中的 。可以把C考慮成 之類的東西。
3. 邏輯迴歸中假設函數h
輸出的是可能概率。SVM則直接輸出1或0。
最大間距(margen)
SVM是爲了獲取最大的間距分類器。將二分類樣本分開。
C如果設置太大,會因爲一個異常值的影響,導致整體性能的改變。也就是類似 設置的太小,導致過擬合。
範數??
核函數
對於無法用直線進行分類的問題。使用核函數計算與地表landmark的結果。
利用一系列新的特徵替換模型中的原特徵。例如 這樣使用原始特徵作爲新特徵。
那麼現在需要一個新的方法,來尋找新特徵,而不是用原始特徵的組合。也就是利用核函數計算得到新特徵。
首先利用x的各個特徵與我們預先設定的地標(landmark)l1l2l3,的近似程度來選取新的特徵f1f2f3。
例如高斯核函數:
也就是可以說使用核函數,計算與地標的近似程度,將landmark設置爲某一類的幾個中心,然後計算與I
個核函數的值,用這I
個值作爲新的特徵值,因此 。
這樣的話可以得到分類爲1的範圍,和拒絕1的範圍。得到分類的線。
接下來就是如何選擇landmark。
通常是根據訓練集的數量選擇地標的數量,即如果訓練集中有m個實例,則我們選取m個地標,並且令 。這樣的好處在於:現在我們得到的新特徵是建立在原有特徵與訓練集中所有其他特徵之間距離的基礎之上。
下面我們將核函數運用到SVM中:
* 修改假設:
給定x,計算新特徵f,當 時,預測 ,否則反之。
相應的修改代價函數爲: ,
我們還需要對最後的正則化項進行未調整,在計算 時,我們用 進行代替,其中 是根據選擇的核函數而不同的一個矩陣。
C和 的影響:
C較大時,相當於 較小,可能會導致過擬合,高方差;
C較小時,。。。。。。。。。。,。。。。。欠擬合,高偏差。
較大:可能導致低方差,高偏差。
較小:可能導致低偏差,高方差。
聚類
聚類是無監督學習的一種。
K-means
是最普及的聚類算法,是一個迭代算法,假設我們想要將數據分爲n個組:
1. 首先選擇K個隨機的點,成爲聚類中心
2. 對於數據集中的每一個數據,按照距離K箇中心點的距離,將其與距離最近的中心點關聯起來,與同一個中心點關聯的所有點聚成一類。。
3. 計算每一個組的平均值,將該組所關聯的中心點一道平均值的位置。
4. 重複以上幾步至中心點不再變化。
僞代碼
優化目標
k-means的代價函數(又稱畸變函數distortion function):
選擇聚類數
“肘部法則”, 我們需要做的是改變K值,也就是聚類的類別數。
向上面這個圖就應該選K=3。