1. 程式人生 > >聚類演算法(K-means + Fuzzy C-means + Hierarchical + Mixture of Gaussians)---第一部分:簡介

聚類演算法(K-means + Fuzzy C-means + Hierarchical + Mixture of Gaussians)---第一部分:簡介

前言

什麼是聚類? 聚類可以被認為是最重要的無監督學習問題; 所以,像這樣的其他問題一樣,它涉及在未標記資料的集合中找到一個結構。聚類的簡單定義可能是“將物件組織成某些成員相似的組的過程”。因此,"cluster"是它們之間“相似”的物件的集合,並且與屬於其他"cluster"的物件“不相似”。我們可以用簡單的圖示來顯示它:


在這種情況下,我們可以輕鬆識別資料可以劃分為4個簇; 相似性標準是距離:如果兩個或更多個物件屬於相同的cluster,則它們根據給定的距離(在這種情況下是幾何距離)是“接近”的。這被稱為基於距離的聚類
另一種聚類是概念聚類:如果這個物件定義了所有物件共有的概念,則兩個或多個物件屬於同一個cluster

換句話說,物件根據它們對描述性概念的適應性分組,而不是根據簡單的相似性度量。

補充:

將資料分成多個類別,在同一個類內,物件(實體)之間具有較高的相似性,不同類物件間差異性較大。
–對一批沒有類別標籤的樣本集,按照樣本之間的相似程度分類,相似的歸為一類,不相似的歸為其它類。這種分類稱為聚類分析,也稱為無監督分類。
–聚類的質量(或結果)取決於對度量標準的選擇。
–聚類結果因不同任務而不同。

聚類的目標:

聚類的目的是確定一組未標記資料的內在分組,但是如何決定什麼構成好的聚類?可以看出,沒有絕對的“最佳”標準獨立於聚類的最終目標。因此,使用者必須提供這個標準,使得聚類的結果能滿足他們的需要。


可能的應用:

聚類演算法可以應用於許多領域,例如:
  • 營銷:找到具有相似行為的客戶群體,提供包含其屬性和過去購買記錄的大量客戶資料資料庫;
  • 生物學:賦予植物和動物特徵的分類;
  • 圖書館:書籍訂購;
  • 保險:確定平均索賠成本高的汽車保險單位群體; 識別欺詐
  • 城市規劃:根據房屋型別,價值和地理位置確定房屋群;
  • 地震研究:聚類觀測地震震中識別危險區域;
  • WWW:檔案分類; 將網路日誌資料聚類以發現類似訪問模式的組。

聚類的要求:

  • 可擴充套件性
  • 處理不同型別的屬性;
  • 發現任意形狀的cluster;
  • 域知識的最小要求確定輸入引數;
  • 處理噪音和異常值的能力;
  • 輸入記錄排序不敏感;
  • 高維度
  • 可解釋性和可用性。

存在的問題:

  • 當前的聚類技術不能充分(併發)滿足所有的要求;
  • 處理大量的維數和大量的資料項可能會因為時間複雜而有問題;
  • 該方法的有效性取決於“距離”的定義(用於基於距離的聚類);
  • 如果不存在明顯的距離度量,我們必須“定義”它,這並不總是容易的,特別是在多維空間中;
  • 聚類演算法的結果(在許多情況下可以是任意的)可以用不同的方式來解釋。

聚類演算法介紹

分類

聚類演算法可以分類如下:
  • Exclusive Clustering
  • Overlapping Clustering
  • Hierarchical Clustering
  • Probabilistic Clustering

在第一種情況下,資料以獨佔方式進行分組,因此如果某個資料屬於確定的cluster,則不能將其包含在另一個cluster中。在下圖中示出了一個簡單的例子,其中點的分離通過在二維平面上的直線來實現。
相反,第二種型別,重疊聚類,使用模糊集來聚類資料,使得每個點可以屬於具有不同隸屬度的兩個或更多個聚類。在這種情況下,資料將被關聯到適當的成員資格值。


相反,層次聚類演算法基於兩個最近聚類之間的並集。通過將每個資料設定為一個cluster來實現開始條件。經過幾次迭代,它達到了想要的最終cluster。

最後一種聚類使用完全概率的方法。

在本教程中,我們提出了四種最常用的聚類演算法:

  • K-means
  • Fuzzy C-means
  • Hierarchical clustering
  • Mixture of Gaussians

這些演算法中的每一個都屬於上面列出的一個聚類型別。因此,K-means 是一種獨佔的聚類演算法,Fuzzy C-means 是一種重疊的聚類演算法,分層聚類是顯而易見的,最後的高斯混合 是概率聚類演算法。我們將在以下段落中討論每個聚類方法。

距離與相似性度量

