一文讀懂如何對混合型資料做聚類分析!
總的來說,對無監督資料進行聚類並非易事。現如今的資料處理和探索無法準確的測量資料。這也意味著我們對資料的處理和探索變得愈發困難。
此外,關於在無監督學習的入門課程中,對拿來討論的理想的案例,k-means教程,也只適用於數值特性。
在這篇文章中,作者將通過R語言進行非監督分類訓練。
-
第一部分包括方法論:作者正在討論使用距離的數學概念來衡量個體間相似性的問題。然後介紹了PAM叢集演算法(圍繞medoids進行分割)以及選擇最佳叢集數(輪廓係數)的方法。
-
在第二部分中,作者將使用uci機器學習資料庫中提供的銀行營銷資料集和Rtsne軟體包中的一些函式來說明該方法。該資料集與葡萄牙某銀行機構的電話營銷活動相關。我們會把這些資料用於對監督學習情況的討論。
第一部分:方法論
如何測量相似性
(資料科學家作用在於在對未知資料進行叢集時,我們不能盲人摸象,只看到事物的一面。他們主張與資料產生一定的"距離",以便更全面地瞭解它們。)
距離是對個體之間相隔多遠的數值度量,也就是說,用於測量個體之間的接近度或相似度的度量。面對眾多的度量,作者必須要介紹的是 Gower distance (1971)。
Gower距離被用於計算個體之間部分差異的平均值。(Gower距離的範圍為[0 1]。)
其中表示不相似的(d_ij ^ f)計算取決於被評估的變數的型別。這意味著每個特性都應該有一個固定的標準,並且兩個個體之間的距離是所有特性距離的平均值。
· 對於數值特性f,部分相異性是:觀察的絕對差異x_i和x_j之間的比率,從所有個體觀察到的最大範圍:d_ij ^ f = | x_i - x_j | / |(max_N(x) - min_N(x))| ,N是資料集中的個體數量。
數值特性的部分差異度計算(R_f =觀察到的最大範圍)
· 對於定性特性f,僅當觀測值y_i和y_j具有不同的值時,部分相異度等於1。否則為0。
注意:Gower距離可使用R叢集包中的daisy()函式。首先自動標準化特性(即重新縮放以落在[0 1]範圍內)。
聚類演算法:圍繞MEDOIDS(PAM)進行分割槽
Gower距離與k-medoids演算法非常相似。k-medoid是一種經典的聚類技術,它將n個物件的資料集叢集變為已知的k個叢集。
與k-means演算法非常相似,PAM具有以下特性:
· 優點:與k-means(由於使用距離的屬性)相比,它更直觀,對噪聲和異常值更敏感,並且它為每個叢集產生一個"典型個體"。
· 缺點:它耗費時間,屬於計算機密集型(執行時和記憶體是二次的)。
評估資料叢集內的一致性
除非你有一個很好的先驗原理來強制特定數量的叢集k,否則你可能會向計算機請求基於統計資料的推薦。存在若干方法來限定所選的叢集的相關性。在第二部分中,我們使用了輪廓係數。
解釋
基本上有兩種方法可以調查這種叢集實踐的結果,以便得出一些專業的解釋。
1.每個叢集基本都要使用R中的summary()函式。
2.學會利用t-SNE,它是一種用於降維的技術,其特別適合於高維資料集的視覺化。
我們在用例中介紹了這兩種情況(第二部分)。讓我們應用和說明!
第二部分:使用案例
在此用例中,我們將嘗試根據以下特性對銀行客戶進行分組:
· 年齡(數字)
· 工作型別(類別):'行政'、'藍領'、'企業家'、'女傭'、'管理'、'退休'、'自僱'、'服務'、'學生'、'技師'、'失業'、'未知'
· 婚姻狀況(類別):'離婚'、'已婚'、'單身'、'未知'
· 教育(類別):'初級'、'中級'、'大專'、'未知'
· 違約:有過違約記錄嗎?(類別):'沒有'、'有'、'未知'
· 餘額(數字):年平均餘額,以歐元為單位
· 住房:有住房貸款嗎?(類別):'沒有'、'有'、'未知'
根據Gower距離劃分的相似和不同的客戶:
在商業環境中,我們通常會搜尋一些有意義且易於記憶的叢集,即最多2到8個叢集。輪廓圖有助於我們確定最佳選擇。
7具有最高的輪廓寬度。但是5更簡單,我們選擇k = 5
解釋
每個叢集的摘要
在這裡,可以嘗試為叢集內的客戶派生一些常見模式。例如,叢集1由"管理x三級x無違約x無住房"客戶組成,叢集2由"藍領x二級x無違約x住房"客戶等組成。
較低維度空間中的視覺化
儘管不是很完美(尤其是叢集3),但顏色大多位於相似區域,這證實了劃分的相關性。
結論
本文回顧了作者在嘗試對混合型別無監督資料集執行聚類演算法時的想法。作者認為它可以為其他資料科學家帶來一些有意思的想法,從而實現共享。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31509949/viewspace-2158397/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 一文讀懂層次聚類(Python程式碼)聚類Python
- 一文讀懂如何實施資料治理?
- 一文讀懂遊戲資料分析指標的應用遊戲指標
- 【Flutter】一文讀懂混入類MixinFlutter
- 演算法金 | 一文讀懂K均值(K-Means)聚類演算法演算法聚類
- 一文讀懂資料庫發展史資料庫
- 一文讀懂資料戰略及如何賦能業務成功
- 一文讀懂Python中的對映Python
- 一文讀懂SpringMVC中的資料繫結SpringMVC
- 一文讀懂大資料實時計算大資料
- 聚類分析聚類
- 一文讀懂選擇資料湖還是資料倉儲
- 一文讀懂 OceanBase 資料庫的SLog日誌資料庫
- 一文讀懂資料庫70年發展史資料庫
- 一文讀懂mavenMaven
- 一文讀懂ServletServlet
- 一文讀懂Smartbi的自然語言分析(NLA)
- 生死時刻:一文讀懂Facebook資料洩密始末
- 一文讀懂資料平臺的發展歷史
- 超級乾貨 :一文讀懂資料視覺化視覺化
- 如何用python做資料分析Python
- 資料變金礦:一文讀懂序列模型(附用例)模型
- OceanBase 原始碼解讀(七):一文讀懂資料庫索引實現原理原始碼資料庫索引
- EM 演算法-對鳶尾花資料進行聚類演算法聚類
- 一文讀懂特徵工程特徵工程
- 一文讀懂 NPM 版本NPM
- 一文讀懂 Apache PulsarApache
- 一文讀懂Ka/Ks
- 一文讀懂 Data Mesh
- 一文讀懂微核心
- 一文讀懂eBPF/XDPeBPF
- 一文讀懂丨國產化大背景下,企業如何穩固資料底座?
- 非完整資料聚類初探聚類
- 資料探勘-層次聚類聚類
- 聚類分析-案例:客戶特徵的聚類與探索性分析聚類特徵
- 一文讀懂資料平臺建設的演進歷程
- 一文讀懂資料鑽取-騰訊雲開發者社群
- 一文讀懂:本地資料湖丨資料倉儲丨雲資料湖的利與弊