摘要:針對使用機器學習和深度學習算法進行分類、識別任務(wù)時容易出現(xiàn)維度災(zāi)難的問題,本文提出了一種基于t-SNE特征降維與K近鄰的分類算法。首先,分別使用主成分分析法(PCA)和t-SNE算法對特征數(shù)據(jù)進行降維,然后利用K近鄰算法進行分類預(yù)測。在手寫數(shù)字數(shù)據(jù)集和鳶尾花數(shù)據(jù)集上進行了實驗。實驗結(jié)果表明,本文提出的基于t-SNE特征降維與K近鄰的分類算法在手寫數(shù)字數(shù)據(jù)集上的準確率達到98%,比PCA算法高出約20%;在鳶尾花數(shù)據(jù)集上的準確率為97%。此外,該算法即使在維度降低幅度較大的情況下,仍能保持較高的分類準確率,同時維度降得越低,算法所需時間越少,且對不同數(shù)據(jù)集展現(xiàn)出較強的適應(yīng)性。
關(guān)鍵詞:數(shù)據(jù)降維;分類算法;K近鄰;聚類算法
中圖分類號:TP391文獻標識碼:A
文章編號:1009-3044(2024)34-0011-03開放科學(資源服務(wù))標識碼(OSID):
0引言
隨著數(shù)據(jù)時代的到來,數(shù)據(jù)量不斷增長,數(shù)據(jù)的維度也越來越高。數(shù)據(jù)維度增加意味著信息量更大,為決策提供了更多依據(jù)。然而,高維數(shù)據(jù)的處理需要消耗大量計算資源,計算時間顯著增加,同時冗余數(shù)據(jù)和噪聲信息可能影響實驗結(jié)果,導(dǎo)致準確率降低和可用性較差的情況,甚至引發(fā)“維度災(zāi)難”[1]。對此,采用降維算法獲取數(shù)據(jù)的本質(zhì)特征,可以縮短計算時間并提高后續(xù)算法的準確率。
數(shù)據(jù)降維的核心在于提取數(shù)據(jù)內(nèi)在的本質(zhì)特征,從而減少冗余信息和噪聲對結(jié)果的負面影響,提高算法的準確性和效率。常見的降維算法包括低方差濾波[2]、高相關(guān)濾波[3]、主成分分析(PCA)[4-9]、線性判別分析(LDA)[10-14]等。
其中,主成分分析(PCA)是一種應(yīng)用廣泛的降維方法,在醫(yī)學、航空、光譜等領(lǐng)域均有重要應(yīng)用。例如,謝凡等人[4]利用主成分分析、聚類方法以及BP神經(jīng)網(wǎng)絡(luò)對湍流MILD燃燒初始著火過程進行了研究;楊文鋒等人[5]基于PCA和SVM研究了飛機蒙皮激光分層除漆過程中的LIBS在線監(jiān)測問題;王磊等人[6]通過PCA實現(xiàn)DME信號的特征增強,并結(jié)合卷積神經(jīng)網(wǎng)絡(luò)有效檢測DME信號;張楠等人[7]采用PCA-BP模型準確預(yù)測了腦卒中患者行走時髖、膝、踝關(guān)節(jié)的力矩。
此外,LDA降維技術(shù)應(yīng)用也十分廣泛。例如,劉佳悅等人[10]利用LDA降維和BP神經(jīng)網(wǎng)絡(luò)對手寫數(shù)字進行識別;荀鵬等人[11]采用LDA-KNN分類模型實現(xiàn)了巖體的非線性分級預(yù)測;靳文哲等人[12]改進了LDA算法以提升織物圖像的分類準確率;彭燦華等人[13]將LDA主題模型與曲波閾值和ICEEMDAN方法結(jié)合,對數(shù)據(jù)庫中的數(shù)據(jù)進行降噪處理以提高挖掘效率。
上述研究大多是針對某一特定數(shù)據(jù)集設(shè)計的分類方法,在不同類型的數(shù)據(jù)集上不一定具有良好的適用性。因此,本文提出了一種通用的分類算法。算法首先使用t-SNE算法進行特征降維,然后結(jié)合K近鄰(KNN)算法完成分類任務(wù)。本文采用手寫數(shù)字數(shù)據(jù)集和鳶尾花數(shù)據(jù)集進行實驗,通過對比多組PCA降維算法實驗結(jié)果,驗證該通用分類算法的效果和適用性。
1基本原理
1.1t-SNE算法
t-SNE(t-distributedstochasticneighborembed?ding)降維算法是一種非線性降維的機器學習算法,能夠在降低向量維度的同時很好地捕捉原始數(shù)據(jù)的復(fù)雜流形結(jié)構(gòu)[15]。其主要思想是將高維空間中的數(shù)據(jù)點通過概率分布反映點與點之間的相似度,并通過優(yōu)化低維數(shù)據(jù)分布的方式來盡量保持高維空間中數(shù)據(jù)的鄰域結(jié)構(gòu)。
具體來說,t-SNE首先將高維歐幾里得距離轉(zhuǎn)換為條件概率,用來表達兩點之間的相似度。給定高維空間中的數(shù)據(jù)點x1,x2,…,xn,以xi為中心構(gòu)建方差為σi的高斯分布,并計算數(shù)據(jù)點xj關(guān)于xi的鄰域概率pj|i。當點xj靠近xi時,其鄰域概率pj|i較大;反之,當xj離xi很遠時,其鄰域概率pj|i則較小。定義如下:
在低維空間中,也使用條件概率來定義距離,高維數(shù)據(jù)點xi、xj映射到低維空間后對應(yīng)yi、yj,則yj是yi鄰域的條件概率qj|i為:
然后利用低維的條件概率分布Qi去擬合高維的條件概率分布Pi,采用Kullback-Leibler(K-L)散度來衡量兩者之間的一致程度,從而確定低維分布與高維分布的相似性,最終通過最小化K-L散度實現(xiàn)降維。其目標函數(shù)定義為:
1.2K近鄰算法
K近鄰算法(K-NearestNeighbor,KNN)是一種經(jīng)典的有監(jiān)督學習方法,常用于解決分類問題。其原理是:在輸入待分類數(shù)據(jù)時,將該數(shù)據(jù)的每個特征與訓(xùn)練集中樣本數(shù)據(jù)的對應(yīng)特征進行比較,隨后選擇訓(xùn)練集中前K個最相似的數(shù)據(jù)點,并根據(jù)這K個數(shù)據(jù)中出現(xiàn)次數(shù)最多的分類標簽,確定待分類數(shù)據(jù)的類別。
在該研究中,首先采用t-SNE算法對數(shù)據(jù)集進行降維。然后,對降維后保留的特征構(gòu)建特征矩陣。假設(shè)訓(xùn)練集中包含n個圖像,則由這些圖像構(gòu)成的特征矩陣可表示為:
在(5)式中,Xn×l矩陣也稱為特征空間X,n代表訓(xùn)練集中圖像的個數(shù),l表示特征的維度。當輸入待分類的數(shù)據(jù)時,首先進行特征降維,即選擇與訓(xùn)練集降維后的相同特征進行保留。并構(gòu)成特征向量為:
Xj=(X"j1,Xj2,…,Xjl)(6)
則待分類數(shù)據(jù)與訓(xùn)練集中樣本的距離定義為:
在(7)式中,當p=1時,稱為曼哈頓距離;當p=2時,稱為歐式距離,即:
2實驗測試與結(jié)果分析
分別采用手寫數(shù)字數(shù)據(jù)集、鳶尾花(iris)數(shù)據(jù)集進行實驗。
2.1手寫數(shù)字數(shù)據(jù)集
手寫數(shù)字數(shù)據(jù)集包含1934個圖像,涵蓋數(shù)字0至9,每個數(shù)字約有200個樣本。圖像的尺寸為32像素×32像素,因此每個樣本包含1024個特征變量。
首先,分別采用主成分分析方法(PCA)和t-SNE算法對手寫數(shù)字數(shù)據(jù)進行降維,其中PCA將數(shù)據(jù)降至3維,t-SNE將數(shù)據(jù)降至2維,降維結(jié)果如圖1和圖2所示。
由圖1和圖2可以看出,無論是將數(shù)據(jù)降至3維還是降至2維,使用PCA算法時數(shù)據(jù)分布較為集中,可分性較差;而使用t-SNE算法時,數(shù)據(jù)的可分性較高,且數(shù)據(jù)分布約形成10個簇,表明t-SNE算法的降維效果更優(yōu)。此外,使用t-SNE算法將數(shù)據(jù)降至3維時所需時間為5.6秒,而降至2維時所需時間為3.1秒,這說明t-SNE算法在降維至更低維度時,計算所需時間更少。
接下來,將降維后的數(shù)據(jù)劃分為訓(xùn)練集和測試集,采用KNN算法進行分類預(yù)測,并計算識別的準確率,結(jié)果如表1所示。
由表1可以看出,在手寫數(shù)字數(shù)據(jù)集中,使用t-SNE算法降維后再結(jié)合KNN算法進行分類,分類準確率均在98%以上,比PCA算法高出約20%。此外,在降維至更低維度時,t-SNE算法的分類準確率下降較小,能夠更好地保證數(shù)據(jù)分類的準確性。
2.2鳶尾花數(shù)據(jù)集
鳶尾花數(shù)據(jù)集共有150個樣本,包含5個變量,其中4個為特征變量,分別是花萼長度(cm)、花萼寬度(cm)、花瓣長度(cm)和花瓣寬度(cm);另1個為目標分類變量,表示花的類別。目標變量對應(yīng)鳶尾屬下的三個亞屬,分別為山鳶尾(Iris-setosa)、變色鳶尾(Irisversicolor)和維吉尼亞鳶尾(Iris-virginica)。
首先,分別采用主成分分析方法(PCA)和t-SNE算法對鳶尾花數(shù)據(jù)進行降維至2維,降維結(jié)果如圖3所示。
將降維后的數(shù)據(jù)劃分為訓(xùn)練集和測試集,采用KNN算法進行分類預(yù)測,并計算分類識別的準確率,結(jié)果如表2所示。
由圖3和表2的結(jié)果可以看出,在鳶尾花數(shù)據(jù)集中,兩種算法降維后的數(shù)據(jù)點均具有較好的可分性,數(shù)據(jù)點集中為3類樣本,且彼此較為獨立。分類準確率均在97%以上,表明兩種算法在鳶尾花數(shù)據(jù)集上均表現(xiàn)出較好的適應(yīng)性。
3結(jié)束語
本文主要研究了基于t-SNE特征降維和K近鄰的分類算法,分別采用PCA算法和t-SNE算法對特征數(shù)據(jù)進行降維,并對降維后的數(shù)據(jù)利用KNN算法進行分類預(yù)測。為了驗證算法的適應(yīng)性,分別在手寫數(shù)字數(shù)據(jù)集和鳶尾花數(shù)據(jù)集上進行了實驗。
實驗結(jié)果表明,在手寫數(shù)字數(shù)據(jù)集中,使用t-SNE算法降維后,數(shù)據(jù)的可分性較高,降維效果較好,分類準確率達到98%以上,比PCA算法高出約20%。此外,隨著維度的降低,本算法在保證分類準確率的同時,還能顯著縮短程序運行時間。在鳶尾花數(shù)據(jù)集中,兩種算法的分類效果均較好,分類準確率均在97%以上。
綜上所述,本文提出的基于t-SNE特征降維和K近鄰的分類算法能夠在降維幅度較大的情況下,仍保持較高的分類準確率,并且隨著維度的降低,算法運行時間進一步縮短。此外,該算法對不同類型的數(shù)據(jù)集均表現(xiàn)出較高的適應(yīng)性。
參考文獻:
[1]褚治廣,張興,張青云,等.改進成分分析的差分隱私高維數(shù)據(jù)發(fā)布方法[J].計算機應(yīng)用與軟件,2023,40(10):337-344.
[2]喬銘宇,陳旻杰,張琳那.基于低方差濾波算法的改進降維算法[J].現(xiàn)代計算機,2021,27(20):56-59.
[3]王旭.基于高相關(guān)濾波算法的PSO-LSTM連鑄坯質(zhì)量預(yù)測模型[J].冶金與材料,2021,13(4):5-7.
[4]謝凡,魯昊,張翰林,等.基于主成分分析、聚類和BP神經(jīng)網(wǎng)絡(luò)的湍流MILD燃燒初始著火過程的分析[J].燃燒科學與技術(shù),2023,29(6):685-692.
[5]楊文鋒,林德惠,曹宇,等.基于PCA-SVM的飛機蒙皮激光分層除漆LIBS在線監(jiān)測研究[J].光譜學與光譜分析,2023,43(12):3891-3898.
[6]王磊,張勁,葉秋炫.LDACS系統(tǒng)基于循環(huán)譜和殘差神經(jīng)網(wǎng)絡(luò)的頻譜感知方法[J].系統(tǒng)工程與電子技術(shù),2024,46(9):3231-3238.
[7]張楠,孟慶華,鮑春雨,等.腦卒中患者運動過程中動力學特征的智能預(yù)測[J].醫(yī)用生物力學,2024,39(3):489-496.
[8]趙淑歡,葛佳琦,梁曉林,等.改進加權(quán)投票的PCA-Net多特征融合SSFR[J].計算機仿真,2023,40(4):223-230.
[9]彭藝,馮小虎,賈樹澤,等.基于PCA-DNMFSC的衛(wèi)星異常檢測方法研究[J].計算機仿真,2023,40(1):48-52,142.
[10]劉佳悅.基于LDA降維和BP神經(jīng)網(wǎng)絡(luò)的手寫數(shù)字識別[J].信息與電腦(理論版),2023,35(14):187-189,193.
[11]荀鵬,李娟,魏玉峰,等.壩肩巖體質(zhì)量LDA-KNN分類模型[J].成都理工大學學報(自然科學版),2024,51(2):281-290,302.
[12]靳文哲,呂文濤,郭慶,等.基于改進3E-LDA的織物圖像分類算法[J].現(xiàn)代紡織技術(shù),2024,32(6):89-96.
[13]彭燦華,韋曉敏.基于LDA主題模型的多數(shù)據(jù)庫主題詞挖掘算法[J].計算機仿真,2023,40(8):483-487.
[14]王靜,王艷麗,孫士保,等.基于非平衡數(shù)據(jù)的LDA-BPNN信用評分模型[J].計算機仿真,2023,40(2):303-308,414.
[15]邊榮正,張鑒,周亮,等.面向復(fù)雜多流形高維數(shù)據(jù)的t-SNE降維方法[J].計算機輔助設(shè)計與圖形學學報,2021,33(11):1746-1754.
【通聯(lián)編輯:唐一東】
基金項目:2021年度廣東省重點建設(shè)學科科研能力提升項目(2021ZDJS120);廣東省普通高校類科研項目(2021KTSCX269)