這是機器學習第8,9周內容的筆記,由於國慶的緣故有些耽誤,因此兩個部分放在一塊兒總結概括。算法
首先是聚類(Clustering),主要介紹的是K-Means算法,其實這個算法思想很簡單,以前在《集體智慧編程》上面就瞭解過,此次補充學習了一些小細節。編程
算法的實質就是:(隨機初始化聚點)機器學習
一、將樣例的每一個點分配給離它最近的那個聚點ide
二、統計全部同類點的中點,將聚點移到這個中點函數
重複1.2兩個過程直到中心點再也不變化,爲了穩健能夠屢次算法選取最優的分類學習
大概過程如圖所示:測試
一些值得注意的細節是,初始化的時候能夠隨機從樣例中選擇k個點做爲初始聚點(k是據點數),k值的選取最好是人工選取,另外一種兼容性較差的方法就是測試k值找到拐點(elbow):spa
接下來是數據降維(Dimensionality Reduction)3d
舉個例子:3D-2D,就是在3D中選取一個平面,而後將全部的點映射到這個平面上,數據就變成了2D的了,咱們須要作的就是選取一個對原數據影響最小平面,比較直觀的就是點到平面的距離之和最小。這和liner regression的差異就是降維的cost fuction是垂線距離,而liner regression是參數的距離。blog
展現圖片是2D-1D,藍色爲原數據點,紅色爲映射點。能夠看出這種方法對數據是有影響的,可是隻要在限定範圍內,這種影響是能夠接受的。
比較顯著的一個實例就是ex7裏面的圖:
左邊是原來的圖片,右邊是降維後再還原的圖片。能夠看出來至少不影響咱們識別,降維處理對於高維數據的學習有很是大的做用。
具體算法是經過一個函數svd來實現的,奇異值分解(Singular value decomposition),具體的數學原理你們能夠本身找找資料。
返回的U便是降維後的在高維中選擇的向量,S用來計算降維後的數據失真度。
ex7中是要保證這樣一個準確度
三:anomaly detection
anomaly detection就是給出一組數據,對於一個新的數據,讓你判斷這個數據是否異於整體的數據。
舉例來講,
很明顯越是遠離中間的那一團點,就越是異常點,這個算法在智能控制登方面有很好的應用。
算法採用高斯分佈(即正態分佈)對樣例進行學習,對於一個新的點經過它的機率來判斷。
每一維的數據用一個正太分佈函數表示,樣例的機率便是全部維度的機率相乘。
最後經過以前學校過的F1 score來判斷算法的優越性。
其後還介紹了一個multivariate的高斯分佈函數,可是在練習中沒有體現
能夠說將數個高斯分佈函數相乘是multivariate gaussian deviation的一個特例。
特例在每維的σ分別落在∑ 的對角線上,其它所有爲0。
具體來講,矩陣Sigma控制圖像的衍生,使圖像能夠斜着拉伸,使算法更智能
大概就是這些吧。課程已經學到了第九周,立刻就要結束了。收穫匪淺,感謝coursera,感謝Andrew ng。