【Machine Learning】從零開始,了解無監(jiān)督學(xué)習(xí)的方法


目錄###

1. 什么是無監(jiān)督學(xué)習(xí)
2. 發(fā)現(xiàn)和無監(jiān)督學(xué)習(xí)
3. 聚類分析


1. 什么是無監(jiān)督學(xué)習(xí)

無監(jiān)督學(xué)習(xí)沒有教師,需要學(xué)習(xí)器自身形成(form)和評價(evaluate)概念。

科學(xué)是人類中無監(jiān)督學(xué)習(xí)最好的例子,因為科學(xué)家沒有教師的指點(diǎn),他們提出假設(shè)來解釋現(xiàn)象,并設(shè)計實(shí)驗來驗證假設(shè)。

hypothesis -> generality -> conclusion


2. 發(fā)現(xiàn)和無監(jiān)督學(xué)習(xí)(Discovery and unsupervised learning)

2.1 Automated Mathematician(AM)

  • AM是最早的和最成功的發(fā)現(xiàn)程序之一
  • AM獲取了許多有趣的數(shù)學(xué)概念,比如:集合論的概念。通過搜索這個數(shù)學(xué)概念空間,AM發(fā)現(xiàn)自然數(shù)和幾個重要的數(shù)論的概念,比如質(zhì)數(shù)的存在性。
  • AM并不具備學(xué)習(xí)能力

2.2 BACON

  • BACON發(fā)展了量化科學(xué)定律的形式的計算模型
  • 用與行星和太陽間的距離以及行星的旋轉(zhuǎn)周期相關(guān)的數(shù)據(jù),BACON“重發(fā)現(xiàn)”行星運(yùn)動的開普勒定律。

2.3 SCAVENGER

  • 用ID3算法的一個變種來改進(jìn)它形成類比的能力。

3. 聚類分析(Clustering analysis)

3.1 什么是聚類分析

Cluster analysis or clustering is the task of grouping a set of objects in such a way that objects in the same group (called a cluster) are more similar (in some sense or another) to each other than to those in other groups (clusters).
-from wikipedia

  • 聚類是一種無監(jiān)督學(xué)習(xí)
  • 聚類唯一需要的信息就是樣品之間的相似性(similarity between examples)。
  • 一個好的聚類要滿足:
    • High intra-cluster similarity
    • Low inner-cluster similarity
      聚類

      注:computationally difficult problem (NP-hard)

3.2 相似性(similarity)的定義

相似性通常很難去定義
  • 相似性衡量標(biāo)準(zhǔn)的選擇,對于聚類(clustering)十分重要。
  • 相似性相對應(yīng)的就是差異性(dissimilarity或者說distance)。
  • Proximity通常指的相似性(similarity)或者差異性(dissimilarity)
  • 現(xiàn)有的一些對于distance的衡量方法:
    • 歐幾里得距離(Euclidean distance)
    • 明氏距離(Minkowski distance)
      Minkowski distance is a generalization of Euclidean distance
    • 曼哈頓距離(Manhattan distance/City Block distance)
    • Kernelized (non-linear) distance

3.3 聚類在生活中的應(yīng)用

類別對于人類如何分析和描述世界起了至關(guān)重要的作用,人類其實(shí)非常擅長做分類,一個小孩子就可以將熟悉的事物分為建筑、機(jī)動車、動物、植物.......

  • 生物學(xué)(Biology)
    生物學(xué)家花費(fèi)多年時間為所有的生物創(chuàng)建了一套生物學(xué)分類法(等級結(jié)構(gòu)分類):界(kingdom), 門(phylum), 綱(class), 目(order), 科(family), 屬(genus), 和種(species)。

  • 信息檢索(Information Retrieval)
    萬維網(wǎng)包含了數(shù)十億網(wǎng)頁,搜索引擎可以將搜索結(jié)果進(jìn)行分類,分成不同的clusters。每個cluster可能代表搜索的一個方面。比如當(dāng)你搜索“電影”,搜索結(jié)果可能被分為“電影預(yù)告片”“電影導(dǎo)演”“電影院”......當(dāng)然也可能會繼續(xù)向下層級的分類,完善用戶體驗。

  • 氣候(Climate)
    理解地球氣候需要在大氣和海洋中尋求模式,聚類分析已經(jīng)被應(yīng)用于相應(yīng)的模式尋找過程,例如海洋對陸地氣候的顯著影響。

  • 心理學(xué)和醫(yī)學(xué)(Psychology and Medicine)
    疾病會頻繁的出現(xiàn)一系列新的變種,聚類分析可以用來鑒定和識別這些新的不同的子類。

  • 商業(yè)(Business)
    聚類分析被用來發(fā)現(xiàn)不同的客戶群,并且通過購買模式刻畫不同的客戶群的特征。

3.4 不同類型的Clustering

3.4.1 層次聚類 vs 劃分聚類

被討論的最多的區(qū)分不同聚類類型的依據(jù)就是看被劃分好的這些clusters是嵌套的(nested)還是非嵌套的(untested),或者更通俗點(diǎn)說,是hierarchical還是partitional.

  • 層次聚類(Hierarchical clustering)


    層次聚類
  • 劃分聚類(Partitional or Flat clustering)


    劃分聚類
3.4.2 互斥聚類 vs 重疊聚類 vs 模糊聚類
  • 互斥聚類(Exclusive clustering)每個對象都指派到單個簇。
  • 重疊聚類(Overlapping clustering)用來反映一個對象同時屬于多個簇(類)這一事實(shí)。
  • 模糊聚類(Fuzzy clustering)每個對象以一個0(絕對不屬于)和1(絕對屬于)之間的錄屬權(quán)值屬于每個簇。
