数学建模学习笔记(九)——聚类模型
文章目錄
- 一、聚類綜述
 - 二、主要用到的聚類算法
 - 三、K-means聚類算法
 - 四、K-means++算法
 - 五、對于K-means算法和K-means算法的討論
 - 六、系統(tǒng)(層次)聚類算法
 - 七、DBSCAN算法
 - 八、總結(jié)
 
一、聚類綜述
聚類的主要目的就是將樣本劃分為由類似的對象組成的多個類的過程。進(jìn)行聚類后,我們可以在每個類中使用統(tǒng)計模型進(jìn)行數(shù)據(jù)分析或者在不同類之間進(jìn)行相關(guān)性探究。
聚類模型和分類模型的區(qū)別:
二、主要用到的聚類算法
三、K-means聚類算法
算法步驟:
如下面的流程圖:
 
 K-means算法的優(yōu)點:
 (1)算法簡單便捷;
 (2)對于大數(shù)據(jù)集,該算法效率較高;
 K-mean算法的缺點:
 (1)必須實現(xiàn)給出需要分得的類的數(shù)目 KKK;
 (2)對初始值非常敏感(初始分類中心不同,其分得的類也不同);
 (3)對于孤立點的數(shù)據(jù)比較敏感;
因此,衍生出了K-means++算法來解決K-means算法帶來的問題。
四、K-means++算法
算法步驟:(對聚類中心的選擇進(jìn)行了優(yōu)化)
 (1)隨機(jī)選取一個樣本作為第一個聚類中心;
 (2)計算每個樣本與最近的一個聚類中心的距離,這個值越大,表示被選取作為聚類中心的概率越大;最后,用輪盤法選取下一個聚類中心。
 (3)重復(fù)第二步,直到選出 KKK 個聚類中心。
 這些過程可以直接在SPSS中實現(xiàn),并且SPSS使用的是K-means++算法。
五、對于K-means算法和K-means算法的討論
(1)確定 KKK 的值
 聚類的目的就是將樣本數(shù)據(jù)分為 KKK 個可以解釋其意義的類。因此最好的方法就是去幾個不同的 KKK 值,選取其中最好解釋的那個 KKK 值即可。
 (2)量綱對于聚類的影響
 為了排除量綱對于聚類的影響,可以首先進(jìn)行去量綱處理(標(biāo)準(zhǔn)化)。標(biāo)準(zhǔn)化公式:zi=xi?xˉσxz_i = \frac{x_i - \bar{x}}{\sigma_x}zi?=σx?xi??xˉ? 其中,xˉ\bar{x}xˉ 是樣本的均值,σx\sigma_xσx? 是樣本的標(biāo)準(zhǔn)差。
六、系統(tǒng)(層次)聚類算法
計算兩類數(shù)據(jù)點之間的距離,對最為接近的兩類數(shù)據(jù)進(jìn)行合并,反復(fù)進(jìn)行直到合成一類,最終生成聚類系譜圖。
算法流程圖如下:
 3. 解決問題
 可以在SPSS中調(diào)用命令,可得結(jié)果為:
 
 由圖可得,具體的聚類個數(shù)可以從圖中決定。
七、DBSCAN算法
指定半徑 EpsEpsEps 和 最小包圍的點的數(shù)目 MinPtsMinPtsMinPts;
指定初始點 AAA,以 AAA 為圓心,EpsEpsEps 為半徑作圓,在該圓內(nèi)有不少于 MinPtsMinPtsMinPts 個點,則具有這樣的特征的點是一個類;(注意:若有點在 AAA 圓內(nèi),但是以這個點作的圓不包圍 MinPtsMinPtsMinPts 個點,它是不屬于 AAA 類的哦~~~)
可以參考這個圖:
 
DBSCAN算法可以由Matlab實現(xiàn),可以去官網(wǎng)下載:https://ww2.mathworks.cn/matlabcentral/fileexchange/52905‐dbscan‐clustering‐algorithm
八、總結(jié)
建議:
(1)如果只有兩個指標(biāo),而且這兩個指標(biāo)作出的散點圖很有形狀,那么可以使用DBSCAN進(jìn)行聚類
(2)其他情況建議系統(tǒng)聚類(K-means算法可寫的東西太少)
如果有什么錯誤,請一定告訴我哈~~~
總結(jié)
以上是生活随笔為你收集整理的数学建模学习笔记(九)——聚类模型的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
                            
                        - 上一篇: 为什么总是封板又打开涨停_警惕!如果股票
 - 下一篇: 博弈论 —— python