聚類演算法的一個重要組成部分是資料點之間的距離測量。如果資料例項向量的元件都處於相同的物理單元中,那麼簡單的歐幾里得距離度量就足以成功地組合類似的資料例項。然而,即使在這種情況下,歐幾里得距離有時也會產生誤導。下圖顯示了一個物件的寬度和高度測量示例。儘管在相同的物理單位中進行了兩次測量,但是必須對相對比例做出明智的決定。如圖所示,不同的縮放可能導致不同的聚類。


補充:

距離的定義: 

設有 d 維空間的三個樣本x,y 和 z,記 d(. , .)為一個 R^d × R^d →R的對映,如滿足如下幾個條件則稱d(. , .)為一個距離:
•d(x, y) ≥ 0 非負性
•d(x, x) = 0 自相似性
•d(x, y) = d(y, x) 對稱性
•d(x, y) ≤ d(x, z) + d(z, y) 三角不等式
–距離可以描述對點間的相異程度,距離越大,兩個點越不相似;距離越小,兩個點越相似。

閔可夫斯基度量

對於更高維尺寸的資料,流行的做法是閔可夫斯基度量,

其中d是資料的維數。可以看出歐幾里德距離是一個特殊情況,其中p = 2,而曼哈頓度量(城區距離)具有p = 1。常見的距離還有:

切比雪夫距離: 

Mahalanobis (馬氏)距離,其中,M是半正定矩陣。M為單位矩陣時,退化為歐氏距離度量。M為對角矩陣時,退化為特徵加權歐氏距離

相似性

  

然而,對於任何給定的應用來說,選擇一個度量沒有一般的理論指導。

通常情況下,資料特徵向量的元件不能立即比較。可能原因是,元件不是連續變數,如長度,而是名義類別,例如一週中的幾天。在這些情況下,必須使用領域知識來制定適當的措施。


Reference:

1.  http://home.deib.polimi.it/matteucc/Clustering/tutorial_html/index.html

2. 《pattern classification》

3. 《pattern recongnition and machine learning》

相關推薦

演算法K-means + Fuzzy C-means + Hierarchical + Mixture of Gaussians---第一部分簡介

前言 什麼是聚類? 聚類可以被認為是最重要的無監督學習問題; 所以,像這樣的其他問題一樣,它涉及在未標記資料的集合中找到一個結構。聚類的簡單定義可能是“將物件組織成某些成員相似的組的過程”。因此,"cluster"是它們之間“相似”的物件的集合,並且與屬於其他"cluste

機器學習——K均值演算法K-means

概述: 1.聚類 “類”指的是具有相似性的集合。聚類是指將資料集劃分為若干類,使得類內之間的資料最為相識,各類之間的資料相似度差別儘可能大。聚類分析就是以相似性為基礎,對資料集進行聚類分析,屬於無監督學習。 2.無監督學習和監督學習 k-均值聚類(k-means)與k-近鄰(knn)

鳶尾花三種演算法K-means,AGNES,DBScan的python實現

