貢獻:Prashanth Ashok
LinkedIn簡介:https://www.linkedin.com/in/prashanth-a-bb122425/
在研究數據科學時,我們必須定義識別監督數據和非監督數據的方法。這有助於我們適當地組織數據,並決定各種機器學習模型關注於業務目標。在開始討論K-Means模型之前,讓我們回顧一下無監督數據和的基礎知識R聚類.
無監督機器學習
在沒有目標變量可以預測的情況下,這種模型就變得非常必要。分析基於數據集中以前未檢測到的模式或未知的標簽,不需要太多人為幹預。該模型根據數據集中的幾個相似點對數據點進行分組或分類,允許根據某些模式進行預測。這是基於兩個機器學習模型,分別是:
- 聚類算法:通過根據變量特征組合數據點,幫助識別任何數據集中的未知模式。
- 關聯算法:幫助我們根據特征或變量之間的關係來關聯數據點。關聯算法在這篇博客中沒有被提及。
為了更好地理解K-Means,我們應該深入研究聚類算法的概念,如聚類、方差計算的度量和不同類型的聚類。
集群的類型和什麼是集群
聚類是將本質上高度不同的相似對象分組。為了更好地理解集群,我們需要區分的概念組間異質性而且群體內的同質性.這可以通過理解組之間數據點的方差和組內的方差來分解。組之間的方差(也稱為簇)是一個簇到另一個簇的點之間的距離。如果一個數據集形成了兩個聚類,聚類之間方差的統計計算將遵循以下規則:
組間平方和>組內平方和
單邊帶>量
為了更好地理解集群,下麵是一個圖形表示:
測量方差的方法:
歐氏距離
統計計算方法如下:
x1xpI和j是自變量嗎
我們取x1和y1之差的平方,使它們的值加起來不為0。
從形成類似集群的統計計算中得出的最終結論是,
當兩個聚類之間的歐氏距離很小時,說明聚類之間的特征本質上是相似的。
曼哈頓距離
曼哈頓距離計算是歐幾裏得距離計算的延伸。在這種情況下,我們不取平方項,而是取x1和y1之差的模數,而不是平方。
統計上,它可以描述為:
例如:如果我們有兩個點(x1, y1)和(x2, y2) =(5,4)和(1,1)
曼哈頓距離= |5-1|+|4-1|= 7
在歐氏距離計算的情況下:
歐氏距離=√[(5-1)^2+(4-1)^2]=5
切比雪夫距離
這種計算方法考慮了基於曼哈頓方法的所有距離的最大值。
這種方法也被稱為棋盤距離。
統計上表示為:
最大(|x1-x2|, |y1-y2|, |z1-z2|, ....)
一個完整的參考不同的距離度量,可用於計算:
標識符 | 類名 | arg遊戲 | 距離函數 |
“歐幾裏得” | 歐氏距離 | 根號(sum((x - y)^2)) | |
“曼哈頓” | 曼哈頓距離 | 和(|x - y|) | |
“切比雪夫” | 切比雪夫距離 | 最大值(|x - y|) | |
“閔可夫斯基” | MinkowskiDistance | p | 和(|x - y|^p)^(1/p) |
“wminkowski” | WMinkowskiDistance | p w | 求和(|w * (x - y)|^p)^(1/p) |
“seuclidean” | SEuclideanDistance | V | 根號(sum((x - y)^2 / V)) |
“mahalanobis” | MahalanobisDistance | V或VI | √((x - y) ' V^-1 (x - y) |
信息點:
的“Jaccard”當變量數據類型本質上是布爾型時,可以使用方差計算方法。
集群的類型
在本博客中,我們將討論K-Means類型的聚類,理解使用Python建模的先決條件和步驟。
k - means聚類
k的意思是什麼?
- 形成良好集群的非層級方法。
- 對於K-Means建模,需要在準備模型之前確定聚類的數量。
- 一旦模型運行,這些K值將由某些評估技術測量。
- k均值聚類廣泛應用於大型數據集的應用中。
K-means聚類是如何工作的?
數據的預處理
- 由於該算法基於從每個觀測到當前質心的距離計算,這是一個迭代過程,數據需要有適當的格式。
- 如果數據集有不同度量單位的變量,則應進行縮放(Scaling)過程,將所有變量合並為一個度量單位,以便進一步進行算法處理。
- 有2種縮放方法:Z縮放和Min-Max縮放
- Z擴展:
-
- 功能將被調整
- 是否具有標準正態分布的性質
- μ=0, σ=1
-
- 最小最大縮放:
- 數據被縮放到一個固定的範圍- 0到1。
- 擁有這個有界範圍的代價是——更小的標準偏差,這可以抑製異常值的影響
縮放時要記住的要點:
- 當列的方差很低時,使用Z縮放。
- 當列之間的差異很大時使用的最小最大縮放。
- 方差分析基於數據集的性質和與之相關的變量。
接下來的步驟是k均值算法
- 這個模型的第一步是指定K值。
- 基於這個K值,數據集被劃分為初始集群。
- 隨機質心從初始K個值分配到數據集,這些值將遠離原始觀測值。
- 然後,該模型計算集群中每個觀測點到隨機質心的距離。當距離值越小越接近隨機質心時,每個觀測結果都映射到質心上。就像這樣,對數據集中的所有觀測值進行計算,並適當地分配觀測值。歐幾裏得距離度量是計算從質心到觀測點的所有距離的默認度量。
- 一旦計算出距離,就會形成隨機簇。
- 基於這些隨機聚類,分配新質心的迭代過程可以形成新的聚類。這裏的方差是從質心計算到群集中的每一個觀測值。這一過程一直持續到組間異質性大於組內同質性,即SSB > SSW。
模型評價
輪廓分數:
- 這種方法又稱為間接模型評價技術
- 該模型有助於根據距離標準分析映射到各自簇的每個觀測結果的正確性。
Sil_Width分數= (b-a) / MAX(a,b)
在哪裏B =從隨機觀測點到鄰近星團的距離
A =從隨機觀測點到自身星團的距離
- 如果該值為-1 ~ +1範圍內的正數值,則表示該數據點的聚類映射正確。
- 一旦實現了這一點,我們就必須進入剪影分數。
- Silhouette Score是Sil_Width Score的平均值,基於數據集中所有觀察結果的計算
- 結論:
價值傾向於 | 結論 |
+1 | 形成的星團彼此遠離。 |
0 | 這些簇是不可分離的 |
-1 | 該模型未能形成集群 |
WSS圖(肘形圖):
- WSS Plot也被稱為“平方和內”是K- means算法下的另一種解決方案,它有助於確定K(簇數)的值。
- 用於繪製WSS圖的值將是簇中每個觀測到其質心的方差,相加得到一個值。
下麵用上述理論概念加以說明Python編程語言.
K-Means: Python分析
銀行品牌化
讓我們考慮銀行的數據集,並將銀行聚集到不同的段中。
為提升品牌價值提供戰略投入。
Python中遵循的步驟
1.數據收集和導入庫
導入必要的庫並讀取數據。
Pandas庫用來讀取數據並做一些基本的EDA。
導入matplotlib庫,可以用來繪製WSS曲線。
為進行K-Means建模,將函數導入“sklearn.cluster”圖書館
2.數據處理
將數據視為表,執行清理活動,如檢查拚寫、刪除空格和錯誤大小寫、從數據中刪除無效值等。
- 檢查導入數據的正確性頭()。同時,檢查和審閱數據集的形狀、數據類型使用的各個變量信息().
- 檢查數據集中重複的值。使用描述函數在數據集中檢測異常值。
- 我們觀察到數據集是正態分布的。然而,變量的單位是不同的。因此,在運行K-means算法之前,我們將對數據進行縮放。
3.數據預處理
在本節中,我們將討論使用Z-Scaling方法對K-Means算法的數據進行標準化的縮放過程。
使用標準標量函數,它是“sklearn”庫,用於擴展數據。
對除Bank變量外的所有變量運行標準標量函數。
有許多方法可以選擇矩陣格式的變量。使用“iloc”函數是其中一種方法。
方法選擇Bank變量之外的一組列“iloc”函數。
4.建模與績效衡量
通過分配隨機K值開始K- means建模過程。在輸出的基礎上,使用模型評估方法來了解該數據集的最佳聚類水平。
假設K的隨機值為2。檢查集群是否正常形成。
讓我們檢查群集2的Sum of Squares值。
Python中的Inertia_函數計算數據集中所有觀測值的平方和(WSS)距離,K值為2。
為了找出簇的最優水平,分析不同K值下的不同平方和值。
由上述WSS值可知,隨著K值的增大,WSS值減小。
為了找到最佳的集群,請記住以下幾點:
- 每個聚類的WSS值下降的速率-測量從聚類2開始的WSS值的差異,以理解理解數據的較大方差的聚類的下降指數。
- 要記住的最關鍵的一點是集群選擇,這將依賴於目標分析的業務目標。
觀察
在上麵的分析中,我們可以看到前4個簇中覆蓋的最大數據點解釋了數據基礎WSS值的最大方差。這是再次確認的,因為群集5的WSS值下降非常少。
我們使用WSS值來總結集群的數量,並繪製相同的圖。
從上麵的圖中,我們可以看到WSS值的下降是足夠大的,直到集群4。這表明大部分數據的方差可以用4類分類來解釋。
現在,使用剪影評分讓我們評估集群的形成。如前所述,值趨向於+1,表示這樣形成的集群是正確的。
通過以上分析,我們可以確認有4個聚類的Silhouette得分最高。
現在將最終的群集分類列表附加到原始數據中,對銀行進行群集分析。
5.集群分析
每個變量的平均值在單個集群中被考慮,以及向集群中有關銀行提出適當建議的頻率號。
建議
- 集群3中的銀行有較高的DD和提款,但存款較少。因此,它需要改善客戶的存款。有相當多的客戶正在訪問這些銀行。因此,他們可以向這些客戶推廣各種存款方案。
- 集群3的客戶似乎更喜歡通過DD支付,因為這些銀行記錄了最高的DD利率。銀行可以檢查DD是否被發送到其他銀行或同一家銀行,並可以為自己的銀行創建DD方案,以便客戶在這些銀行開立賬戶並使用DD支付方案。
- 喜歡DD支付的客戶可以去集群3(如果他們需要大空間,可以管理大量人群,可能有更多的基礎設施)或集群0(如果他們想要小空間,由於人群容納能力較低,可能可以進行快速交易)的銀行。
- 銀行的規模在容納大量客戶時並不重要,因為集群0雖然擁有最少的分行麵積,但每天進入銀行的人卻最多。因此,銀行不需要更多的投資,占用大量的土地空間。這可能意味著客戶全天都在訪問,而不是在一段時間內訪問一大群客戶。
- 集群2麵積大,取款和存款的比例幾乎相等。這些客戶中的大多數可能擁有儲蓄賬戶,因為與其他集群相比,提款和DD更少。訪問這些銀行的客戶也少於其他集群。這些銀行可以通過推出各種存款計劃來吸引更多的客戶,增加銀行存款。
- 存款也更少,而Cluster 1的提款要高得多。這些銀行還可以考慮推出新的存款計劃。
- 群集0和群集1的銀行需要關注其基礎設施和銀行設施,因為其麵積小於群集3和群集4,而每天的行人最多。這些銀行還可以尋找向客戶交叉銷售產品的機會。
如果你想從事數據科學方麵的職業,請加入Great Learningbeplay2018官网在線數據科學課程.