


摘? 要:脈沖星是一種具有極大的科學價值的中子星。其在旋轉時,地球上可探測到其發射的無線電,而且這種輻射存在周期性。對脈沖星的分類主要采用機器學習算法,各種算法表現不同。該研究對K鄰近,決策樹,樸素貝葉斯,梯度提升樹算法對脈沖星信號進行了二分類,基于F1值和AUC值評估模型,算法對脈沖星的旋轉軌跡進行研究,以此來判定各種分類算法的表現,結果顯示對于未調參的算法,邏輯回歸表現最好,梯度提升樹其次。K鄰近和決策樹表現相對較差。
關鍵詞:脈沖星;脈沖星候選樣本;機器學習;分類算法;二分類
中圖分類號:TP181;TP391.41? ? ? 文獻標識碼:A 文章編號:2096-4706(2020)07-0076-04
Pulsar Detection Based on Machine Learning Algorithm
ZHOU Yu
(Xuzhou University of Technology,Xuzhou? 221018,China)
Abstract:Pulsar is a neutron star with great scientific value. When it rotates,the radio it sends can be detected on the earth,and the radiation is periodic. The classification of pulsars mainly uses machine learning algorithm,and each algorithm has different performance. In this study,K-neighborhood,decision tree,naive Bayes,and gradient lifting tree algorithm are used to classify pulsar signals. Based on the evaluation model of F1 and AUC values,the algorithm studies the rotation path of pulsar,so as to determine the performance of various classification algorithms. The results show that for the algorithm without parameter adjustment,logical regression is the best,and gradient lifting tree is the second. K-proximity and decision tree performance are relatively poor.
Keywords:pulsar;pulsar candidate samples;machine learning;classification algorithm;binary classification
0? 引? 言
隨著現代搜索設備性能的不斷提升,可以接收到更弱的信號,到目前為止,候選的脈沖星信號多達100萬以上[1,2]。關于脈沖星候選樣本分類方法的發展歷史和發展狀態主要有人工識別和機器學習分類算法兩種方式。但是人工識別方式太過繁瑣,容易出錯。機器學習分類算法種類繁多,需要研究哪一種算法更適合用于識別脈沖星。基于此,本文基于Kaggle上公布的脈沖星探測數據集,應用主要的幾種分類算法對數據集進行研究。通過研究分析邏輯回歸和梯度提升樹這兩種算法對識別脈沖星精確度較高。
1? 相關知識介紹
1.1? 機器學習
機器學習是人工智能的一個分支,作為人工智能的核心技術和實現手段,通過機器學習的方法解決人工智能面對的問題。機器學習關注的是計算機程序如何隨著經驗積累,自動提高性能。他同時給出了形式化的描述:對于某類任務T和性能度量P,如果一個計算機程序在T上以P衡量的性能隨著經驗而自我完善,那么就稱這個計算機程序從經驗E學習。[3]
1.2? 各類算法介紹
邏輯回歸:logistic回歸又稱logistic回歸分析,是一種廣義的線性回歸分析模型,常用于數據挖掘,疾病自動診斷,經濟預測等領域。[4]
K鄰近算法:K近鄰(K-Nearest Neighbor,KNN)算法,是一個理論上比較成熟的方法,同時也是最簡單的機器學習算法之一。K鄰近算法的描述是:在特征空間中,如果一個樣本附近的k個最近(即特征空間中最鄰近)樣本的大多數屬于某一個類別,則該樣本也屬于這個類別。決策樹(Decision Tree)通過把數據樣本分配到某個葉子節點來確定數據集中樣本所屬分類,由三個節點:決策節點、分支節點和葉子節點組成,因此稱之為決策樹[5]。在機器學習中,決策樹是一個預測模型,它代表的是對象屬性與對象值之間的一種映射關系。
和決策樹模型相比,樸素貝葉斯分類器(Naive Bayes Classifier,NBC)發源于古典數學理論,有著堅實的數學基礎以及穩定的分類效率[6]。同時,NBC模型需要估算的參數很少,對缺失數據也并不敏感,算法也比較簡單。理論上,NBC模型與其他分類方法相比具有最小的誤差率。但是實際上并非總是如此,這是因為使用NBC模型假設的屬性之間是相互獨立的,而這個假設在實際應用中往往是不成立的,這些都給NBC模型的正確分類帶來了一定影響。
2? 研究過程及方法
2.1? 數據說明與預處理
本案例基于Kaggle上公布的脈沖星探測數據集,數據集包含由射頻干擾引起的虛假脈沖星樣本和真正的脈沖星樣本,由8個連續變量和1個離散變量組成,前4個連續變量是集成脈沖探測數據的各個統計量,后4個連續變量是從DM-SNR曲線獲得的統計量,離散變量表示案例是否為脈沖星,如表1所示。
注意到各列均無缺失值,無需進行缺失值處理。為方便調用,我們將各列命名簡化。代碼如下:
fromsklearn.model_selection import train_test_split,cross_val_score,cross_val_predict
x=data.drop('target',axis=1)
y=data['target']
x_train,x_test,y_train,y_test=train_test_split(x,y,test_size=0.3,radom_state=30)
將數據集隨機劃分為訓練集和測試集,其中70%為訓練集,30%為測試集。
2.2? 過采樣處理
下面探討正類(脈沖星,1)和負類(非脈沖星,0)分布的均衡情況。
注意到正類樣本與負類樣本分布極不均衡,這可能會導致訓練后模型只適應多數類而不適應少數類的情況,在這里應用SMOTE進行過采樣處理。并應用collections包中的Counter()函數檢查過采樣后樣本的類別分布。可以看到,過采樣后正類和負類分布均衡。
下面我們生成各特征的統計量,如表2所示。注意到各特征均具有明顯的方差,這保證了其被用于分類的有效性。下面我們進一步分析,作出特征相關系數表,如表3所示。
注意到Mean_Int與Ex_Int,Mean_Int與Sk_Int,Ex_DM與Std_DM,Sk_Int與Ex_Int,Sk_DM與Ex_DM,Std_DM與Mean_DM均表現出較強的相關性,但由于本案例中特征較少,我們先不進行特征選擇。在最后嘗試用特征重要性剔除部分特征,并比較其與未剔除特征算法的優劣。
2.3? 分類算法訓練
下面我們應用邏輯回歸、K鄰近、決策樹、樸素貝葉斯和集成算法梯度提升樹進行訓練,輸出結果包括召回率、精確率、F1值、準確率、運行時間、AUC值、混淆矩陣、ROC曲線。
我們首先對各算法應用默認參數進行分類,為簡化代碼,我們將模型擬合和結果輸出整合在一個函數中。需要注意的是,sklearn.metrics中的recall_score()、precision_score()等函數的計算基于標簽值0表示負類,1表示正類這一事實,正類即為我們關注的類,如疾病監測中的患病者、金融風險檢測中的異常交易等,在本文中為脈沖星。若0表示正類,1表示負類,則上述函數輸出的召回率、精確率的分子為分類正確的負類,而非分類正確的正類。
我們注意到Class列0表示非脈沖星,1表示脈沖星,因此無需調整標簽,可直接應用如上函數。若要提高輸出結果的準確性,還可采用cross_val_score()進行多折交叉驗證。
2.4? 結果輸出與分析
輸入要應用的算法,運行函數,對于脈沖星探測問題,由于其巨大的科研價值,我們首先希望能夠將潛在的脈沖星都探測出來,即關注預測正確的脈沖星占真正脈沖星數量的比例,這里對應著召回率Recall,注意到邏輯回歸和梯度提升樹的召回率較高。然而,在應用機器學習算法得到分類結果后,科學家進一步驗證被預測為脈沖星的數據也需要耗費較大的人力物力,因此我們也希望預測為正的結果盡可能準確,即關注預測正確的脈沖星占所有預測為正的比例,這里對應著精確率Precise。注意到邏輯回歸和梯度提升樹精確度也較高。
在這種情況下,我們需要對召回率和精確率進行綜合。一般而言,F1值和AUC值能夠描述模型的綜合效果。我們發現在F1值上,邏輯回歸表現最好,梯度提升樹其次;在AUC值上,邏輯回歸表現最好,梯度提升樹其次,K鄰近和決策樹表現不佳。因此我們認為:如果從F1值和AUC值的角度評估模型,邏輯回歸表現最優,其次為梯度提升樹。我們接下來的分析也主要基于F1值和AUC值評估模型。
輸入要應用的算法,運行函數:
fromsklearn.linear_model import LogisticRegression
fromsklearn.neighbors import KNeighborsClassifier
fromsklearn.tree import DecisionTreeClassifier
fromsklearn.naive_bayes import GaussianNB
fromsklearn.ensemble import GradientBoostingClassifier
models={'邏輯回歸':LogisticRegression(random_state=1),
'K鄰近':KNeighborsClassifier(),
'決策樹':DecisionTreeClassifier(random_state=1),
'樸素貝葉斯':GaussianNB(),
'梯度提升樹':GradientBoostingClassifier(random_state=1)
}
forn,m in models.items():
classification_model(n,m,x_train_sm,y_train_sm,x_test)
從混淆矩陣上來看,各算法具有一定差異,但不顯著,下面我們輸出各指標結果進行對比,如表4所示。
3? 結? 論
本案例中我們應用了邏輯回歸、K鄰近、決策樹、樸素貝葉斯、梯度提升樹算法對脈沖星進行了二分類,基于F1值和AUC值評估模型,對于未調參的算法,邏輯回歸表現最好,梯度提升樹其次。K鄰近和決策樹表現相對較差。
我們選取K鄰近和決策樹調參,調參后二者性能均獲得提升,K鄰近算法F1值從0.684 7提高到0.695 9,AUC值從93.78%提高到95.13%,決策樹F1值從0.747 7提高到0.856 9,AUC值從91.58%提升到96.48%。K鄰近性能提升相對不明顯,原因可能是我們為節省運算時間限制了其需調參數的取值范圍。
我們選取了F1值最大的模型——調參后的決策樹模型探究特征的重要性,發現Ex_Int(集成脈沖數據的超額峰度)對結果有決定性影響,Std_DM(DM-SNR曲線數據的標準差)有較小影響,而其他特征近無影響。因此我們僅提取Ex_Int與Std_DM作為特征組成新的訓練集,使用邏輯回歸、K鄰近、決策樹、樸素貝葉斯、梯度提升樹再次進行訓練后發現:使用兩個特征訓練的模型相比于全特征訓練的模型,可以實現近似的分類效果。
參考文獻:
[1] BATES S D,BAILES M,BARSDELL B R,et al. The High Time Resolution Universe Pulsar Survey - VI. An artificial neural network and timing of 75 pulsars [J].Monthly Notices of the Royal Astronomical Society,2012,427(2):1052-1065.
[2] LEVIN L,BAILES M,BATES S D,et al. Radio emission evolution,polarimetry and multifrequency single pulse analysis of the radio magnetar PSR J1622?4950 [J].Monthly Notices of the Royal Astronomical Society,2012,422(3):2489-2500.
[3] KEITH M J,JOHNSTON S,BAILES M,et al. The High Time Resolution Universe Pulsar Survey-IV. Discovery and polarimetry of millisecond pulsars [J].Monthly Notices of the Royal Astronomical Society,2012,419(2):1752-1765.
[4] 王東剛.殘余引力波:引力子、真空與規則化 [D].合肥:中國科學技術大學,2016.
[5] 劉良端.雙中子星并合產生的電磁信號研究 [D].南京:南京大學,2016.
[6] 張璐.高頻引力波電磁諧振效應的最優參數選擇與噪聲初步分析 [D].重慶:重慶大學,2016.
作者簡介:周宇(1979.06—),男,漢族,江蘇徐州人,工程師,碩士,研究方向:計算機。