3.4.3 完全聚類 vs 部分聚類
  • 完全聚類(Complete clustering)將每一個對象都分配到某一個簇(cluster)
  • 部分分類(Partial clustering)有些對象沒有被聚類,比如一些噪聲(noise)或者離群值(outliers)

3.5不同類型的Cluster

在很多實(shí)際應(yīng)用中,cluster的概念并沒有一個很好的定義。為了更好的理解決定一個cluster由什么構(gòu)成的困難性,我們在下圖展示了同樣的20個點(diǎn),用三種不同的方法去把它們劃分到不同的clusters。

The notion of cluster is important

上圖闡明了其實(shí)一個cluster的定義不是精確的,固定不變的。對于cluster最好的定義依賴于數(shù)據(jù)的性質(zhì)預(yù)期結(jié)果

聚類(Clustering)的目標(biāo)是要找到一組有意義的對象(object)或者說cluster。 這里所說的有意義或者說有用,是針對數(shù)據(jù)分析的目標(biāo)而言的。毫無懸念,在實(shí)際當(dāng)中已經(jīng)有一些不同的對于cluster的概念,被證明是有意義的,具體如下:

3.5.1 明顯分離的(Well-Separated)

不同組中的任意兩點(diǎn)之間的距離都大于組內(nèi)任意兩點(diǎn)之間的距離。明顯分離的簇不必是球形的,可以具有任意形狀。


Well-Seperated cluster
3.5.2 基于原型的(Prototype-Based /center-based clusters)

簇是對象的集合,其中每個對象到定義該簇的原型的距離比到其他簇的原型的距離更近(或更加相似)。對于具有連續(xù)屬性的數(shù)據(jù),簇的原型通常是質(zhì)心,即簇中所有點(diǎn)的平均值。這種簇傾向于呈球狀。基于原型的聚類技術(shù)創(chuàng)建數(shù)據(jù)對象的單層劃分。


Prototype-Based cluster
3.5.3 基于圖的(Graph-Based)

如果數(shù)據(jù)用圖表示,其中節(jié)點(diǎn)是對象,而邊代表對象之間的聯(lián)系,則簇可以定義為連通分支,即互相連通但不與組外對象連通的對象組。當(dāng)簇不規(guī)則或纏繞時,簇的這種定義是有用的。但是,當(dāng)數(shù)據(jù)具有噪聲時就可能出現(xiàn)問題。也存在其他類型的基于圖的簇。一種方法是定義簇為團(tuán),即圖中相互之間完全連接的節(jié)點(diǎn)的集合。


Graph-Based cluster
3.5.4 基于密度的(Density-Based)

簇是對象的稠密區(qū)域,被低密度的區(qū)域環(huán)繞。當(dāng)簇不規(guī)則或互相盤繞,并且有噪聲和離群點(diǎn)時,常常使用基于密度的簇定義。


Desity-Based cluster
3.5.5 共同性質(zhì)的/概念簇(Shared-Property /Conceptual Clusters)

把簇定義為有某種共同性質(zhì)的對象的集合。發(fā)現(xiàn)這樣的簇的過程稱作概念聚類。


Conceptual Cluster

3.6 K-means 簡介

  • K-means 屬于 基于中心的(Center-Based)劃分(partitional)聚類法方

  • Each cluster is associated with a centroid(center point)

  • Each point is assigned to the cluster with the closest centroid

  • K的值必須事先給定 (K centroids)

  • K-means 算法的基本步驟:

  • 從 n個數(shù)據(jù)對象任意選擇 k 個對象作為初始聚類中心

  • 迭代

    • 通過把每個點(diǎn)分配給最近的聚類中心,從而形成K個類
    • 重新計算每個類的聚類中心
  • 終止 如果計算后,聚類中心不發(fā)生改變

    K-means算法,過程演示(K=2)

  • K-means 算法優(yōu)點(diǎn)

  • 算法框架清晰,簡單,容易理解。

  • 本算法確定的k個劃分到達(dá)平方誤差最小。當(dāng)聚類是密集的,且類與類之間區(qū)別明顯時,效果較好。

  • 對于處理大數(shù)據(jù)集,這個算法是相對可伸縮和高效的,計算的復(fù)雜度為O(NKt),其中N是數(shù)據(jù)對象的數(shù)目,t是迭代的次數(shù)。一般來說,K<<N,t<<N 。

  • K-means 算法缺點(diǎn)

  • K-means算法中k是事先給定的,這個k值的選定是非常難以估計的。

  • 算法的時間開銷是非常大的。

  • K-means算法對異常數(shù)據(jù)很敏感。在計算質(zhì)心的過程中,如果某個數(shù)據(jù)很異常,在計算均值的時候,會對結(jié)果影響非常大。


結(jié)語和參考文獻(xiàn)

  1. Cluster Analysis: Basic Concepts and Algorithms
  2. Clustering - ccsu
  3. Clustering - Matteo Pardo
  4. Data Clustering: K-means and Hierarchical Clustering
  5. Cluster analysis wikipedia
  6. 聚類算法總結(jié)
  7. 文本聚類算法介紹
  8. 漫談 Clustering (1): k-means
  9. 聚類分析
  10. 聚類算法:K-means
  11. Artificial Intelligence,6th Edition
  12. 數(shù)據(jù)挖掘技術(shù)(四)——聚類
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容