一.分散性聚類(kmeans) 演算法流程: 1.選擇聚類的個數k. 2.任意產生k個聚類,然後確定聚類中心,或者直接生成k箇中心。 3.對每個點確定其聚類中心點。 4.再計算其聚類新中心。 5.重複以上步驟直到滿足收斂要求。(通常就是確定的中心點不再改變。

幾種計算機視覺中常用的演算法K-means, Agglomerative clustering, Mean shift, Spectral clustering

對於機器學習而言,聚類常常應用於離散情況下的非監督學習演算法之中,如下圖所示。 聚類的總體目標是使得最小化目標函式: 聚類的方法很多,常用的包括(K-means, Agglomerative clustering,mean shift, Spectral clus

K-中心點演算法K-Medoide

K-中心點演算法也是一種常用的聚類演算法,K-中心點聚類的基本思想和K-Means的思想相同,實質上是對K-means演算法的優化和改進。在K-means中,異常資料對其的演算法過程會有較大的影響。在K-means演算法執行過程中,可以通過隨機的方式選擇初始質心,也只有初始

吳恩達老師機器學習筆記K-means演算法

運用K-means聚類演算法進行影象壓縮 趁熱打鐵,修改之前的演算法來做第二個練習—影象壓縮 原始圖片如下: 程式碼如下: X =imread('bird.png'); % 讀取圖片 X =im2double(X); % unit8轉成double型別 [m,n,z]=size

吳恩達老師機器學習筆記K-means演算法

今天接著學習聚類演算法 以後堅決要八點之前起床學習!不要浪費每一個早晨。 K-means聚類演算法聚類過程如下: 原理基本就是先從樣本中隨機選擇聚類中心,計算樣本到聚類中心的距離,選擇樣本最近的中心作為該樣本的類別。最後某一類樣本的座標平均值作為新聚類中心的座標,如此往復。 原

演算法—— k-means演算法以及其改進演算法

      聚類演算法是一種無監督學習,它把資料分成若干類,同一類中的資料的相似性應儘可能地大,不同類中的資料的差異性應儘可能地大。聚類演算法可分為“軟聚類”和“硬聚類”,對於“硬聚類”,樣本中的每一個點都是 100%確定分到某一個類別;而“軟聚類”是指樣本點以一定的概率被分

演算法k-均值 (k-means)演算法

首先確保你在動手寫程式碼之前已經瞭解什麼是聚類分析。 k-均值演算法----一種基於形心地技術的聚類演算法。k-均值演算法的英文名是k-means,那麼這個演算法是怎麼工作的呢? k-均值演算法把簇的形心定義為簇內點的均值。它的處理流程如下:1.在資料點集D中隨機的選擇k個

機器學習實戰Machine Learning in Action學習筆記————06.k-均值演算法kMeans學習筆記

機器學習實戰(Machine Learning in Action)學習筆記————06.k-均值聚類演算法(kMeans)學習筆記關鍵字:k-均值、kMeans、聚類、非監督學習作者:米倉山下時間:2018-11-3機器學習實戰(Machine Learning in Action,@author: Pet

用Python開始機器學習10演算法K均值

我們之前接觸的所有機器學習演算法都有一個共同特點,那就是分類器會接受2個向量:一個是訓練樣本的特徵向量X,一個是樣本實際所屬的型別向量Y。由於訓練資料必須指定其真實分類結果,因此這種機器學習統稱為有監督學習。然而有時候,我們只有訓練樣本的特徵,而對其型別一無所知。這種情況,我

深入淺出演算法k-means演算法

k-means是一個十分簡單的聚類演算法,它的思路非常簡明清晰,所以經常拿來當做教學。下面就來講述一下這個模型的細節操作。 內容 模型原理 模型收斂過程 模型聚類個數 模型侷限 1. 模型原理 將某一些資料分為不同的類別,在相同的類別中資料之

高斯混合模型演算法K-Means演算法

高斯混合模型聚類演算法 概念:混合高斯模型就是指對樣本的概率密度分佈進行估計,而估計的模型是幾個高斯模型加權之和(具體是幾個要在模型訓練前建立好)。每個高斯模型就代表了一個類(一個Cluster)。

演算法K-means演算法演算法衡量指標

聚類就是按照某個特定標準(如距離準則)把一個數據集分割成不同的類或簇,使得同一個簇內的資料物件的相似性儘可能大,同時不在同一個簇中的資料物件的差異性也儘可能地大。即聚類後同一類的資料儘可能聚集到一起

演算法K-means演算法

關注微信公眾號【Microstrong】,我寫過四年Android程式碼,瞭解前端、熟悉後臺,現在研究方向是機器學習、深度學習!一起來學習,一起來進步,一起來交流吧! 本文同步更新在我的微信公眾號裡,地址:https://mp.weixin.qq.com/s?__b

基於R語言的分析k-means,層次

今天給大家展示基於R語言的聚類,在此之前呢,首先談談聚類分析,以及常見的聚類模型,說起聚類我們都知道,就是按照一定的相似性度量方式,把接近的一些個體聚在一起。這裡主要是相似性度量,不同的資料型別,我們需要用不同的度量方式。除此之外,聚類的思想也很重要,要是按照聚

演算法1

一聚類演算法簡介 1.聚類和分類的區別 聚類 - 利用演算法將相似或者相近的樣本聚成一簇,這些樣本都是無標籤的,是一種無監督學習演算法。 分類 - 首先需要從有標籤樣本學習出打標籤邏輯,再利用學習出的邏輯對無標籤樣本進行分類,是一種有監督學習演算法。 2.聚類的使用 聚類演

演算法

密度聚類 密度聚類假設聚類結構能通過樣本分佈的緊密程度確定,通常情況下密度聚類演算法從樣本密度的角度來考察樣本之間的可連線性,並基於可連線樣本不斷擴充套件聚類 簇以獲得最終的聚類結果 DBSCAN 基於一組鄰域引數來刻畫樣本分佈的緊密程度。 事先不用預設聚類簇數

時間序列演算法-《k-Shape: Efficient and Accurate Clustering of Time Series》解讀

摘要 本文提出了一個新穎的時間序列聚類演算法k-shape,該演算法的核心是迭代增強過程,可以生成同質且較好分離的聚類。該演算法採用標準的互相關距離衡量方法,基於此距離衡量方法的特性,提出了一個計算簇心的方法,在每一次迭代中都用它來更新時間序列的聚類分配。作者通過大量和具有

使用Matlab完成層次演算法最小生成樹演算法

最近要寫作業,涉及到一些聚類演算法。 關於聚類演算法的一些理論和定義,請參照部落格http://blog.sina.com.cn/s/blog_62f3c4ef01014uhe.html  和大傳送術http://blog.csdn.net/a1b2c3d4123456/a