亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        K-means算法中文文獻聚類的Python實現(xiàn)

        2019-10-08 11:55:52趙謙益
        軟件 2019年8期
        關(guān)鍵詞:means算法評價指標(biāo)

        摘 ?要: 聚類是對文本信息進行有效組織、摘要和導(dǎo)航的重要手段。K-means算法是非常典型的基于距離的聚類算法,將其用于中文文獻聚類,按照內(nèi)容相似性把一組文獻分成幾個類并發(fā)現(xiàn)其中的隱形知識。本文通過實例,總結(jié)了基于Python語言的K-means算法用于中文文獻聚類過程,通過CH指標(biāo)、輪廓系數(shù)指標(biāo)和SSE指標(biāo)這三個評價指標(biāo)選取K-means算法的初始聚類簇數(shù),即最優(yōu)k值的取值范圍,然后分別按照基于關(guān)鍵詞和基于摘要對文獻進行聚類,并對聚類結(jié)果進行比較分析,從而得出基于摘要對中文文獻進行聚類可以得到更好結(jié)果的結(jié)論,同一類別中的文獻可以進行關(guān)鍵詞聚類,從而進一步挖掘其中的隱形知識。

        關(guān)鍵詞: K-means算法;文獻聚類;評價指標(biāo)

        中圖分類號: TP311.1. ? ?文獻標(biāo)識碼: A ? ?DOI:10.3969/j.issn.1003-6970.2019.08.021

        本文著錄格式:趙謙益. K-means算法中文文獻聚類的Python實現(xiàn)[J]. 軟件,2019,40(8):8994

        【Abstract】: Clustering is an important means of effective organization, summarization and navigation of text information. The K-means algorithm is a very typical distance-based clustering algorithm. It is used for Chinese document clustering. According to the content similarity, a group of documents is divided into several categories and the invisible knowledge is found. In this paper, the K-means algorithm based on Python language is used to summarize the Chinese literature clustering process. The initial cluster cluster number of K-means algorithm is selected by three evaluation indexes: CH index, contour coefficient index and SSE index. The range of optimal k-values is then clustered according to keywords and based on abstracts, and the clustering results are compared and analyzed, so that the clustering of Chinese documents based on abstracts can get better results. In conclusion, the literature in the same category can be clustered by keywords to further explore the invisible knowledge.

        【Key words】: K-means algorithm; Literature clustering; Evaluation index

        0 ?引言

        聚類算法是一種無監(jiān)督的知識發(fā)現(xiàn)算法。利用其對中文文獻進行聚類,目的是發(fā)現(xiàn)其中的隱形知識。所謂文獻,文,指有關(guān)典章制度的文字資料,獻,指熟悉掌故的人。文獻是記錄、積累、傳播和繼承知識的最有效手段,是人類社會活動中獲取情報的最基本、最主要的來源,也是交流傳播情報的最基本手段。文獻數(shù)據(jù)為非結(jié)構(gòu)化數(shù)據(jù),能夠?qū)ζ溥M行有效的數(shù)據(jù)分析,是文本數(shù)據(jù)挖掘重要的目標(biāo)。文獻聚類是按照內(nèi)容相似性把一組文獻分成幾個類的過程。當(dāng)前使用的文獻聚類技術(shù)可分為兩大類:層次聚類技術(shù)

        和劃分聚類技術(shù)。層次聚類技術(shù)的代表是凝聚聚類技術(shù),劃分聚類技術(shù)的代表是K-means聚類技術(shù)[1]。有效地對文獻進行聚類,才可為后續(xù)文本數(shù)據(jù)分析做準(zhǔn)備。簡而言之,聚類的結(jié)果是樣本數(shù)據(jù)對象構(gòu)成的多個類或簇(cluster),一個簇中的對象有較高的相似度(similarity),而不同簇中的對象差異較大,而這種相似度通常通過距離來度量[2-4]。

        1 ?K-means算法原理

        K-means算法是一種非常典型的基于距離的聚類算法,采用距離作為相似性的評價指標(biāo),即該算法認(rèn)為兩個對象的距離越近,其相似度就越大。最常用的樣本間距離度量方法歐式距離,其計算公式為:

        其中D表示樣本之間的距離;1指的是樣本特征的維數(shù);d代表樣本的總維數(shù),即樣本特征的總數(shù)量。[5]

        該算法認(rèn)為簇是由距離靠近的對象組成的,因此把得到緊湊且獨立的簇作為聚類結(jié)果的最終目標(biāo)。

        k個初始類聚類中心點的選取會對較大地影響聚類結(jié)果,因為在該算法第一步中是選取初始聚類的中心,即k值,指定k個對象作為初始聚類的中心,初始地代表一個簇。該算法在每次迭代中對數(shù)據(jù)集中剩余的每個對象,根據(jù)其與各個簇中心的距離將每個對象重新賦給最近的簇。當(dāng)考察完所有數(shù)據(jù)對象后,一次迭代運算完成,新的聚類中心被計算出來。

        如下圖是一個K=4的聚類示意圖,每個點都是到自己所在的簇的均值點更近,而這個均值點可以是原始數(shù)據(jù)中的點,也可以是一個不存在的點,即不屬于原始數(shù)據(jù)集中的點[6]。

        由于本文筆者將研究K-means算法用于中文文獻聚類的Python實現(xiàn)方法,而并非某類實證研究,所以筆者只選取了較少的文獻數(shù)據(jù)為例進行說明,選取中國知網(wǎng)中有關(guān)大數(shù)據(jù)方向的被引量前50名的文獻進行聚類,從而淺談K-means算法用于中文文獻聚類。

        2 ?文獻特征表示

        聚類分析首先需要處理數(shù)據(jù)集的特征選擇或變換。實際上,特征選擇與特征變換是降維技術(shù)的兩大分類。特征選擇指的是從數(shù)據(jù)樣本集的所有特征(或稱屬性)中選擇更有利于達到某種目標(biāo)的若干屬性,即原始屬性集的一一個子集,同時也達到了降低維度的目的;而特征變換則是指通過某種變換將原始輸入空間的屬性映射到一個新的特征空間,然后在特征空間中根據(jù)規(guī)則選擇某些較為重要的變換后的特征[7-10]。

        筆者使用Python語言中的Jieba分詞對50篇文獻進行分詞。在文獻特征化表示的過程中,調(diào)用Python語言中count_vec.fit_transform方法,即可將文獻轉(zhuǎn)換為詞篇矩陣,在此過程中類似于“的”等單字和標(biāo)點符號會被自動刪除,所以在此過程中并不需要利用停用詞表進行預(yù)處理。以下分別按照關(guān)鍵詞和摘要對文獻進行向量化表示,得到詞篇矩陣結(jié)果為:

        其中將分詞后的每一個詞作為一個維度,原文獻中出現(xiàn)該詞語,對出現(xiàn)次數(shù)進行計數(shù)。以所有詞語構(gòu)成的多維向量空間表示該文獻。同理可得到文獻摘要的詞篇矩陣。將文獻轉(zhuǎn)換為詞篇矩陣后,即完成了文獻特征表示。

        3 ?利用評價指標(biāo)確定最優(yōu)聚類簇數(shù)

        支持由于K-means算法需要事先人為指定算法聚類的簇數(shù),即指定k的取值,所以k值的選取對聚類結(jié)果具有較大的影響,在進行最終聚類前,筆者將引用Calinski-Harabaz(CH)指標(biāo),輪廓系數(shù)(silhouette coefficient)指標(biāo)和簇內(nèi)誤方差(SSE)指標(biāo)作為評價指標(biāo),首先使用for循環(huán)對不同k值的聚類結(jié)果進行評價匯總,并利用圖像進行可視化表示,從而確定K-means算法最優(yōu)聚類簇數(shù),即k值。

        3.1 ?Calinski-Harabaz(CH)指標(biāo)

        CH指標(biāo)是通過計算每個類中各點與類中心點的距離平方和來度量聚類后各類內(nèi)的緊密程度,通過計算各類中心點與數(shù)據(jù)集中心點距離平方和來度量數(shù)據(jù)集的分離度,CH指標(biāo)由分離度與緊密度的比值得到。因此,CH越大代表著類自身越緊密,類與類之間越分散,即更優(yōu)的聚類結(jié)果。

        其中,n表示聚類的數(shù)目,k表示當(dāng)前的類,trB(k)表示類間離差矩陣的跡,trW(k)表示類內(nèi)離差矩陣的跡。類別內(nèi)部數(shù)據(jù)的協(xié)方差越小越好,類別之間的協(xié)方差越大越好,這樣的Calinski-Harabasz分?jǐn)?shù)會高。Python語言中scikit-learn包中評價指標(biāo)Calinski-Harabasz Index對應(yīng)的方法是metrics. calinski_harabaz_score.通過圖形可以直觀的觀察到k對于聚類結(jié)果的影響。當(dāng)簇數(shù)量為幾的時候出現(xiàn)了峰值,這說明k取幾是一個不錯的選擇。

        3.2 ?輪廓系數(shù)(silhouette coefficient)指標(biāo)

        輪廓分析(silhouette analysis),是使用圖形工具來度量簇中樣本的聚集程度。該評價算法通過三個步驟可以計算出當(dāng)個樣本的輪廓系數(shù)(silhouette coefficient):第一步是將樣本x與簇內(nèi)的其他點之間的平均距離作為簇內(nèi)的內(nèi)聚度a。第二步是將樣本x與最近簇中所有點之間的平均距離看作是與最近簇的分離度b。第三步是將簇的分離度與簇內(nèi)聚度之差除以二者中比較大的數(shù)得到輪廓系數(shù),其計算公式如下:

        Python語言中scikit-learn包中該評價指標(biāo)對應(yīng)的方法是metrics.silhouette_score.輪廓系數(shù)的取值在–1到1之間。當(dāng)簇內(nèi)聚度與分度離相等時,輪廓系數(shù)為0。當(dāng)b>>a時,輪廓系數(shù)近似取到1,此時模型的性能最佳。通過圖形可以直觀的觀察到k對于聚類結(jié)果的影響。當(dāng)簇數(shù)量為幾的時候出現(xiàn)了峰值,這說明k取幾是一個不錯的選擇。

        3.3 ?簇內(nèi)誤方差(SSE)指標(biāo)

        在對簇的劃分中,我們就使用了SSE作為目標(biāo)函數(shù)來劃分簇。當(dāng)KMeans算法訓(xùn)練完成后,我們可以通過使用inertia屬性來獲取簇內(nèi)的誤方差,不需要再次進行計算。計算公式為:

        Python語言中通過對應(yīng)kmeans.inertia_屬性來獲取簇內(nèi)的誤方差,同時可以使用圖形工具肘方法,根據(jù)簇的數(shù)量來可視化簇內(nèi)誤方差。通過圖形可以直觀的觀察到k對于簇內(nèi)誤方差的影響。當(dāng)簇數(shù)量為幾的時候出現(xiàn)了肘型,這說明k取幾是一個不錯的選擇。

        筆者選用以上三種評價指標(biāo)用于確定聚類的最優(yōu)簇數(shù),但需要注意的是不同的評價指標(biāo)對于不同的數(shù)據(jù)源,其敏感程度不同,所以筆者同時使用三種評價指標(biāo),通過對比觀察得到最優(yōu)k值的取值范圍。

        4 ?利用關(guān)鍵詞對文獻進行聚類

        實驗利使用CountVectorizer方法將每篇文獻的關(guān)鍵詞轉(zhuǎn)換為詞篇矩陣后,利用Python語言中中對應(yīng)的KMeans(n_clusters=k, random_state=0).fit()方法對關(guān)鍵詞詞篇矩陣進行聚類,并利用CH指標(biāo),輪廓系數(shù)指標(biāo)和簇內(nèi)誤方差指標(biāo)(SSE)作為評價指標(biāo),確定K-means算法的最優(yōu)k值,在Python語言中使用for循環(huán)進行計算,并對結(jié)果使用matplotlib進行繪圖展示,其結(jié)果見圖2,圖3,圖4。

        對比以上三個評價指標(biāo),由圖像可知CH指標(biāo)在k取值為13和26時出現(xiàn)波峰,但該波峰并不明顯。輪廓系數(shù)指標(biāo)在k取值為14和26時出現(xiàn)波峰,且相對明顯。而SSE指標(biāo)圖形在k取值為26以后變化較為穩(wěn)定。因此筆者將K-means算法的K值確定為14和26,使用Python語言對應(yīng)的KMeans(n_clusters=k, random_state=0).fit()方法,即將文獻按照關(guān)鍵詞聚為14類或26類時,分別得到聚類后的結(jié)果,再使用PCA(n_components=2)將多維結(jié)果降維到二維空間,使用matplotlib對結(jié)果進行可視化繪圖,最終結(jié)果見圖5,圖6。

        由上兩張圖觀察可得,利用三個評價指標(biāo)選出的最優(yōu)簇數(shù),無論是將文獻分為14簇還是26簇,代表文獻的圓點都有明顯地交叉,無法將文獻較好地進行聚類。

        5 ?利用摘要對文獻進行聚類

        使用CountVectorizer方法將每篇文獻的摘要轉(zhuǎn)換為詞篇矩陣后,同樣利用Python中對應(yīng)的KMeans(n_clusters=k, random_state=0).fit()方法,利用for循環(huán)多次計算各指標(biāo)結(jié)果,并使用matplotlib繪制CH指標(biāo),輪廓系數(shù)指標(biāo)和簇內(nèi)誤方差指標(biāo)結(jié)果圖像作為評價指標(biāo),確定K-means算法的最優(yōu)K值。其結(jié)果為:

        對比以上三個評價指標(biāo),由圖像可知CH指標(biāo)在k取值為8時最先出現(xiàn)波峰。輪廓系數(shù)指標(biāo)在k取值為2、3和5時出現(xiàn)相對明顯波峰。而SSE指標(biāo)圖形在k取值為8以后變化較為穩(wěn)定。筆者將K-means算法的K值確定為2、3、5和8,即將文獻按照關(guān)鍵詞聚為2類、3類、5類或8類時,使用Python語言對應(yīng)的KMeans(n_clusters=k, random_state=0).fit()方法,分別得到聚類后的結(jié)果,再使用PCA(n_components=2)將多維結(jié)果降維到二維空間,使用matplotlib對結(jié)果進行可視化繪圖,分別得到聚類后的結(jié)果為:

        由上面三個圖對比觀察可得,當(dāng)k取值為2時,聚類效果較好,即利用摘要可以較好地將文獻分為2類文獻聚類結(jié)果如下:

        文獻聚類后,人為觀察聚類后的兩類文獻,筆者發(fā)現(xiàn)第一組聚類結(jié)果主要涵蓋大數(shù)據(jù)系統(tǒng)、模型、算法等技術(shù)類研究文獻和數(shù)據(jù)與金融、教育、城市發(fā)展的主題結(jié)合的實用類研究文獻。第二類聚類結(jié)果則是涵蓋研究綜述,發(fā)展現(xiàn)狀與展望等理論性研究文獻。

        為了更準(zhǔn)確地對聚類后的文獻進行分析,筆者認(rèn)為可以計算聚類后的文獻關(guān)鍵詞的相關(guān)系數(shù),進一步對聚類后的文獻進行分析。筆者在這里選用的是皮爾森相關(guān)系數(shù)(Pearson correlation coefficient),也稱皮爾森積矩相關(guān)系數(shù)(Pearson product-moment correlation coefficient),是一種線性相關(guān)系數(shù)。皮爾森相關(guān)系數(shù)是用來反映兩個變量線性相關(guān)程度的統(tǒng)計量。相關(guān)系數(shù)用r表示,其中n為樣本量,分別為兩個變量的觀測值和均值。r描述的是兩個變量間線性相關(guān)強弱的程度。r的絕對值越大表明相關(guān)性越強。計算公式為:

        可以通過K-means算法對關(guān)鍵詞進行聚類,可得到聚類后文獻中個關(guān)鍵詞之間的關(guān)系,首先是使用Python語言中的.corr()方法對經(jīng)由CountVectorizer方法特征提取后的關(guān)鍵詞詞篇矩陣進行相關(guān)系數(shù)計算,得到一個相關(guān)系數(shù)矩陣,然后KMeans(n_clusters=k, random_state=0).fit()方法對相關(guān)系數(shù)矩陣進行聚類,再使用PCA(n_components=2)將多維結(jié)果降維到二維空間,最后使用matplotlib對結(jié)果進行可視化繪圖,其結(jié)果為。

        由圖14可以直觀看出,第一組中可將關(guān)鍵詞分為5類,即該組文獻中涵蓋以下幾個方面的內(nèi)容:第一類為深度、智能、機器學(xué)習(xí)等;第二類為數(shù)據(jù)分析、大數(shù)據(jù)等;第三類為數(shù)據(jù)管理、信息安全等;第四類為知識計算;第五類為互聯(lián)網(wǎng)金融。

        由圖15可以看出,第二組中可將關(guān)鍵詞分為3類,即該組文獻中涵蓋以下幾個方面的內(nèi)容:第一類為信息、電網(wǎng)等;第二類為文計算、數(shù)據(jù)處理技術(shù)等;第三類為數(shù)據(jù)挖掘、數(shù)據(jù)分析等。

        6 ?總結(jié)

        作為一種無監(jiān)督的機器學(xué)習(xí)方法, 聚類因其不需要訓(xùn)練過程、不需要預(yù)先對文檔手工標(biāo)注類別, 故具有較高的靈活性和自動化處理能力,為對文本信息進行有效組織、摘要和導(dǎo)航的重要手段[11-12]。筆者認(rèn)為利用K-means算法對中文文獻進行聚類時,應(yīng)該使用文獻摘要進行聚類,首先利用Python語言對文獻摘要進行特征表示,即將中文文獻轉(zhuǎn)換為詞篇矩陣,再利用Calinski-Harabaz(CH)指標(biāo),輪廓系數(shù)(silhouette coefficient)指標(biāo)和簇內(nèi)誤方差(SSE)標(biāo)作為評價指標(biāo),從而確定K-means算法最優(yōu)聚類簇數(shù),即k值??梢赃x出多組K值在進行繪圖比較,從而確定最優(yōu)聚類簇數(shù)得到最后聚類結(jié)果。關(guān)鍵詞不能較好地對文獻進行聚類,但筆者認(rèn)為可以計算聚類后同類別文獻關(guān)鍵詞的相關(guān)系數(shù),從而得出各關(guān)鍵詞之間的聯(lián)系,達到進一步對文獻進行分析的目的。

        參考文獻

        [1] 李慧, 劉東蘇, 任志純. 文獻聚類技術(shù)及其評價函數(shù)[J]. 情報技術(shù), 2004, 20(7): 17-18.

        [2] 陳磊磊. 不同距離測度的K-Means 文本聚類研究[J]. 軟件, 2015, 36(1): 56-61.

        [3] 申超波, 王志海, 孫艷歌. 基于標(biāo)簽聚類的多標(biāo)簽分類算法[J]. 軟件, 2014, 35(8): 16-21.

        [4] 唐波. 改進的K?means聚類算法及應(yīng)用[J]. 軟件, 2012, 33(3): 100-104.

        [5] DUDARO, HARTPE, TORKDG. Pattern classification (2nd Edition)[M]. New York: John Wiley & Sons, 2001: 47-56.

        [6] iphilo.k-mwans算法原理及numpy實現(xiàn)[EB/OL]. https://blog. csdn.net/iphilo/article/details/80735944, 2018-06-19/2019-04-16.

        [7] 章永來, 周耀鑒. 聚類算法綜述. 計算機應(yīng)用, 2019. doi: 101177/j..issn.1001-9081.2019010174.

        [8] 田瑞, 閆丹鳳. 針對特定主題的短文本向量化[J]. 軟件, 2012, 33(11): 202-205.

        [9] 袁愛領(lǐng), 齊偉, 錢旭. 基于流形正則化的支持向量機文本分類[J]. 軟件, 2013, 34(2): 65-68.

        [10] 姚清耘, 劉功申, 李翔. 基于向量空間模型的文本聚類算法[J]. 計算機工程, 2008, 34(18): 39-41中的應(yīng)用[J]. 軟件, 2013, 34(1): 158-159.

        [11] 鄭世卓, 崔曉燕. 基于半監(jiān)督LDA的文本分類應(yīng)用研究[J]. 軟件, 2014, 35(1): 46-48.

        [12] 張彬. 探討人工智能在計算機網(wǎng)絡(luò)技術(shù)中的應(yīng)用[J]. 軟件, 2012, 33(11): 265-266.

        猜你喜歡
        means算法評價指標(biāo)
        旅游產(chǎn)業(yè)與文化產(chǎn)業(yè)融合理論與實證分析
        中國藥品安全綜合評價指標(biāo)體系研究
        中國市場(2016年40期)2016-11-28 04:01:18
        第三方物流企業(yè)績效評價研究綜述
        商(2016年33期)2016-11-24 23:50:25
        基于UML的高校思想政治教育工作評價系統(tǒng)的分析與研究
        公共文化服務(wù)體系評價指標(biāo)的國際經(jīng)驗與啟示
        中國市場(2016年38期)2016-11-15 00:01:08
        SIFT算法在木材紋理分類上的應(yīng)用
        資源型企業(yè)財務(wù)競爭力評價研究
        中國市場(2016年33期)2016-10-18 13:33:29
        基于K—Means聚類算法入侵檢測系統(tǒng)研究
        基于Weka的Apriori算法在原油產(chǎn)量預(yù)測中的應(yīng)用
        基于HSI顏色空間的小麥粉精度自動識別研究
        亚欧色一区w666天堂| 少妇人妻中文字幕在线| 国产的自拍av免费的在线观看 | 亚洲va视频一区二区三区| yw尤物av无码国产在线观看| 国产精品高潮呻吟av久久无吗| 国产盗摄XXXX视频XXXX| 99青青草视频在线观看| 少妇粉嫩小泬喷水视频| 免费av片在线观看网站| 在线视频一区二区亚洲| 国产精品成人自拍在线观看 | 日本熟妇人妻xxxxx视频| 亚洲欧美中文v日韩v在线| 日本一区二区视频免费在线观看| 色爱情人网站| 国产午夜精品久久久久免费视 | 97人妻中文字幕总站| 观看在线人视频| 法国啄木乌av片在线播放| 日韩不卡无码三区| 国产精品熟女一区二区三区| 亚洲va无码va在线va天堂| 国产人在线成免费视频麻豆| 一本色道亚州综合久久精品| 免费a级毛片又大又粗又黑| 中国丰满熟妇xxxx| 亚洲五月七月丁香缴情| 亚洲av综合色一区二区| 亚洲av永久无码精品放毛片| 精品四虎免费观看国产高清| 日韩精品资源在线观看免费| 搡女人真爽免费视频大全| 国产嫖妓一区二区三区无码| 国产成人精品视频网站| 亚洲国产av一区二区三区精品| 精品少妇人妻av无码久久| 免费国产99久久久香蕉| 中文字日产幕码三区做法| 日韩精品极品视频在线观看免费| 久久伊人影院|