賀 奇, 董延華, 宋嘉怡, 王 瑜
(吉林師范大學 計算機學院, 吉林 四平 136000)
信息技術普及與推廣,直接影響各個領域的發展,特別是在社交網絡領域中,越來越多的大學生群體選擇在社交網絡分享生活日常和興趣愛好。在教育學中,Klassen等研究者強調興趣愛好在個體追求知識和追求進步的過程中可以起到巨大的推動力[1]。而在計算機中,研究并分析興趣愛好特征也有了長足的應用前景。本文首先收集一份從社交網絡平臺抽取的描述大學生基本信息和興趣愛好的數據集,并對數據集進行預處理;其次,通過大數據分析的方法及原理,利用k-Means算法劃分出五類大學生群體;最后,分析每一個群體所代表的興趣愛好特征。
k-means聚類算法即K均值算法是由MacQueen提出的,是一種無監督學習,同時也是基于劃分的聚類算法[2]。k-means算法的基本思想:首先隨機選取k個樣本作為初始聚類中心,計算剩余的每個樣本到初始聚類中心的歐氏距離,分別將其分配給與其最相似的聚類;其次,利用迭代的方法更新聚類中心的值,不斷重復這一過程直到聚類中心不再變化。k-means算法的流程圖如圖1所示。該算法具有簡單、快速、容易理解和效果好的優點,主要基于最小距離來劃分樣本對象,很適合本文的數據集。
為了讓實驗結果更加完整和精確,數據均勻采樣2016年到2019年的大學一年級、二年級、三年級和四年級的社交網絡信息。為了讓實驗結果更加豐富,每個樣本都包含40個變量,例如gradyear,gender,age,friends這4個變量分別代表畢業年份、性別、年齡和好友數等基本信息。還有其余36個變量代表36個詞語,這36個詞語代表五大興趣類:課外活動、時尚、宗教、浪漫和反社會行為。變量的大小取決于對應詞語在社交網絡平臺中的頻率和次數。最終收集了一份包含三萬個樣本的大學生社交網絡信息數據集。

圖1 k-means算法流程圖
性別變量和年齡變量中都存在缺失值,k-means無法直接處理,因此在構建模型之前,需要對缺失值進行處理,處理的方法有兩種方案,一是刪除,二是以某種方法填補。對于性別變量,利用pandas中的函數可以完成。而對于連續型變量年齡,在填補之前需要統計非缺失值的數量,從而能夠計算缺失值數量。實驗得出有2 724個樣本(約9%)缺少性別數據,5 086個樣本(約17%)缺少年齡數據。進一步觀察年齡變量的描述性統計發現,最大值為106.927,最小值為3.086,顯然有異常值。因為本文的樣本是大學生樣本,所以該最小值和最大值似乎不可信,因為現實中不太可能會有一個3歲或者106歲的人就讀大學。這種異常數據往往會影響最終的建模分析結果,因此需要進行異常值處理。大學生的合理年齡區間為13~24歲,因此對于數據集,如果年齡在13~24歲之外,將其標記為空值。
(1)通過虛擬編碼處理分類變量的缺失值。對于樣本中的缺失值,其中一種方案是刪除帶有缺失值的樣本。而數據的40個變量中只有二個變量存在缺失值,缺失值在數據中整體不多,直接刪除缺失值會使數據變少,且直接刪除往往會導致失去很多的可用數據。對于性別這種分類變量,缺失值的樣本跟其他樣本的差別明顯,可以為性別變量增加一個單獨的分類,將空值替換為“不清楚”。
由于k-means聚類算法需要計算樣本之間的距離,還需要對分類變量虛擬編碼(也稱為OneHot編碼)。虛擬編碼將一個有K個取值的分類變量轉換成K個二元變量。利用虛擬編碼將性別變量轉換成男生、女生和不清楚3個變量。這3個變量取值為0或1,分別代表某一大學生是否是某一性別類型。對于一個樣本,在這3個變量下同時只能一個變量取值為1,其他變量取值為0。
(2)通過填補方法來處理數值變量的缺失值。與性別這種分類變量不同,對于年齡這種數值變量的缺失值,可以用一個特殊的值對缺失值進行填補,常用的填補值包括給定值、均值、中位數等。在本文中,使用的是最具代表性的均值填補法。均值的計算在默認情況下是無法對包含缺失值的數據計算均值的。通過給均值函數傳入額外的參數,計算均值為17.252 428 851 574 9,在實驗中對年齡數值變量保留三位小數,從而樣本中年齡缺失值被正確填補為均值17.252。
(3)數據標準化。數據的標準化是很多多元統計方法必要的前期工作,如綜合評價、聚類分析等。數據標準化的方法很多,用不同的標準化方法得到不同的結果,從而影響了對實際問題合理客觀地認識和判斷[3]。K-means聚類算法需要計算樣本的距離,在構建模型之前,需要進行數據標準化。常用的方法有min-max標準化和Z-score標準化等。Z-score標準化又稱標準差標準化,歸一后的數據呈正態分布,即均值為零,如公式(1):
(1)
其中,μ為所有樣本數據的均值,如公式(2);σ為所有樣本數據的標準差,如公式(3)。Z-Score標準化算法簡單方便,結果方便比較,不受數據量級的影響。因此在本文中直接采用Z-score標準化方法。
(2)
(3)
Sklearn是scikit-learn的簡寫,sklearn是一個Python專用于機器學習的經典模塊庫,能夠實現各種學習模型的算法,包含了數據預處理到模型訓練的許多方面。為了將大學生社交網絡信息數據進行聚類,使用sklearn中的KMeans類 。其中一個重要參數就是聚類數目,在本文中將聚類的個數設置為5。
聚類結果的定量性能評價指標有互信息、同質性和完備性等,但是這些指標并不能指示聚類結果是否達到本預期分析目標。本文分析目標是確定具有相似特質和興趣愛好的大學生的分類。因此,很大程度上,需要的不是定量的評價指標結果,而是定性地對聚類結果進行分析。觀察5個類別中每一個類的樣本數目,如圖2所示。

