K-Means聚類算法數(shù)據(jù)分析

時(shí)間:2022-08-16 03:07:43

導(dǎo)語:K-Means聚類算法數(shù)據(jù)分析一文來源于網(wǎng)友上傳,不代表本站觀點(diǎn),若需要原創(chuàng)文章可咨詢客服老師,歡迎參考。

K-Means聚類算法數(shù)據(jù)分析

摘要:k-means算法是無監(jiān)督學(xué)習(xí)中經(jīng)典的算法之一,通過組間的相異性規(guī)則把不同事物劃分為若干類,使各類之間的數(shù)據(jù)最為相似,不同類數(shù)據(jù)相異性盡可能最大化。本文通過K-means聚類算法分析某學(xué)校大學(xué)生期末大學(xué)信息技術(shù)基礎(chǔ)和C語言程序設(shè)計(jì)的成績,通過數(shù)據(jù)分析表明想要提高學(xué)生的整體成績,需要在C語言程序設(shè)計(jì)上付出更大的努力。

關(guān)鍵詞:K-means;數(shù)據(jù)分析;機(jī)器學(xué)習(xí)

1概述

機(jī)器學(xué)習(xí)中有兩類大問題:一個(gè)是聚類,另一個(gè)是分類。聚類是統(tǒng)計(jì)學(xué)的概念,屬于非監(jiān)督機(jī)器學(xué)習(xí)(unsupervisedlearning),應(yīng)用中數(shù)據(jù)挖掘,數(shù)據(jù)分析等領(lǐng)域,根據(jù)數(shù)據(jù)不同特征,將其劃分為不同的數(shù)據(jù)類,屬于一種無監(jiān)督學(xué)習(xí)方法。它的目的是使得屬于同一類別個(gè)體之間的密度盡可能的高,而不同類別個(gè)體間的密度盡可能的低[1]。分類是用已知的結(jié)果類別訓(xùn)練數(shù)據(jù),對預(yù)測數(shù)據(jù)進(jìn)行預(yù)測分類,屬于有監(jiān)督學(xué)習(xí)(supervisedlearning),常見的算法如邏輯回歸、支持向量機(jī)、深度學(xué)習(xí)等。聚類也是對數(shù)據(jù)進(jìn)行歸類,不過聚類算法的訓(xùn)練數(shù)據(jù)只有輸入,事先并不清楚數(shù)據(jù)的類別,通過特征的相似性對文本進(jìn)行無監(jiān)督的學(xué)習(xí)分類。聚類試圖將數(shù)據(jù)集中的樣本劃分為若干個(gè)通常不相交的子集,每個(gè)子集稱為一個(gè)簇(cluster)[2]。K-means屬于經(jīng)典聚類算法,根據(jù)樣本間的距離或者相異性進(jìn)行聚類,把特征相似的樣本歸為一類,相異的樣本歸為不同的簇。

2理論基礎(chǔ)

K-Means算法是從訓(xùn)練集D={x1,x2,…,xn}中選取K個(gè)樣本作為初始聚類中心c=c1,c2,…,ck,計(jì)算數(shù)據(jù)集中每個(gè)樣本xi到k個(gè)樣本初始中心點(diǎn)的距離,并把每個(gè)樣本劃分到離它最近的中心點(diǎn)的類中;每個(gè)簇類別βj,重新計(jì)算該簇所有樣本的質(zhì)心βj=1|cj|i∈cjΣxj,重復(fù)以上兩步,迭代更新直到每類質(zhì)心的變化小于閾值或者達(dá)到最大迭代次數(shù)?;静襟E為選擇數(shù)據(jù)中心,計(jì)算距離,分簇,重新選擇數(shù)據(jù)的質(zhì)心,重復(fù),直到數(shù)據(jù)收斂或達(dá)到最大迭代次數(shù)。該算法不能保證收斂到全局最優(yōu)。選擇訓(xùn)練過程的偽代碼如下:訓(xùn)練數(shù)據(jù)n個(gè)m維的數(shù)據(jù),隨機(jī)生成初始化聚類中心k個(gè)m維的點(diǎn)。While(t)t為迭代次數(shù)Foriinrange(n+1):#n為樣本點(diǎn)個(gè)數(shù)。Forjinrange(k+1):#k為簇的數(shù)目。Foriinrange(k+1):#計(jì)算樣本i到每個(gè)簇質(zhì)點(diǎn)j的距離。找出屬于這個(gè)簇中的所有數(shù)據(jù)點(diǎn),計(jì)算這類的質(zhì)心。重復(fù)以上步驟,直到每類質(zhì)心變化小于設(shè)定的閾值或者達(dá)到最大的迭代次數(shù)。設(shè)置最大特征數(shù),設(shè)置分類的組K值,訓(xùn)練特征數(shù)據(jù)進(jìn)行數(shù)據(jù)分析。本文將數(shù)據(jù)過濾清洗,去除停用詞轉(zhuǎn)化為向量模型,使用TF-IDF算法對詞頻進(jìn)行權(quán)重計(jì)算,TF是詞頻,IDF是逆文檔頻率,TF-IDF反應(yīng)了一個(gè)詞在文本中的重要性它的值是TF×IDF。使用Python中的sklearn模塊的TfidfTransformer、CountVectorizer方法計(jì)算TF-IDF值,轉(zhuǎn)化為空間向量模型,選用K-means聚類算法對數(shù)據(jù)進(jìn)行挖掘與分析。

