MATLAB用改進(jìn)K-Means(K-均值)聚類算法數(shù)據(jù)挖掘高校學(xué)生的期末考試成績|附代碼數(shù)據(jù)
全文鏈接:http://tecdat.cn/?p=30832
最近我們被客戶要求撰寫關(guān)于K-Means(K-均值)聚類算法的研究報告,包括一些圖形和統(tǒng)計輸出。
本文首先闡明了聚類算法的基本概念,介紹了幾種比較典型的聚類算法,然后重點闡述了K-均值算法的基本思想,對K-均值算法的優(yōu)缺點做了分析,回顧了對K-均值改進(jìn)方法的文獻(xiàn),最后在Matlab中應(yīng)用了改進(jìn)的K-均值算法對數(shù)據(jù)進(jìn)行了分析
常用的聚類算法
常用的聚類算法有:K-MEANS、K-MEDOIDS、BIRCH、CURE、DBSCAN、STING。
主要聚類算法分類
類別包括的主要算法劃分的方法K-MEANS算法(K平均)、K-MEDOIDS算法(K中心點)、CLARANS算法(基于選擇的算法)層次的方法BIRCH算法(平衡迭代規(guī)約和聚類)、CURE算法(代表點聚類)、CHAMELEON算法(動態(tài)模型)基于密度的方法DBSCAN算法(基于高密度連接區(qū)域)、DENCLUE算法(密度分布函數(shù))、OPTICS算法(對象排序識別)基于網(wǎng)絡(luò)的方法STING算法(統(tǒng)計信息網(wǎng)絡(luò))、CLIQUE算法(聚類高維空間)、WAVE-CLUSTER算法(小波變換)基于模型的方法統(tǒng)計學(xué)方法、神經(jīng)網(wǎng)絡(luò)方法
聚類算法的性能比較
聚類算法適合數(shù)據(jù)類型算法效率發(fā)現(xiàn)的聚類形狀能否處理大數(shù)據(jù)集是否受初始聚類中心影響對異常數(shù)據(jù)敏感性對輸入數(shù)據(jù)順序敏感性K-MEANS數(shù)值型較高凸形或球形能是非常敏感不敏感K-MEDOIDS數(shù)值型一般凸形或球形否否不敏感不敏感BIRCH數(shù)值型高凸形或球形能否不敏感不太敏感CURE數(shù)值型較高任意形狀能否不敏感不太敏感DBSCAN數(shù)值型一般任意形狀能是敏感敏感STING數(shù)值型高任意形狀能否一般不敏感
?
由表可得到以下結(jié)論:1)大部分常用聚類算法只適合處理數(shù)值型數(shù)據(jù);2)若考慮算法效率、初始聚類中心影響性和對異常數(shù)據(jù)敏感性,其中BIRCH算法、CURE算法以及STING算法能得到較好的結(jié)果;3)CURE算法、DBSCAN算法以及STING算法能發(fā)現(xiàn)任意形狀的聚類。
改進(jìn)聚類的主要步驟
聚類的主要步驟由以下幾個方面組成:
(1)數(shù)據(jù)預(yù)處理:根據(jù)聚類分析的要求,對輸入數(shù)據(jù)集進(jìn)行特征標(biāo)準(zhǔn)化及降維等操作。
(2)特征選擇及特征提?。簩⒂蓴?shù)據(jù)預(yù)處理過程得到的最初始的特征中的最有效的特征選擇出來,并將選取出來的最有效特征存放于特定的向量中,然后對這些有效特征進(jìn)行相應(yīng)的轉(zhuǎn)換,得到新的有效突出特征。
(3)聚類(分組):根據(jù)需要選擇合適的相似性度量函數(shù)對數(shù)據(jù)集中的數(shù)據(jù)對象相似程度進(jìn)行度量,以此進(jìn)行數(shù)據(jù)對象的聚類(分組)。
(4)對聚類結(jié)果進(jìn)行評估:依據(jù)特定的評價標(biāo)準(zhǔn)對聚類的結(jié)果進(jìn)行有效評估,評估聚類結(jié)果的優(yōu)劣,以此對聚類分析過程進(jìn)行進(jìn)一步的改進(jìn)和完善。
聚類的主要步驟可以用圖來表示。

點擊標(biāo)題查閱往期內(nèi)容

Python用KShape對時間序列進(jìn)行聚類和肘方法確定最優(yōu)聚類數(shù)k可視化

左右滑動查看更多

01

02

03

04

改進(jìn)聚類分析中的數(shù)據(jù)類型及聚類準(zhǔn)則函數(shù)
聚類算法的數(shù)據(jù)結(jié)構(gòu):數(shù)據(jù)矩陣、相異度矩陣。
相異度矩陣:相異度矩陣用來存儲的是實體之間的差異性,n個實體的相異度矩陣表示為 n×n維的矩陣,用d(A,B)來表示實體A與實體B的相異性,一般來講,是一種量化的表示方式,則含有n個實體的集合X={x1,x2,…,xn}的相異度矩陣表示如下:

