山東師范大學(xué)附屬中學(xué) 黃宇龍
KNN算法在天文數(shù)據(jù)挖掘中的應(yīng)用
山東師范大學(xué)附屬中學(xué) 黃宇龍
現(xiàn)代技術(shù)的進(jìn)步使得天文觀測設(shè)備的觀測能力大大提高,天文觀測產(chǎn)生的數(shù)據(jù)變得十分龐大,因此能夠借助計算機(jī)對數(shù)據(jù)進(jìn)行高效率的分析顯得尤為重要.為了解決這個問題,借助數(shù)據(jù)挖掘的技術(shù)對天文數(shù)據(jù)進(jìn)行分析勢在必行.本文主要論述了利用聚類算法中的KNN算法,通過選擇特定光波段數(shù)據(jù)作為特征,對恒星與類星體進(jìn)行分類的方法,并探索KNN算法在解決恒星和類星體分類問題的效率以及正確率.
KNN算法;分類;恒星;類星體
隨著大型光學(xué)望遠(yuǎn)鏡的精度和深度不斷提高,其觀測能力大大提高,天文學(xué)中與光學(xué)波段相關(guān)的數(shù)據(jù)量不斷增大,數(shù)據(jù)復(fù)雜程度不斷增加.例如大型綜合巡天望遠(yuǎn)鏡在一晚上所觀測得到的數(shù)據(jù)量約為20TB數(shù)據(jù),而最后將會得到大約130PB的數(shù)據(jù).如果由計算機(jī)來進(jìn)行管理、分類這些以PB計的數(shù)據(jù)的工作,則可以快速準(zhǔn)確地解決對天文數(shù)據(jù)分析這項繁瑣的任務(wù).隨著計算機(jī)科學(xué)、統(tǒng)計學(xué)與數(shù)學(xué)等方面在近幾年的高速發(fā)展,數(shù)據(jù)挖掘逐漸出現(xiàn)在人們眼前,并逐步地被用于從天文數(shù)據(jù)中提取信息、發(fā)現(xiàn)稀有天體和現(xiàn)象.天文數(shù)據(jù)具有海量性、高維性、非線性等特點(diǎn),所以需要更加高效精準(zhǔn)的挖掘和分析算法或工具來應(yīng)對日益增長的需求,關(guān)于天文學(xué)中數(shù)據(jù)挖掘應(yīng)用可參見一些綜述文章[1-3].
恒星和類星體的分類是天文學(xué)基本分類任務(wù)之一.恒星、類星體都是發(fā)光天體,但它們的光譜等參數(shù)有所不同,他們在不同波段所表現(xiàn)的性質(zhì)不同,需要通過聚類算法將它們各自區(qū)分,這對我們了解恒星和類星體的演化歷史以及發(fā)現(xiàn)特殊天體有著重要的研究價值.尤其在面對海量的天文數(shù)據(jù)時,將天體自動分類變得尤為重要.
對于恒星與類星體,他們在不同光譜波段的表現(xiàn)不同,因此可以將這些參數(shù)作為它們自己的特征來區(qū)分它們.從各類分類算法中,我們挑選KNN算法來解決這個問題,KNN算法可以用于簡單的分類,其算法思路簡單,但計算量較大,適用于樣本容量較大的類域自動分類問題,與本類問題相符合并,本章節(jié)將闡述KNN算法的原理及實(shí)現(xiàn),并探究這個算法的效率.
K鄰近(KNN)算法,是一個理論上相對成熟的算法,也是典型的機(jī)器學(xué)習(xí)的算法之一.它基于特征空間中預(yù)測樣本周圍距離它最近的樣本類別數(shù)目作為判定依據(jù)來進(jìn)行分類.其基本思路為:如果一個樣本在特征空間中的K個最相似(即特征空間中最鄰近)的樣本中的大多數(shù)屬于某一個類別,則該樣本也屬于這個類別,而這K個所選定的鄰居樣本,則為已正確分類的樣本.
KNN算法不需要訓(xùn)練過程,但是需要大量樣本數(shù)據(jù)來確定最合適的K值用于樣本的分類.技術(shù)上K的取值需要針對不同的問題來設(shè)定,但是K值一般都是奇數(shù),為的是每個未知樣本都能夠得出確定的計算結(jié)果.因此在下面的算法應(yīng)用中,本文將分別討論設(shè)定不同的K值時所能獲得的準(zhǔn)確率,以提高分類結(jié)果的準(zhǔn)確率.
KNN算法中樣本之間,在判定最鄰近樣本的距離時,一般使用的是歐式距離,其他的距離還有Cosine距離等.不同的距離計算方式,其計算復(fù)雜程度亦不相同,最終會影響分類算法執(zhí)行的效率.
KNN聚類算法的主要流程包括:數(shù)據(jù)預(yù)處理、數(shù)據(jù)準(zhǔn)備、特征選擇、聚類、結(jié)果驗證與評價.
在本文中所采用的數(shù)據(jù)來源于國家天文臺老師提供的望遠(yuǎn)鏡巡天得到的數(shù)據(jù),測試所使用的數(shù)據(jù)集大小為3256個樣本,其中類星體樣本數(shù)為1617,恒星樣本數(shù)為1639.在使用數(shù)據(jù)進(jìn)行分類之前,需要對原始數(shù)據(jù)進(jìn)行處理,這一步主要是要去除無效數(shù)據(jù),將數(shù)據(jù)特征進(jìn)行提取,并轉(zhuǎn)換數(shù)據(jù)格式為程序所需要的格式.在選擇數(shù)據(jù)特征時,本文主要考慮恒星與類星體在不同波段的光亮強(qiáng)度不同,因此主要采用了u, g, r,i,z五個可見光波段的數(shù)據(jù)以及亮度r作為特征,應(yīng)用于樣本間距離的計算.為了直觀的展現(xiàn)恒星與類星體在不同顏色的分布,本文繪制了圖2.1來展現(xiàn)顏色特征坐標(biāo)的三維分布圖,在圖中可以明顯地看出,兩種星體的特征坐標(biāo)分布各自呈現(xiàn)大體集中、部分分散的狀態(tài).兩種星體在明顯不同的區(qū)域集中,這也是分類的條件.邊緣區(qū)域的分布呈現(xiàn)松散、交替的特點(diǎn).可以推測,分類錯誤的樣本基本分布在邊緣區(qū)域.
圖2.1 各顏色特征三維分布
在數(shù)據(jù)預(yù)處理、提取樣本特征之后,便可以使用KNN算法進(jìn)行分類.首先,我們將整個樣本(包括1617個類星體樣本,1639個恒星樣本)隨機(jī)的切分為兩個部分:第一部分用于訓(xùn)練,第二部分用于測試.為了能夠全面的查看訓(xùn)練與測試樣本比例對于分類準(zhǔn)確率的影響,我們將訓(xùn)練及測試樣本比例設(shè)為三組,分別是1:1,2:1,5:1.
在運(yùn)用KNN算法去解決問題時,需要設(shè)定算法對應(yīng)的模型參數(shù)以及輸入?yún)?shù)兩大部分.輸入?yún)?shù)即上一小節(jié)所得到的樣本的特征值;模型參數(shù)對于KNN算法即K的取值以及度量樣本距離的計算方式.樣本距離的計算方式?jīng)Q定了KNN在實(shí)際應(yīng)用中的執(zhí)行效率;K值的選擇決定了樣本分類結(jié)果的準(zhǔn)確程度.在本實(shí)驗中,樣本距離計算方式采用歐式距離,n維空間的計算公式如下:
由于數(shù)據(jù)中u-g,g-r,r-i,i-z這四種顏色特征的取值大多數(shù)小于1,求解平方差后繼續(xù)取根號所得到的結(jié)果小數(shù)位會被裁切,導(dǎo)致精度下降,此外取根號運(yùn)算也增加了額外的計算負(fù)擔(dān),因此本文中的歐氏距離僅作平方差,距離計算方法如下:
對于K值的選擇,我們則分別選取K=3,5,9,13進(jìn)行KNN算法分類,計算獲取分類準(zhǔn)確率.
通過實(shí)現(xiàn)KNN算法程序,執(zhí)行數(shù)據(jù)樣本的分類,其結(jié)果如下表:
在表中,當(dāng)訓(xùn)練/測試樣本數(shù)量比為1:1時,不同的K值對于準(zhǔn)確率影響不大,在92%左右;訓(xùn)練/測試樣本數(shù)量比為2:1時,選取K=5時準(zhǔn)確率最高,為93.09%,準(zhǔn)確率跟隨K值增大先增大后減小;訓(xùn)練/測試樣本數(shù)量比為5:1時,K=5時準(zhǔn)確率最高,為94.66%,且準(zhǔn)確率同樣跟隨K值增大,先增大后減小.
在另一方面,當(dāng)確定K值選擇后,分類的準(zhǔn)確率跟隨訓(xùn)練/測試數(shù)據(jù)量比的提高而提高,例如K=5時,分類的準(zhǔn)確率由92.33%提高至94.66%.
在圖2.2中直觀地顯示了不同的訓(xùn)練/測試數(shù)據(jù)量比在某一K值下,準(zhǔn)確率與訓(xùn)練/測試數(shù)據(jù)量比的關(guān)系;圖2.3則展示了在確定的訓(xùn)練/測試數(shù)據(jù)量比下,K值的選定與準(zhǔn)確率的關(guān)系.
圖2.2 確定K值下,訓(xùn)練樣本數(shù)與正確率的關(guān)系圖
圖2.3 確定訓(xùn)練樣本數(shù),K值與正確率的關(guān)系圖
由上圖可以得出兩個結(jié)論:第一,KNN算法在訓(xùn)練樣本數(shù)量達(dá)到一定的情況下,若增加訓(xùn)練樣本數(shù),正確率增長不明顯,且趨于穩(wěn)定,但是由于訓(xùn)練樣本數(shù)量增加,樣本的計算量也會線性的增長,最終導(dǎo)致耗時呈線性增加.第二,確定的訓(xùn)練/測試數(shù)據(jù)量比下,正確率隨K值變化,先在某一段達(dá)到峰值,而后開始下降.算法的耗時會跟隨隨K值增長呈線性增長.當(dāng)正確率經(jīng)過峰段開始下降時,由于K值的增加,算法所使用的時間也線性增長,導(dǎo)致算法效率下降.峰段的K值由樣本的坐標(biāo)分布密度決定.
因此,用K近鄰算法進(jìn)行天體歸類時,若要保證正確率的同時提高效率,則應(yīng)選擇合適的K值、訓(xùn)練樣本容量.
本文我們主要探索了KNN算法于恒星與類星體分類問題的應(yīng)用以及算法的執(zhí)行效率和正確率.由于現(xiàn)代技術(shù)的進(jìn)步使得天文觀測設(shè)備的觀測能力大大提高,天文觀測產(chǎn)生的數(shù)據(jù)變得十分龐大.讓計算機(jī)來進(jìn)行管理、分類這些以PB計的數(shù)據(jù)的工作可以使這項繁瑣的任務(wù)快速準(zhǔn)確地解決.而恒星、類星體都是發(fā)光天體,但它們的光譜等參數(shù)有所不同,通過這些參數(shù)的特征可以區(qū)分它們.因此我們使用五種不同的顏色作為特征輸入,使用KNN算法解決這個問題.KNN算法在訓(xùn)練樣本數(shù)量達(dá)到一定的情況下,若增加訓(xùn)練樣本數(shù),正確率增長不明顯,同時算法的耗時也會線性的增長;另一方面,分類的正確率也會隨K值變化,先在某一段達(dá)到峰值,而后開始下降,且算法耗時也跟隨K的增加而線性增加.因此,使用KNN算法進(jìn)行天體歸類時,若要保證正確率的同時提高效率,則應(yīng)同時考慮選擇合適的K值、訓(xùn)練樣本容量.但總得來說,KNN算法在該問題中能夠很好的區(qū)分恒星與類星體,準(zhǔn)確率在90%以上,值得在該問題的研究中推廣.
[1]BALL N M,BRUNNER R J.Data Mining and Machine Learning in Astronomy[J].International Journal ofModern Physics D, 2010,19:1049-1106.
[2]張彥霞,趙永恒.天文學(xué)中的數(shù)據(jù)挖掘和知識發(fā)現(xiàn)[J].天文學(xué)進(jìn)展,2002,20(4):312-323.
[3]BORNE K.Scientific Data Mining in Astronomy[OL].ARXIV,2009,arXiv:0911.0505.