蔣雅寧



摘要:聚類是數據挖掘的一種手段,把特征相似的數據聚在一起,論文嘗試通過不同的聚類算法對數據集進行聚類,得出不同聚類算法的輪廓系數并對其行分析研究,得出最佳算法,然后確定k值,結果是當k=2時基于K-means聚類算法的情緒聚類效果最好。研究結果可以應用到抑郁癥治療或者心理學領域方面,未來做一個分類器進行快速的情緒分析,可以預測患者是否會患上抑郁癥或者抑郁癥發作,有很好的社會應用價值。
關鍵詞: 聚類算法;情緒監測;抑郁癥;K-means
中圖分類號:TP391 ? ? ? ?文獻標識碼:A
文章編號:1009-3044(2022)02-0031-02
1引言
所謂“物以類聚,人以群分”,聚類就是把相似的數據點聚在一起,相同特征的類具有高度的相似性,不同特征的對象之間存在較大的差異。通過聚類,可以將大數據集隨機分成塊。每個塊都是一個樣本集,可以保證原始數據集的獨立采樣,在足夠小的范圍內保證處理結果的可靠性。[1] 同時伴隨著人類工作生活壓力的不斷增加,患有心理疾病的人群越來越多。如果可以及時監測情緒,便可以減少心理疾病的發病率,具有很好的應用價值。
2 ?聚類算法概述
2.1聚類算法
聚類的目的是尋找聯系緊密的事物進行區分,將數據劃分為有意義或有用的簇,聚類的目標是,盡可能擴大不同數據組與數據目標之間的差距,無監督學習取決于輸入數據集是否被標記[1]。
2.2聚類算法的種類
基于劃分的聚類:劃分聚類算法就是最優化目標函數,將給定數據對象的數據集,劃分為幾個類,每一類別組就是賦予其的劃分類別標簽。最經典的劃分聚類算法k-均值算法和k-臨近算法在它們的基礎上衍生出了無數種變形算法[2]。主要代表算法有:K-means算法、K-medoids算法、clarans算法。
基于密度的角聚類:K-means能檢測非球面類別的數據分布,但是基于密度的方法可以檢測不規則的形狀。同時,它可以在有噪音的數據中發現各種形狀和各種大小的簇而且可以很好地處理噪聲數據,與劃分和層次聚類方法不同,它是將簇定義為密度相連的點的最大集合.主要的密度聚類算法有:DBSCAN算法、DENCLUE算法等,其中的DBSCAN算法是靠連接高密度鄰域點來發現簇的。
基于網格的聚類:數據空間被劃分為網格結構,由底向上的網格分割法可以將用戶輸入的參數分成同等大小的網格單元。如果落入網格單元的數據點比較多,稱為高密度網格單元。網格中的單元數量受到限制并且所有處理都在一個單元上完成。基于網絡的方法最主要的優點是其快速的處理速度[3]。最有代表性的網格聚類算法有STING[4]、WaveCluster、CLIQLE等。
3 聚類算法及數據集介紹
3.1數據集簡介
數據集是一種利用腦電生理和情感分析的數據集,參加數據集采集的相關人員是由英國實驗室研究小組人員Sander Koelstra,倫敦大學瑪麗皇后學院,英國;Christian MüHL,屯特大學,荷蘭等5人和各國外高校指導專家Ioannis Patras博士,Anton Nijholt博士,Touradj Ebrahimi博士。由歐盟“Seventh Framework 計劃”,荷蘭經濟事務部、教育部、文化科學部共建的“ BrainGain 智能混合方”,瑞士國家基礎科學研究和教育互動的多模式聯運信息管理委員會支持和資助。 數據集是32×40的元胞矩陣,32代表人數,40代表40個不同影片。
3.2 數據集來源
選擇了32個測試者(男女各占一半)觀看篩選出的40部影片,影片觀看完畢之后,測試者進行填表評價,arousal, valence, liking and dominance這四個標簽代表四種情緒的分值。arousal: 喚醒可以從不活躍(例如,不感興趣,無聊)到活躍(例如,警覺,興奮)valence: 效價則從不愉快(如悲傷、緊張)到愉快(如高興、開心),dominance: 支配的范圍從無助和軟弱的感覺(沒有控制)到強大的感覺(控制一切),liking: 喜歡度。
4 算法的實現
4.1實現過程
(1)讀取數據:
import pandas as pd
datas = pd.read_csv('./labels.csv')
(2)查看數據維度
(shape):
print(datas.shape)
(1280,4)
(3)接下來查看數據的前8行數據。
當選擇要挖掘的數據集后,開始在挖掘之前對這些數據集中的數據進行預處理。因為數據集中的值是標準化的,所以不需要統一數據集的屬性,之后進行數據清理,主要解決的問題有: 空缺值、錯誤數據、孤立點、噪聲[5]。其中空缺值和錯誤數據是這一步驟處理的重點。此數據集沒有缺失數值,故不用使用填補方法來處理數值變量的缺失值。
4.2結果分析
(1)不同聚類算法的輪廓系數值
聚類是一種典型的無監督學習任務。由于沒有標簽,很難評價聚類結果的優點和缺點。直觀上來看,聚類是把相似的樣本化為一簇,不同的樣本劃分到不同的簇內。基于這個觀點,研究人員研發了度量聚類結果的方法,其中輪廓系數適用于實際類別信息未知情況,正適合數據,如圖1所示。
因為輪廓系數取值范圍是[-1,1],所以同種特征的樣本距離相近且不同特征的樣本距離越遠,分數越高,通過圖1可以直觀地看出,K-means算法的輪廓數值是最高的,高斯混合聚類的數值僅次于K-means算法后,數值最低的是DBSCAN算法。所以針對本數據集聚類效果最好的是K-means算法。
(2)模型優化
在前面部分,對比三種聚類算法的兩種評價指標后,獲得K-means聚類算法聚類效果相對較好一點,但是之前直接對其進行指定聚成4簇,所以在這部分內容,使用K-means最優的K值進行細分,也就是尋找到最優簇數。輪廓系數可以作為一個評價聚類效果的指標,現在可以讓K值從2開始遞增測試,找到選擇K值后對應的輪廓系數最高的K值。因為scikit-learn中的K-means算法從1開始時,聚類的labels會等于0,這時會報錯,所以在輪廓系數這里選擇的K值下限為2,在選擇最大簇數上限時一般不會太大,這里選擇為8,結果如圖2所示:
從圖2可以看出當K值為2時,輪廓系數較高,也就是此時的聚類效果也會較好。
5 基于k=2的K-means聚類算法的應用
首先,觀察K-means聚類出來的每一個類中樣本的數目。在聚類的2個類中,第一個類中有618個樣本,另一個類中有662個樣本,相差不大。 但是為了更好地理解每一個類所代表的樣本群體的特點,觀察每一個類的聚類中心(cluster center)。聚類中心如3所示:
如果聚類中心在某一個變量取值大于0,代表該聚類所代表的群體在該變量取值大于群體平均水平。 首先對上述聚類結果數據框進行轉置,然后對每一個聚類中心的變量取值從大到小進行排序。 通過觀察每個聚類變量來分析聚類所代表的群體:
第一個聚類:
valence ?0.765693 ?liking ?0.672365 ?dominance ?0.609296 ?arousal ?0.376815
結果:第一個聚類所代表的樣本群體的情緒為:愉快、喜歡、支配的范圍強大、興奮。
第二個聚類:
arousal ?-0.351769 ?dominance -0.568799 ?liking ?-0.627676 ?valence ?-0.714801
結果:第二個聚類所代表的樣本群體的情緒為:不愉快、不喜歡、有無助的感覺、不活躍。
未來可以根據以上研究做出情緒分類器,應用在情緒監測的領域,可以有效地監測和預防心理疾病的發病率。
6 結束語
目前聚類的方法很多,分類方法也不盡相同。聚類算法可以應用到社會生活的各個方面,隨著大數據時代的不斷發展,不僅可以應用到抑郁癥監測領域,還可以應用到商業分析中。本文通過比較不同的聚類算法,分別分析了他們的適用范圍,雖然每種聚類算法都有適用的領域,但是也同時存在著需要改進的地方,本文只是選擇了一個最適合此次實驗的聚類算法并加以分析。
參考文獻:
[1] 賀玲,吳玲達,蔡益朝.數據挖掘中的聚類算法綜述[J].計算機應用研究,2007,24(1):10-13.
[2] 劉屹霄.考慮信息均衡與數據簇可分性的模糊軟子空間聚類[D].廈門:廈門大學,2017.
[3] 陳偉,李紅,王維.一種基于Python的K-means聚類算法分析[J].數字技術與應用,2017(10):118-119.
[4] 梁玉翰.基于STING與支持向量回歸機的網絡安全預警技術研究[D].鄭州:解放軍信息工程大學,2008.
[5] Famili A,Shen W M,Weber R,et al.Data preprocessing and intelligent data analysis[J].Intelligent Data Analysis,1997,1(1/2/3/4):3-23.
【通聯編輯:聞翔軍】