d(i,j)表示對象i和j之間的相異性的量化表示,通常它是一個非負(fù)的數(shù)值,當(dāng)對象i和j 越相似或接近,其值越接近0;兩個對象越不同,其值越大。并且有d(i,j)=d(j,i),d(i,i)=0。目前最常用的的相似性度量函數(shù)為歐式距離。
在MATLAB中應(yīng)用K-MEANS算法
數(shù)據(jù)的預(yù)處理
本研究的數(shù)據(jù)是某高校學(xué)生的期末考試成績,成績表包括以下字段:x1為“電子商務(wù)”科目成績,x2為“C語言概論”科目基礎(chǔ)知識。其中,數(shù)據(jù)已經(jīng)經(jīng)過標(biāo)準(zhǔn)化和中心化的預(yù)處理:
(1)補充缺失值。對退學(xué)、轉(zhuǎn)學(xué)、休學(xué)、缺考造成的數(shù)據(jù)缺失采用平均值法,以該科目的平均分?jǐn)?shù)填充。
(2)規(guī)范化數(shù)據(jù)。運用最小-最大規(guī)范化方法對數(shù)據(jù)進(jìn)行規(guī)范化處理,將數(shù)據(jù)映射到[0,1]區(qū)間,計算公式如下:

過程及結(jié)果分析
(1)讀取數(shù)據(jù)
選擇MATLAB的Data.mat,通過ImpoMatlabt Files,將所有數(shù)據(jù)讀入。
load('data1.mat')k = 6;figure;%數(shù)據(jù)標(biāo)準(zhǔn)化data = zeros(size(data1));[data(:,1) me(1) va(1)] = dataNormalization(data1(:,1))
(2)K-Means 模型設(shè)置
1)NumbeRs of clusteR:制定生成的聚類數(shù)目,這里設(shè)置為3.
2)定義了分割數(shù)據(jù)集,選擇訓(xùn)練數(shù)據(jù)集作為建模數(shù)據(jù)集,并利用測試數(shù)據(jù)集對模型進(jìn)行評價。
[idx c] = kmeansOfMy(data,k);c = dataRecovery(c,me,va);%畫出各個區(qū)域中的散點count = 0;for i = 1 : k ? ?if i == 1 ? ? ? ? plot(data1(idx == i,1),data1(idx == 1,2),'r*'); ? ?elseif i == 2 ? ? ? ? plot(data1(idx == i,1),data1(idx == i,2),'g*'); ? ?elseif i == 3

(3)執(zhí)行和輸出
設(shè)置完成后,選中Execute 按鈕,即可得到改進(jìn)聚類執(zhí)行并觀察到結(jié)果。
%kOfVertex = randKOfVertex(k);kOfVertex = electedInitialCentroid(k);for i = 1 : size(data,1) ? ? ? ?index(i) = minOfDistans(i,kOfVertex);
可以以圖表的形式來顯示模型的統(tǒng)計信息以及各個屬性在各簇中的分布信息,結(jié)果如下圖所示。

(4)聚類結(jié)果
結(jié)果表明:簇1中的學(xué)生都是考試成績中等的,簇2中的學(xué)生考試成績較高,簇2中的學(xué)生考試成績較差,可見,大部分學(xué)生的期末考試成績處于中等水平;各變量在各簇中的顯著程度均較大,表明學(xué)生對各科目的學(xué)習(xí)分化程度較高,差異顯著。
?
參考文獻(xiàn)
[1] 賀玲, 吳玲達(dá), 蔡益朝. 數(shù)據(jù)挖掘中的聚類算法綜述[J]. 計算機(jī)應(yīng)用研究, 2007(1).
[2] 蔣帥. K-均值聚類算法研究[D]. 陜西師范大學(xué), 2010.
[3] 周涓, 熊忠陽, 張玉芳, 等. 基于最大最小距離法的多中心聚類算法[J]. 計算機(jī)應(yīng)用, 2006, 26(6).
[4] A.K.Jain, MATLAB.C.Dubes. AlgoMatlabithms foMatlab ClusteMatlabing Data [J]. PMatlabentice-Hall Advanced MATLABefeMatlabence SeMatlabies, 1988(1).