圖2 聚類數目
在聚類的五個類中,最大的類中有11 441名大學生,最小的類中有969名大學生。需要注意的是,因為k-means聚類會隨機選取初始的聚類中心,因此每次運行的結果可能也會不同。為了更好地理解每一個類所代表的大學生群體的特點,觀察每一個類的聚類中心,聚類中心結果保存在聚類模型的中心點屬性中。
因為數據已經使用Z-score方法標準化,可以直接通過觀察聚類中心在每一個變量上的取值情況來分析每一個聚類中心的含義。如果聚類中心在某一個變量取值大于0,代表該聚類所代表的群體在該變量取值大于群體平均水平。首先,對上述聚類結果數據進行轉置;其次,對每一個聚類中心的變量取值從大到小排序。通過觀察每個聚類前6個變量來分析聚類所代表的群體,獲得5種聚類,聚類結果見表1。
(1)聚類1占總數的3%,其中“時尚品牌”和“潮流品牌”2個變量取值大于3,“購物”變量取值大于1,說明這部分大學生比較關注時尚潮流,購物消費比較高,注重物質消費。第一個聚類所代表的大學生群體特點為愛好購物,追崇時尚,關注潮流服飾。

表1 聚類結果分類表
(2)聚類2占總數的37%,其中“年齡”、“女生”和“服裝”等變量取值都大于0,第二個聚類所代表的大學生群體的特點為女生占大多數,大部分變量取值為負,這一類人群可能對應社交平臺資料不全,且很少發布內容的群體。
(3)聚類3占總數的38%,其中“畢業年份”、“女生”、“排球”、“好友數”、“壘球”、“購物”、還有“火辣”、“商業街”和“英式足球”等變量取值都大于0,說明這部分大學生女生所占比例高。第3個聚類所代表的大學生群體的特點是愛好購物,愛好體育運動,女生居多。
(4)聚類4占總數的17%,其中“男生”變量取值遠遠大于0,顯然男生居多?!鞍羟颉薄ⅰ白闱颉薄ⅰ斑\動”、“籃球”、“網球”等變量取值都大于0,說明相對于女生來說,男生更熱愛體育運動。第4個聚類所代表的大學生群體的特點是喜歡體育運動,大多為高年級男生。
(5)聚類5占總數的5%,其中“頭發”、“擁抱”、“吸煙”變量都為大于2,“衣服”、“醉酒”、“音樂”、“搖滾”等變量取值都大于1,說明這部分大學生追求個性,注重外表,有自己的愛好。第5個聚類所代表的大學生群體的特點是喜歡浪漫,愛好音樂,有酗酒的習慣。
本文借助大數據平臺對大學生社交網絡信息進行聚類分析,利用k-means算法對具有相似特質和興趣愛好的大學生進行了分類,獲得五類大學生群體,并對每一個群體所代表的興趣愛好做了特征分析,實現了數據挖掘的效果。相關學??梢酝ㄟ^聚類結果,探究大學生群體用戶的興趣關注點,分析興趣愛好信息,有效地支持大學生的個性分析、行為分析和心理分析。