3實(shí)驗(yàn)結(jié)果與分析

本文選擇新疆科技學(xué)院某專業(yè)期末作為分析對象,選取大學(xué)信息技術(shù)基礎(chǔ)和C語言程序設(shè)計(jì)成績作為實(shí)驗(yàn)數(shù)據(jù)。利用Python聚類模塊K-means構(gòu)建聚類模型并實(shí)例化,設(shè)置分類K=5值。其中K值選取直接影響K-means算法的準(zhǔn)確性,選取K值常見的方法有手肘法、Gapstatistic方法。下一步訓(xùn)練特征數(shù)據(jù),查看聚類結(jié)果labels,對數(shù)據(jù)進(jìn)行聚類分析,部分代碼如下。importnumpyasnpimportmatplotlib.pyplotaspltfromsklearn.clusterimportKMeansplt.scatter(x,y)size=len(x)X=[]foriinrange(size):m=[]m.append(x[i])m.append(y[i])X.append(m)X=np.array(X)plt.scatter(x,y)plt.xlabel("大學(xué)信息技術(shù)基礎(chǔ)")plt.ylabel("C語言程序設(shè)計(jì)")plt.show()kmeans=KMeans(n_clusters=5)#n_clusters:簇的數(shù)量。kmeans.fit(X)print("質(zhì)心:",kmeans.cluster_centers_)#獲取聚類后的質(zhì)心。print("標(biāo)簽:",kmeans.labels_)#獲取每個(gè)樣本所屬的簇。print("SSE:",kmeans.inertia_)#獲取SSE(簇慣性)。print("迭代次數(shù):",kmeans.n_iter_)#獲取迭代次數(shù)。print("分值:",kmeans.score(X))#聚類的分值。color=np.array(["r","g","b","purple","orange"])center=model.cluster_centers_#質(zhì)心label=kmeans.labels_plt.scatter(center[:,0],center[:,1],marker="+",s=200c=color)plt.scatter(x,y,c=color[label])plt.xlabel("大學(xué)信息技術(shù)基礎(chǔ)")plt.ylabel("C語言程序設(shè)計(jì)")plt.title(f"迭代次數(shù):{kmeans.n_iter_}")

4結(jié)論與不足

通過對數(shù)據(jù)聚類分析表明成績可以大致分為4類,其中大學(xué)信息技術(shù)基礎(chǔ)學(xué)生成績較好,C語言程序設(shè)計(jì)對學(xué)生有一定難度,想要提高總體成績,需要重點(diǎn)放到在C語言程序設(shè)計(jì)這門課上,建議優(yōu)化教學(xué)設(shè)計(jì),采取任務(wù)驅(qū)動(dòng)式教學(xué),分層次因材施教,培養(yǎng)好學(xué)生的計(jì)算思維能力,為后面的專業(yè)課打好基礎(chǔ)。K-means具有實(shí)現(xiàn)簡單,應(yīng)用廣泛等優(yōu)點(diǎn),但由于需要指定K值簇,直接影響分類的準(zhǔn)確性,聚類結(jié)果可能會(huì)收斂到局部最小值。對于不規(guī)則形狀的數(shù)據(jù)效果差。在現(xiàn)實(shí)生活中,簇并不總是均勻分布的,并且特征的權(quán)重很少相等。本文對期末成績數(shù)據(jù)進(jìn)行聚類分析是cluser設(shè)置成5,有一定的滿目性,通過迭代9次各組數(shù)據(jù)達(dá)到收斂。下一步要提高數(shù)據(jù)集的數(shù)量,選擇學(xué)生所有的成績數(shù)據(jù),合理選擇K值,高維映射等,優(yōu)化K-means算法,更客觀地進(jìn)行數(shù)據(jù)分析。

參考文獻(xiàn)

[1]孫吉貴,劉杰,趙連宇.聚類算法研究[J].軟件學(xué)報(bào),2008(1):48-61.

[2]周志華.機(jī)器學(xué)習(xí)[M].北京:清華大學(xué)出版社,2017:197-198.

作者:邵小青 賈鈺峰 章蓬偉 丁娟 單位:新疆科技學(xué)院信息科學(xué)與工程學(xué)院