聚類篇——(一)聚類分析概述

聚類分析是研究“物以類聚”問題的分析方法。“物以類聚”問題在社會經濟研究中十分常見。例如,收集到大型商廈的顧客自然特徵、消費行爲等方面的數據,顧客羣細分是最常見的分析需求。可從顧客自然特徵和消費行爲的分組入手,如根據客戶的年齡、職業、收入、消費金額、消費頻率、購物偏好等進行單變量分組,或者進行多變量交叉分組。這種分組方式是客戶羣細分中普遍採用的方式,但其客戶羣劃分帶有明顯的主觀色彩,表現在如下方面:第一,需要明確指定分組變量。這無疑需要分析人員具備豐富的行業經驗,否則形成的顧客分組可能是不恰當的。同時,這種分組通常只能側重反映顧客的某個特徵或少數幾個特徵,很難反映多方面的綜合特徵,但基於多方面綜合特徵的客戶細分往往比單個特徵的細分更有意義。第二,需要明確指定分組標準。合理的標準是成功分組的關鍵,但仍需要行業經驗和反覆嘗試。
通常,人們更希望的分組是從數據出發的全面和客觀分組,即分組時兼顧考慮多方面因素,且無需人工指定分組標準,並確保各方面特徵相似的顧客能被分在同一組中,特徵不相似的顧客被分在不同組中。這是一種全方位的自動化分組,它相對更全面和更客觀,對幫助企業認識自己的客戶更有幫助。聚類分析是一種探索性的分析,在分類的過程中,人們不必事先給出一個分類的標準,聚類分析能夠從樣本數據出發,自動進行分類。在沒有先驗知識的前提下,根據數據的諸多特徵,按照其在性質上的親疏程度進行自動分組,且使組內個體的結構特徵具有較大的相似性,組間個體的特徵相似性較小。這裏所謂的“沒有先驗知識”是指沒有事先指定分組標準,所謂“親疏程度”是指樣本在變量取值上的總體相似程度或差異程度。聚類分析所使用方法的不同,常常會得到不同的結論。不同研究者對於同一組數據進行聚類分析,所得到的聚類數未必一致。聚類的目標是同一類對象的相似度儘可能大,不同類對象之間的相似度儘可能的小。

1. 聚類分析應用

在研究與處理事物時,經常需要將事物進行分類,聚類分析適用於很多不同類型的數據集合和研究領域,如工程、生物、醫藥、語言、人類學、經濟社會、心理學、電子商務和市場學等。

領域 聚類分析的應用
工程 根據物探、化探的指標將樣本進行分類
生物 古生物研究中根據挖掘出的骨骼形狀和尺寸將它們分類;對動植物、基因進行分類,獲取對種羣固有結構的認識
經濟社會 選取適當指標,對企業經濟效益分類;對各地區的經濟、政治、教育情況進行分類以及產業發展情況分類
商業 發現不同的客戶羣,通過購買模式刻畫客戶羣的特徵,研究消費者行爲;進行市場細分,尋找新的潛在市場、及實驗的市場
因特網 用來在網上進行文檔歸類,以及網站的訪問類型、時段等分類
保險 對汽車保險單持有者分類
房產 根據住宅類型、價值、位置對城市房產分類
電子商務 通過聚類得出具有相似瀏覽行爲的客戶,並分析客戶的共同特徵,有助於更加了解自己的客戶,向客戶提供更合適的服務
2. 常用的聚類分析算法