點擊文末?“閱讀原文”
獲取全文完整代碼數(shù)據(jù)資料。
本文選自《MATLAB數(shù)據(jù)挖掘用改進(jìn)的K-Means(K-均值)聚類算法分析高校學(xué)生的期末考試成績數(shù)據(jù)》。
點擊標(biāo)題查閱往期內(nèi)容
R語言主成分PCA、因子分析、聚類對地區(qū)經(jīng)濟(jì)研究分析重慶市經(jīng)濟(jì)指標(biāo)
數(shù)據(jù)分享|R語言用主成分PCA、?邏輯回歸、決策樹、隨機(jī)森林分析心臟病數(shù)據(jù)并高維可視化
R語言邏輯回歸logistic模型分析泰坦尼克titanic數(shù)據(jù)集預(yù)測生還情況R語言是否對二分連續(xù)變量執(zhí)行邏輯回歸
R語言用lme4多層次(混合效應(yīng))廣義線性模型(GLM),邏輯回歸分析教育留級調(diào)查數(shù)據(jù)
R語言隨機(jī)森林RandomForest、邏輯回歸Logisitc預(yù)測心臟病數(shù)據(jù)和可視化分析
R語言基于Bagging分類的邏輯回歸(Logistic Regression)、決策樹、森林分析心臟病患者
R語言邏輯回歸(Logistic回歸)模型分類預(yù)測病人冠心病風(fēng)險
R語言用局部加權(quán)回歸(Lowess)對logistic邏輯回歸診斷和殘差分析R語言用主成分PCA、?邏輯回歸、決策樹、隨機(jī)森林分析心臟病數(shù)據(jù)并高維可視化
R語言用線性模型進(jìn)行臭氧預(yù)測:加權(quán)泊松回歸,普通最小二乘,加權(quán)負(fù)二項式模型,多重插補缺失值R語言Bootstrap的嶺回歸和自適應(yīng)LASSO回歸可視化
R語言中回歸和分類模型選擇的性能指標(biāo)
R語言多元時間序列滾動預(yù)測:ARIMA、回歸、ARIMAX模型分析
R語言用lme4多層次(混合效應(yīng))廣義線性模型(GLM),邏輯回歸分析教育留級調(diào)查數(shù)據(jù)
R語言計量經(jīng)濟(jì)學(xué):虛擬變量(啞變量)在線性回歸模型中的應(yīng)用
R語言 線性混合效應(yīng)模型實戰(zhàn)案例
R語言混合效應(yīng)邏輯回歸(mixed effects logistic)模型分析肺癌數(shù)據(jù)
R語言如何用潛類別混合效應(yīng)模型(LCMM)分析抑郁癥狀
R語言基于copula的貝葉斯分層混合模型的診斷準(zhǔn)確性研究
R語言建立和可視化混合效應(yīng)模型mixed effect model
R語言LME4混合效應(yīng)模型研究教師的受歡迎程度
R語言 線性混合效應(yīng)模型實戰(zhàn)案例
R語言用Rshiny探索lme4廣義線性混合模型(GLMM)和線性混合模型(LMM)
R語言基于copula的貝葉斯分層混合模型的診斷準(zhǔn)確性研究
R語言如何解決線性混合模型中畸形擬合(Singular fit)的問題
基于R語言的lmer混合線性回歸模型
R語言用WinBUGS 軟件對學(xué)術(shù)能力測驗建立層次(分層)貝葉斯模型
R語言分層線性模型案例
R語言用WinBUGS 軟件對學(xué)術(shù)能力測驗(SAT)建立分層模型
使用SAS,Stata,HLM,R,SPSS和Mplus的分層線性模型HLM
R語言用WinBUGS 軟件對學(xué)術(shù)能力測驗建立層次(分層)貝葉斯模型
SPSS中的多層(等級)線性模型Multilevel linear models研究整容手術(shù)數(shù)據(jù)
用SPSS估計HLM多層(層次)線性模型模型R語言高維數(shù)據(jù)的主成分pca、 t-SNE算法降維與可視化分析案例報告
R語言懲罰logistic邏輯回歸(LASSO,嶺回歸)高維變量選擇的分類模型案例
R語言有RStan的多維驗證性因子分析(CFA)
主成分分析(PCA)原理及R語言實現(xiàn)及分析實例
R語言無監(jiān)督學(xué)習(xí):PCA主成分分析可視化
R語言使用Metropolis- Hasting抽樣算法進(jìn)行邏輯回歸
R語言多元Logistic邏輯回歸 應(yīng)用案例
R語言自適應(yīng)LASSO 多項式回歸、二元邏輯回歸和嶺回歸應(yīng)用分析
R語言用邏輯回歸、決策樹和隨機(jī)森林對信貸數(shù)據(jù)集進(jìn)行分類預(yù)測
R語言基于樹的方法:決策樹,隨機(jī)森林,Bagging,增強(qiáng)樹
spss modeler用決策樹神經(jīng)網(wǎng)絡(luò)預(yù)測ST的股票
R語言中自編基尼系數(shù)的CART回歸決策樹的實現(xiàn)
python在Scikit-learn中用決策樹和隨機(jī)森林預(yù)測NBA獲勝者
matlab使用分位數(shù)隨機(jī)森林(QRF)回歸樹檢測異常值
基于隨機(jī)森林、svm、CNN機(jī)器學(xué)習(xí)的風(fēng)控欺詐識別模型
R語言懲罰logistic邏輯回歸(LASSO,嶺回歸)高維變量選擇的分類模型案例
R語言用標(biāo)準(zhǔn)最小二乘OLS,廣義相加模型GAM?,樣條函數(shù)進(jìn)行邏輯回歸LOGISTIC分