無監督學習的目標
利用無標簽的數據學習數據的分布或數據與數據之間的關系被稱作無監督學習。
有監督學習和無監督學習的最大區別在於數據是否有標簽
無監督學習最常應用的場景是聚類(clustering)和降維(Dimension Reduction)
聚類(clustering )
聚類,就是根據數據的“相似性”將數據分為多類的過程。
評估兩個不同樣本之間的“相似性”,通常使用的方法就是計算兩個樣本之間的“距離”。使用不同的方法計算樣本間的距離會關系到聚類結果的好壞。
歐式距離
歐氏距離是最常用的一種距離度量方法,源於歐式空間中兩點的距離。
二維空間歐式距離的計算
曼哈頓距離
曼哈頓距離也稱作“城市街區距離”,類似於在城市之中駕車行駛,從一個十字路到另外一個十字樓口的距離。
二維空間的曼哈頓距離
馬氏距離
馬氏距離表示數據的協方差距離,是一種尺度無關的度量方式。也就是說馬氏距離會先將樣本點的各個屬性標准化,再計算樣本間的距離。
$$
d(x_i,x_j)=\sqrt[]{(x_i-x_j)^T s^-(x
_i-x_j)}
$$
s是協方差矩陣
二維空間中的馬氏距離
在馬氏距離的計算下,距離白紅>距離白綠
余弦相似度
余弦相似度用向量空間中兩個向量夾角的余弦值作為衡量兩個樣本差異的大小。余弦值越接近1,說明兩個向量夾角越接近0度,表明兩個向量越相似。
二維空間中的向量余弦
Sklearn vs.聚類
scikit-learn庫(簡稱sklearn庫)提供的常用聚類算法函數包含在sklearn.cluster這個模塊中,如:K-Means,近鄰傳播算法,DBSCAN等。
以同樣的數據集應用於不同的算法,可能會得到不同的結果,算法所耗費的時間也不盡相同,這是由算法的特性決定的。
調用sklearn庫的標准函數對不同數據集執行的聚類結果。
緊鄰傳播算法 譜聚類 DBSCAN
sklearn.cluster
sklearn.cluster模塊提供的各聚類算法函數可以使用不同的數據形式作為輸人:
-
標准數據輸人格式:[樣本個數,特征個數]定義的矩陣形式。
-
相似性矩陣輸入格式:即由[樣本數目]定義的矩陣形式,矩陣中的每一個元素為兩個樣本的相似度,如DBSCAN,AffinityPropagation(近鄰傳播算法)接受這種輸人。
如果以余弦相似度為例,則對角線元素全為1。矩陣中每個元素的取值范圍為[0,1]。
降維
降維,就是在保證數據所具有的代表性特性或者分布的情況下,將高維數據轉化為低維數據的過程。
- 數據的可視化
- 精簡數據
四維的鳶尾花數據經過PCA變換在二維的空間上的展示
分類vs.降維
聚類和分類都是無監督學習的典型任務,任務之間存在關聯,比如某些高緯數據的分類可以通過降維處理更好的獲得,另外學界研究也表明代表性的分類算法如k-means與降維算法如NMF之間存在等價性。
sklearn vs.降維
-
降維是機器學習領域的一個重要研究內容,有很多被工業界和學術界接受的典型算法,截止到目前sklearn庫提供7種降維算法。
-
降維過程也可以被理解為對數據集的組成成份進行分解(decomposition)的過程,因此sklearn為降維模塊命名為decomposition,在對降維算法調用需要使用sklearn.decomposition模塊。
sklearn.decomposition模塊下常用的幾個降維算法
未來任務
在后續的講解中,將學習:通過實例展示如何利用sklearn庫提供的分類和降維算法解決具體問題:
- 31省市居民家庭消費調查
- 學生月上網時間分布調查
- 人臉圖像特征抽取
- 圖像分割