羅賢鋒,祝勝林,陳澤健,袁玉強
(華南農(nóng)業(yè)大學(xué) 信息學(xué)院,廣東 廣州510642)
文本分類的主要任務(wù)是在預(yù)先給定的類別標(biāo)記下,根據(jù)文本內(nèi)容來判斷其類別歸屬。目前文本分類算法包括樸素貝葉斯 (NB)[1]、支持向量機 (SVM)[2]、K 最近鄰算法(KNN)[3]等。KNN 算法是由Cover和Hart于1967年提出的,有著穩(wěn)定性、魯棒性、高準(zhǔn)確率等優(yōu)點[4]。但正如文獻(xiàn) [4]中指出KNN 算法作為一種惰性算法,在分類階段,每個待分類文本都需要與所有訓(xùn)練樣本做相似度計算,從而找出K 個最近鄰,其時間復(fù)雜度與訓(xùn)練集的樣本數(shù)量成正比,因此在大樣本集下,分類速度會嚴(yán)重降低,缺少實用性。針對這一問題,目前主要在減小計算量方面做了一些相關(guān)研究[5-8],但它們在面對大數(shù)據(jù)時,效果不是很理想。針對此現(xiàn)狀,提出了基于K-Medoids聚類的改進(jìn)KNN算法。實驗結(jié)果表明,該改進(jìn)算法不僅能夠提高運行效率,還能夠提高分類能力。
承認(rèn)、接納消極情緒的存在,與之好好相處,不要試圖將其趕走,不要一味地對抗,把消極情緒當(dāng)成來你家做客的人,好好招待它。當(dāng)它受到友好的接待,自然會滿意而安靜地離開。
KNN 算法以其簡單性、有效性而成為基于向量空間模型 (VSM)[9]的最好分類算法之一。文獻(xiàn) [9]指出VSM的主要思想是:假設(shè)文檔中的詞條是相互獨立的,跟詞條出現(xiàn)的位置無關(guān),將文檔映射為一組詞條相量 (T1,W1,T2,W2,……,T3,W3),其中,Ti為特征向量詞條,Wi為Ti的 權(quán) 重。
假定文本訓(xùn)練集為S,S 有N 個類別C1,C2,……,CN,S 的總文本數(shù)為M。在KNN 分類算法的訓(xùn)練階段,首先對文本訓(xùn)練集S 進(jìn)行分詞,接著對特征維數(shù)進(jìn)行降維,最后把訓(xùn)練集文本表示為特征向量:Di= {X1,X2,……,Xn}T(0<i≤M);在KNN 算法的分類階段,首先需要按照訓(xùn)練階段的過程將待分類文本D 表示為特征向量:D={X1,X2,……,Xn}T,再在文本訓(xùn)練集S 中找出與待分類文本D 最相似的K 個文本Di= {X1,X2,……,Xn}T(0<i≤K),以這K 個最近鄰文本的類別作為候選類別,最后計算待分類文本D 在這些類別里的隸屬度,從而把待分類文本D 歸屬到隸屬度最大的類別。KNN 算法的具體步聚如下:
步驟1 對文本訓(xùn)練集進(jìn)行分詞。
步驟2 對訓(xùn)練集文本的特征項進(jìn)行降維。
2) 目前,高職院校會展英語教材的語言和專業(yè)知識沒有達(dá)到有機結(jié)合:交際任務(wù)不切合實際,缺乏時效性;教材難度控制不夠;重難點不突出;缺少必要的語言技能練習(xí);沒有開發(fā)多媒體資源;內(nèi)容不適應(yīng)當(dāng)前經(jīng)濟發(fā)展的需要;中西方文化差異在工作流程中沒有體現(xiàn)。
1.以間質(zhì)結(jié)締組織增生為主。肝呈灰白色,發(fā)硬。由于間質(zhì)結(jié)締組織增生,使肝細(xì)胞受壓后呈現(xiàn)增生,形成結(jié)節(jié)狀隆起,肝臟表面不平整。
步驟5 利用向量夾角余弦公式來計算待分類文本D與訓(xùn)練集文本Di的相似度,公式為
步驟4 對待分類文本進(jìn)行步驟1 到步驟3 的處理工作。
3.2.2 嚴(yán)密觀察患者 護(hù)士應(yīng)經(jīng)常巡視病房,早發(fā)現(xiàn)、早防范有精神異動患者,采取外緊內(nèi)松的管理模式,做好患者的心理疏導(dǎo),鼓勵患者參加適度的體育鍛煉、文娛活動分散患者注意力,不讓患者存在自卑;精神異常發(fā)作時及時采取約束帶和暫時性的保護(hù)性隔離措施。
步驟6 選出與待分類文本D 最相似即sim (D,Di)最大的K 個文本作為文本D 的最近鄰。
步驟7 根據(jù)這K 個最近鄰,計算待分類文本D 在各個類別里的隸屬度。計算公式為
式中:δ(D,Cm)表示若待分類文本D 屬于類別Cm則值為1,否則為0,δ(D,Cm)的計算公式為
步驟8 選出隸屬度最大的類別Cm,并將待分類文本D 歸入到該類別Cm中。
今年復(fù)合肥總體價格高于去年同期,而且還高了不少。以45%硫基復(fù)合肥為例,較去年同期增長14%,原料尿素同比增長28%,磷酸一銨同比增長14%左右,氯化鉀同比增長6.4%,硫酸鉀同比增長17.6%。是什么原因?qū)е陆衲陱?fù)合肥價格如此之高?其主要原因有以下幾個方面:
雖然KNN 算法是一種經(jīng)典的文本分類算法,但它是一種懶惰算法,在分類階段具有明顯的缺點:需要計算每個待分類文本與訓(xùn)練集所有樣本的相似度,時間復(fù)雜度與訓(xùn)練集樣本數(shù)成正比,當(dāng)面對著海量的訓(xùn)練樣本時,KNN 算法的運行速度將大幅下降,失去實用性。針對這個問題,提出使用聚類方法對訓(xùn)練集進(jìn)行刪減以減少計算開銷。在對訓(xùn)練集進(jìn)行裁剪的方法中,有利用K-means聚類算法來獲取簇心,從而實現(xiàn)對訓(xùn)練樣本進(jìn)行裁剪的方法[10];也有利用DBSCAN 聚類算法來確定類內(nèi)樣本分布,并根據(jù)樣本分布密度來進(jìn)行裁剪的方法[11]。但在K-means算法中,用均值方法來更新簇的中心值時,會導(dǎo)致其產(chǎn)生的族類大小相差不大、對噪聲和孤立點數(shù)據(jù)非常敏感等缺點[12];在DBSCAN 算法中,需要多個參數(shù),這些參數(shù)的設(shè)置通常是依靠個人經(jīng)驗,難以確定。針對K-means和DBSCAN 聚類算法裁剪的不足,提出了一種基于K-Medoids聚類算法的KNN 分類器訓(xùn)練集裁剪方法。該方法首先利用K-Medoids聚類算法對訓(xùn)練集進(jìn)行聚類,從而得到類別分布結(jié)構(gòu),再根據(jù)待分類文本與各個簇心的距離來對訓(xùn)練集進(jìn)行裁剪,從而減少K 最近鄰算法的相似度計算量。
我國高鐵走出國家的形勢雖然良好,有著很大的潛力,但一些挑戰(zhàn)是不可避免的,激烈的競爭、國際形勢、未知的不利因素都是阻礙高鐵發(fā)展的重要因素。
聚類是一種把相似度較高的個體歸為一簇的方法,使得簇內(nèi)的個體相似度較高,簇間的個體相似度較低。基于劃分的聚類算法具有簡單、準(zhǔn)確等優(yōu)點,其中K-Means和K-Medoids是經(jīng)典的基于劃分的聚類算法,文獻(xiàn) [13]指出K-Means算法本身的特點不適合多數(shù)生產(chǎn)實踐的聚類分析,因此基于K-Medoids算法的樣本裁剪研究很有必要。
(4)使用2.2節(jié)所講的裁剪方法對文本訓(xùn)練集S進(jìn)行裁剪,得到新的訓(xùn)練集Snew。
在做一些練習(xí)題的時候,教師可以引入競爭的機制,充分調(diào)動學(xué)生的參與積極性。(1)擴大練習(xí)面,要照顧到每一位學(xué)生。在學(xué)生練習(xí)過程中教師要不斷了解情況,根據(jù)不同層次的學(xué)生采取有針對性的措施,調(diào)動他們的學(xué)習(xí)積極性,提高練習(xí)效率。(2)經(jīng)過一段時間的練習(xí),教師要篩選出有代表性的題目,做成卡片或結(jié)合實際,加強鞏固學(xué)生的知識,使其能夠穩(wěn)步提高。(3)對于計算有一些困難的學(xué)生,教師要弄清楚他們的問題出在哪里,要幫助他們有效地解決困難,努力消除學(xué)生心理上的負(fù)擔(dān),提高他們的自信心。
步驟4 在每個簇內(nèi)部順序選擇一個非簇心的文本對象Otmp,計算以O(shè)tmp為簇心的消耗代價Etmp,若Etmp<Ei,則表明聚類在收斂,用Otmp更新簇心Oi,繼續(xù)迭代,直到Ei小于Etmp且各個簇心不再發(fā)生變化為止,此時聚類結(jié)束。
步驟3 把訓(xùn)練集文本表示為特征向量。
假定文本訓(xùn)練集為S,S 有N 個類別C1,C2,……,CN,S 的總文本數(shù)為M。S 首先被K-Medoids聚類算法分為r個簇,記X 為各個簇的簇心,X∈S,sim(Di,Dj)為訓(xùn)練樣本Di和Dj的相似度,Simmin代表簇內(nèi)的各個樣本與簇心X 之間的相似度的最小值。則文本訓(xùn)練集S 就可以表示為以簇心X 為球心,Simmin為半徑的r個球體。
步驟1 對于文本訓(xùn)練集S,指定需要劃分成r個簇,r=3×N。
患側(cè)手腫脹是腦卒中偏癱患者的常見并發(fā)癥之一,其發(fā)生率約為12.5%~70.0%[1]。水腫以手背部最為明顯,常波及手指和手掌[2]。如不及時干預(yù)不僅導(dǎo)致粘連、攣縮等手部功能障礙,且降低患者本人的生活自理能力、增加其與家人的生活負(fù)擔(dān)。康復(fù)治療早期干預(yù)有利于手腫脹的快速消退、減少并發(fā)癥,促進(jìn)手功能恢復(fù),提高患者的生活質(zhì)量。目前,針對腦卒中患手腫脹的報道大多針對中后期肩手綜合征導(dǎo)致的手腫治療[3],而對于其早期康復(fù)干預(yù)的報道較少。同時因氣壓治療及神經(jīng)肌肉電刺激治療水腫的機理不同,本研究將兩種治療方案疊加使用,探討其對改善重癥監(jiān)護(hù)室腦卒中患側(cè)手腫脹的患者肢體腫脹是否有疊加效果。
步驟2 為每個簇隨機選擇一個簇心Oi(0<i≤r)。
步驟3 計算文本訓(xùn)練集S 中的其它非簇心文本與這r個簇心的相似度,把它們歸給相似度最大的簇,同時統(tǒng)計以O(shè)i為簇心的消耗代價Ei和每個簇的最小相似度Simmin。
在KNN 算法的分類過程中,對于每個待分類文本D,它的類別C 是確定的,根據(jù)相似度計算公式得到的K 個最近鄰文本,一般也是屬于類別C 的,如果不是,也應(yīng)該是在類別C 的周圍。故可以假設(shè)如果只讓D 與類別C 的文本(包括類別C 附近的文本)計算相似度的話,則可以大大地減少計算量。基于此,提出了基于K-Medoids聚類的樣本裁剪方法。
步驟5 計算待分類文本與每個簇心的相似度Sim(D,Oi),若Sim(D,Oi)<Simmin,表明這個待分類文本與這個簇內(nèi)的文本的相似度很低,所以把這個簇內(nèi)的文本裁剪掉,否則把這個簇內(nèi)的文本加入到分類運算中去,從而得到新的訓(xùn)練集Snew。
在KNN 文本分類算法中,通過K-Medoids聚類將訓(xùn)練集分為多個簇,再挖掘文本訓(xùn)練集的類別分布結(jié)構(gòu),最后計算每個待分類文本與簇心的相似度,若得到的相似度小于該簇內(nèi)的最小相似度,則不把這個簇內(nèi)的訓(xùn)練集文本加入計算范圍,減少樣本數(shù)量,從而降低計算開銷。綜上所述,提出的基于K-Medoids聚類的改進(jìn)KNN 文本分類算法流程如下和流程如圖1所示。
圖1 基于K-Medoids算法的KNN 分類流程
(1)首先采用開源工具IKAnalyzer對中文文本進(jìn)行分詞、去停用詞等預(yù)處理。
(2)采用文檔頻率方法對特征維數(shù)進(jìn)行降維,設(shè)置最低文檔頻閥值為200。
(3)采用權(quán)重計算公式TFIDF來計算文本特征項的權(quán)重,從而得到文本的向量空間模型即特征向量,權(quán)重計算公式為:Wik=tfik×idfk,其中tfik表示特征項Tk在文本Di的詞頻,idfk表示特征項Tk出現(xiàn)的文檔頻率的反比。
K-Medoids算法[13]的思想是:對于數(shù)據(jù)集,首先需要指定劃分成多少個簇,即任意選擇K 個不同數(shù)據(jù)對象作為初始簇心Oi(0<i≤K),接著根據(jù)其它對象與每個簇心的相似度,把它們分配給相似度最大的簇,最后在每個簇內(nèi)部順序選擇一個非簇心的樣本對象Otmp,計算以O(shè)tmp為簇心的消耗代價Etmp,若Etmp<Ei,則表明聚類在收斂,用Otmp更新簇心Oi,繼續(xù)迭代,直到Ei小于Etmp且各個簇心不再發(fā)生變化為止,此時聚類結(jié)束。
(5)對于每個待分類文本D,根據(jù)第一節(jié)所講的KNN分類流程,對待分類文本D 進(jìn)行分類,實驗中設(shè)置KNN算法中的參數(shù)K=20。
對提出的改進(jìn)方法進(jìn)行了實驗,設(shè)計如下實驗:實驗環(huán)境 為Windows 7 64 位 操 作 系 統(tǒng)、CPU 為AMD A8-5600K、內(nèi)存為8G 和Eclipse集成開發(fā)工具,實驗數(shù)據(jù)全部來自于復(fù)旦大學(xué)發(fā)布的分類語料庫,從中我們選取了一組一定規(guī)模的訓(xùn)練集及其對應(yīng)的測試集,它們的類別包括藝術(shù)、歷史、計算機、環(huán)境、農(nóng)業(yè)、經(jīng)濟和政治。訓(xùn)練集最小類別為歷史類,文本數(shù)為350篇,最大類別為環(huán)境類,文本數(shù)為450篇,文檔總數(shù)為2905;測試集最小類別為藝術(shù)類,文本數(shù)為280 篇,最大類別為環(huán)境類文本數(shù)為450篇,測試集文檔總數(shù)為2525篇。分類效果的評價指標(biāo)采用準(zhǔn)確率 (precision)、召回率 (recall)和F1 值,時間采用多次實驗的平均值。
準(zhǔn)確率是指使用文本自動分類算法分類的所有文本中與人工分類結(jié)果一致的文本所占的比率,其數(shù)學(xué)公式為
召回率是指用人工分類的所有文本中與使用文本自動分類算法分類的文本一致所占的比率,其數(shù)學(xué)公式為
通常情況下準(zhǔn)確率和召回率兩者呈互補狀態(tài),單純提高一個指標(biāo)會導(dǎo)致另一個指標(biāo)下降。所以,需要一個指標(biāo)綜合考慮這2個因素,這就是F1值,其數(shù)學(xué)公式為
分別與傳統(tǒng)的KNN 算法和基于K-Means的改進(jìn)KNN算法進(jìn)行了比較,數(shù)據(jù)統(tǒng)計實驗結(jié)果見表1。
根據(jù)上述基礎(chǔ)地理單元劃分、點位風(fēng)險評價、水稻產(chǎn)地土壤風(fēng)險評價、稻米風(fēng)險評價、水稻富集系數(shù)及土壤-稻米協(xié)同風(fēng)險評價結(jié)果劃分風(fēng)險評價單元,將研究區(qū)域內(nèi)稻田劃分成125個風(fēng)險評價單元,其中,優(yōu)先保護(hù)類、安全利用類和嚴(yán)格管控類的評價單元分別有85個、38個和2個。按風(fēng)險等級劃分,區(qū)域內(nèi)無、低、中、高風(fēng)險單元分別有85個、30個、8個和2個,未出現(xiàn)極高風(fēng)險單元(圖5)。
表1可以看出,基于K-Medoids算法改進(jìn)的KNN 算法與傳統(tǒng)KNN 算法相比,不僅在分類速度上有所提高,而且在準(zhǔn)確率、召回率和F1 值上也有所提高,在各個類別的F1值下全面提高,平均提高了0.92;在各個類別的查準(zhǔn)率上只有在歷史類別上有所下降,平均提高了0.99%;在各個類別的查全率上,只在歷史、環(huán)境、農(nóng)業(yè)和經(jīng)濟這4 個類別上有所提高,平均提高了0.86%;但是在分類速度上提高了將近一倍,這樣的改進(jìn)效果是令人非常滿意的。從表1可以看出,基于K-Medoids算法改進(jìn)的KNN 算法與基于K-Means算法改進(jìn)的KNN 算法相比,不僅在平均查全率和平均F1值上表現(xiàn)得更好,也在速度上有所提升,原因是K-Means算法形成的簇類大小相差不大,導(dǎo)致平均裁剪數(shù)較多,比K-Medoids算法多出了2 3 1個文本,誤刪的機會也就更大。雖然K-Means算法裁剪的訓(xùn)練文本數(shù)較多,但K-Means算法在收斂時所花費的時間比K-Medoids要長,所以在分類速度上K-Mediods 算法的表現(xiàn)要比KMeans算法上少花費了99S。
表1 實驗結(jié)果
針對KNN 算法的分類階段,需要計算待分類文本與文本訓(xùn)練集中所有文本的相似度,計算量大的特點,提出了基于K-Medoids聚類算法的改進(jìn)KNN 方法,利用K-Medoids聚類算法來形成簇,再根據(jù)待分類文本與簇心的相似度來對訓(xùn)練集進(jìn)行合理裁剪以減少計算開銷。雖然樣本裁剪方法可以減少計算開銷,但不可避免地帶來了樣本信息的損失。如何更有針對性和更有效率地對樣本進(jìn)行裁剪,是我們今后需要進(jìn)行研究的方向。
[1]DAI Lei,MA Weidong,WANG Lingnan,et al.Weightbased naive Bayes classifier design and implementation [J].Information Studies:Theory & Application,2008,31 (3):440-442 (in Chinese).[代磊,馬衛(wèi)東,王凌楠,等.基于權(quán)重的樸素貝葉斯分類器設(shè)計與實現(xiàn) [J].情報理論與實踐,2008,31 (3):440-442.]
[2]QIN Yuping,AI Qing,WANG Xiukun,et al.Study on multi-subject text classification algorithm based on support vector machines [J].Computer Engineering and Design,2008,29 (2):408-410 (in Chinese). [秦玉平,艾青,王 秀 坤,等.基于支持向量機的兼類文本分類算法研究 [J].計算機工程與設(shè)計,2008,29 (2):408-410.]
[3]Zhang Minling,Zhou Zhihua.ML-KNN:A lazy learning approach to multi-label learning [J].Pattern Recognition,2007,40 (7):2038-2048.
[4]FENG Guohe,WU Jingxue.A literature review on the im-provement of KNN algorithm [J].Library and Information Service,2012,56 (21):97-100 (in Chinese).[奉國和,吳敬學(xué).KNN 分類算法改進(jìn)研究進(jìn)展 [J].圖書情報工作,2012,56 (21):97-100.]
[5]LI Kaiqi,DIAO Xingchun,CAO Jianjun,et al.High precision method for text feature selection based on improved ant colony optimization algorithm [J].Journal of PLA University of Science and Technology (Natural Science Edition),2010,11 (6):634-639 (in Chinese). [李凱齊,刁興春,曹建軍,等.基于改進(jìn)蟻群算法的高精度文本特征選擇方法 [J].解放軍理工大學(xué)學(xué)報 (自然科學(xué)版),2010,11 (6):634-639.]
[6]YAN Peng,ZHENG Xuefeng,LI Mingxiang,et al.Feature selection method based on Bayes reasoning in two-class text classification [J].Computer Science,2008,35 (7):173-176 (in Chinese).[閆鵬,鄭雪峰,李明祥,等.二值文本分類中基于Bayes 推理的特征選擇方法 [J].計算機科學(xué),2008,35 (7):173-176.]
[7]WU Chunying,WANG Shitong.Improved KNN Web text classification method [J].Application Research of Computers,2008,25 (11):3275-3277 (in Chinese).[吳春穎,王士同.一種改進(jìn)的KNN Web文本分類方法 [J]計算機應(yīng)用研究,2008,25 (11):3275-3277.]
[8]ZHANG Xiaofei,HUANG Heyan.An improved KNN text categorization algorithm by adopting cluster technology [J].Pattern Recognition and Artificial Intelligence,2009,22 (6):936-940 (in Chinese).[張孝飛,黃河燕.一種采用聚類技術(shù)改進(jìn)的KN 文本分類方法 [J].模式識別與人工智能,2009,22 (6):936-940.]
[9]YAO Qingyun,LIU Gongshen,LI Xiang.VSM-based text clustering algorithm [J].Computer Engineering,2008,34(18):39-44 (in Chinese).[姚清耘,劉功申,李翔.基于向量空間模型的文本聚類算法 [J].計算機工程,2008,34(18):39-44.]
[10]LIU Haifeng,YAO Zeqing,SU Zhan,et al.A clusteringbased method for reducing the amount of sample in KNN text categorization on the category deflection [J].Microelectronics&Computer,2012,29 (5):24-28 (in Chinese).[劉海峰,姚澤清,蘇展,等.文本分類中基于K-means的類偏斜KNN樣本剪裁 [J].微電子學(xué)與計算機,2012,29 (5):24-28.]
[11]GOU Heping,JING Yongxia,F(xiàn)ENG Baiming,et al.An improved KNN text categorization algorithm based on DBSCAN [J].Science Technology and Engineering,2013,13(1):1671-1815 (in Chinese). [茍和平,景永霞,馮百明,等.基于DBSCAN 聚類的改進(jìn)KNN 文本分類算法 [J].科學(xué)技術(shù)與工程,2013,13 (1):1671-1815.]
[12]HAN Xiaohong,HU Yu.Research of K-means algorithm[J].Journal of Taiyuan University of Technology,2009,40(3):236-239 (in Chinese).[韓曉紅,胡彧.K-means聚類算 法 的 研 究 [J].太 原 理 工 大 學(xué) 學(xué) 報,2009,40 (3):236-239.]
[13]ZHANG Xueping,GONG Kangli,ZHAO Guangcai.Parallel KMedoids algorithm based on MapReduce[J].Journal of Computer Applications,2013,33 (4):1023-1025 (in Chinese). [張雪萍,龔康莉,趙廣才.基于MapReduce的K-Medoids并行算法[J].計算機應(yīng)用,2013,33 (4):1023-1025.]