目前聚類算法有很多,可從不同角度對它們進行分類。
在這裏插入圖片描述

  • 基於劃分的聚類算法
    基於劃分算法原理簡單來說就是對一堆散點進行聚類,首先確定將這些散點聚成幾類,然後挑選幾個點作爲初始中心點,根據一定規則迭代重置聚類中心點,直到達到“類內的點都足夠近,類間的點都足夠遠”的目標效果。
    優點:對於大型數據集也是簡單高效、時間複雜度、空間複雜度低。
    缺點:數據集大時結果容易局部最優;需要預先設定K值,且對初始中心點的選取很敏感;對噪聲和離羣值非常敏感;只用於numerical類型數據;不能解決非凸(non-convex)數據。
  • 基於層次的聚類算法
    層次聚類主要有兩種類型:合併的層次聚類和分裂的層次聚類。合併的層次聚類是一種自底向上的聚類算法,從最底層(即每個數據點爲一類)開始,每一次合併最相似的類,直到全部數據點都合併到一類時或者達到某個終止條件時停止,大部分層次聚類都是採用這種方法處理。分裂的層次聚類是一種自頂向下的聚類方法,從最頂層(即全部數據點爲一類)開始,然後把根節點分裂爲一些子類,每個子類再遞歸地繼續往下分裂,直到每個類中僅包含一個數據點。
    優點:可解釋性好;層次聚類算法能產生高質量的聚類;能很好對K-means不能解決的非球形族進行聚類。
    缺點:時間複雜度高O(m3),改進後的算法也有o(m2lgm),m爲數據點的個數;具有貪心算法的缺點,一步錯步步錯。
  • 基於密度的聚類算法
    基於密度算法的主要目標是尋找被低密度區域分離的高密度區域。與基於距離的聚類算法不同的是,基於距離的聚類算法的聚類結果是球狀的簇,而基於密度的聚類算法可以發現任意形狀的簇。基於密度的聚類方法是從數據對象分佈區域的密度着手的。如果給定類中的數據對象在給定的範圍區域中,則數據對象的密度超過某一閾值就繼續聚類。這種方法通過連接密度較大的區域,能夠形成不同形狀的簇,而且可以消除孤立點和噪聲對聚類質量的影響,以及發現任意形狀的簇。
    優點:對噪聲不敏感;能發現任意形狀的聚類。
    缺點:聚類的結果與參數有很大的關係;DBSCAN用固定參數識別聚類,但當聚類的稀疏程度不同時,相同的判定標準可能會破壞聚類的自然結構,即較稀的聚類會被劃分爲多個類或密度較大且離得較近的類會被合併成一個聚類。
  • 基於網格的聚類算法
    基於網格算法將空間量化爲有限數目的單元,可以形成一個網格結構,所有聚類都在網格上進行。基本思想就是將每個屬性的可能值分割成許多相鄰的區間,並創建網格單元的集合。每個對象落入一個網格單元,網格單元對應的屬性空間包含該對象的值。
    優點:速度很快,其處理時間獨立於數據對象數,而僅依賴於量化空間中的每一維的單元數。
    缺點:參數敏感;無法處理不規則分佈的數據,只能發現邊界是水平或垂直的簇,而不能檢測到斜邊界;維數災難,在處理高維數據時,網格單元的數目會隨着屬性維數的增長而成指數級增長。這種算法效率的提高是以聚類結果的精確性爲代價的。經常與基於密度的算法結合使用。
  • 基於模型的聚類算法
    基於模型的聚類算法試圖優化給定的數據和某些數學模型之間的適應性的。該方法給每一個簇假定了一個模型,然後尋找數據對給定模型的最佳擬合。假定的模型可能是代表數據對象在空間分佈情況的密度函數或者其他函數。其中,以基於概率模型的方法居多,同一“類”的數據屬於同一種概率分佈,即假設數據是根據潛在的概率分佈生成的,最典型、也最常用的方法就是高斯混合模型(GMM,Gaussian Mixture Models)。
    優點:對“類”的劃分不那麼“堅硬”,而是以概率形式表現,每一類的特徵也可以用參數來表達。
    缺點:執行效率不高,特別是服從的概率分佈很多但每個數據量很少的時候。
3. 聚類分析時常見的基本問題
  • 數據標準化
    在進行聚類分析之前,爲了消除聚類變量值數量級上的差異,通常需要先對數據進行標準化,常用的標準化方法有:
    在這裏插入圖片描述
  • 樣本親疏程度的測量
    樣本若有k個變量,則可以將樣本看成是一個k維空間的一個點,樣本和樣本之間的距離就是k維空間點和點之間的距離,這反映了樣本之間的親疏程度。聚類時,距離相近的樣本屬於一個類,距離遠的樣本屬於不同類。常用的親疏度度量方法有:

(1)歐氏距離(Euclidean Distance)
兩個樣本之間的歐氏距離是樣本各個變量值之差的平方和的平方根,計算公式爲
在這裏插入圖片描述
其中樣本x=(x1,x2,...,xn)y=(y1,y2,...,yn)x=(x_1,x_2,...,x_n),y=(y_1,y_2,...,y_n) 。使用前一般需要將數據標準化,距離越大,差異度越大。

(2)歐氏距離平方(Squared Euclidean Distance)
兩個樣本之間的歐氏距離平方是各樣本每個變量值之差的平方和,計算公式爲在這裏插入圖片描述
(3)切比雪夫距離(Chebychev Distance )
兩個樣本之間的切比雪夫距離是各樣本所有變量值之差絕對值中的最大值,計算公式爲 在這裏插入圖片描述
(4)絕對值距離( Block Distance )
兩個樣本之間的絕對值距離是各樣本所有變量值之差絕對值的總和,計算公式爲
在這裏插入圖片描述
(5)明科夫斯基距離(Minkowski Distance )
兩個樣本之間的Minkowski距離是各樣本所有變量值之差絕對值的p次方的總和,再求p次方根。計算公式爲在這裏插入圖片描述
(6)餘弦相似度
餘弦相似度用向量空間中兩個向量夾角的餘弦值作爲衡量兩個樣本間差異的大小。餘弦值越接近1,就表明夾角越接近0度,也就是兩個向量越相似,這就叫"餘弦相似性"。
在這裏插入圖片描述
通過上述介紹,相信對聚類分析已經有了初步瞭解,即什麼是聚類分析、在什麼場景會用到聚類分析、有哪些常用的聚類分析算法,以及樣本相似度計算。接下來可能比較關心聚類算法是如何將一堆看似沒有規律的數據點聚成幾個簇的,後面會陸續介紹幾種常用的聚類方法:K-means聚類、K-Medoids聚類、層次聚類、有序樣本聚類…

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章