• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      交叉驗(yàn)證的BP神經(jīng)網(wǎng)絡(luò)恒星光譜分類①

      2020-05-22 04:44:34劉曼云趙正旭趙士偉曹子騰
      關(guān)鍵詞:數(shù)據(jù)量恒星類別

      劉曼云,趙正旭,郭 陽,趙士偉,曹子騰

      1(石家莊鐵道大學(xué) 復(fù)雜網(wǎng)絡(luò)與可視化研究所,石家莊 050043)

      2(青島理工大學(xué) 機(jī)械與汽車工程學(xué)院,青島 266520)

      1 研究背景介紹

      1.1 研究背景

      宇宙之中充滿了神秘與未知,偌大的宇宙是如何形成以及演化的? 宇宙中無人知曉其數(shù)量的星系是如按照何種方式分布的? 宇宙中所有的星球、星體是如何在其軌道上有條不紊得運(yùn)行的? 星系的光譜有哪些物理性質(zhì)以及化學(xué)成分? 這些問題都激發(fā)著我們對天文學(xué)的探求欲.天體光譜是對天文學(xué)的探索與認(rèn)知的主要的資源信息,天體光譜的形狀與星體的物理性質(zhì)、化學(xué)成分、運(yùn)動軌跡、運(yùn)動狀態(tài)有著密切的關(guān)系,光譜數(shù)據(jù)對發(fā)現(xiàn)恒星的特征信息提供有利的幫助.星體會拋射出星周氣體,星周氣體具有不同的狀態(tài)、性質(zhì),其不同的特征會造成恒星光譜發(fā)射線在輪廓、寬度上的不同,很少的星體會存在發(fā)射線,發(fā)射線表示這些星體經(jīng)歷或正正經(jīng)歷著一些不穩(wěn)定的變化,這類星體的發(fā)現(xiàn)可以用于研究星體的演化過程.

      美國數(shù)字巡天計劃(SDSS)、澳大利亞英澳天文臺[1,2]等對于天體中數(shù)量龐大的恒星、星系、類星體的光譜信息進(jìn)行的獲取,為天文學(xué)的發(fā)展提供了巨大的信息資源.雖然光譜樣本的數(shù)據(jù)量很大,但仍不能滿足科學(xué)界對光譜信息的需求,大天區(qū)面積多目標(biāo)光纖光譜天文望遠(yuǎn)鏡,簡稱為LAMOST (Large Sky Area Multi-Object Fibre Spectroscopy Telescope),是我國自主設(shè)計并研制的反射施密特望遠(yuǎn)鏡,就是為了滿足獲取海量光譜的要求而建造,它位于國家天文臺的興隆觀測站.

      1.2 LAMOST 簡介

      LAMOST 的大口徑為4 米,大視場為5 度,光譜觀測系統(tǒng)包括4000 根光纖[3],連接著16 臺光譜儀,其設(shè)計上的創(chuàng)新為我國的天文學(xué)帶來飛躍式的發(fā)展.LAMOST 與國際上同類型的望遠(yuǎn)鏡在口徑大小、觀測范圍等方面相比都更勝一籌,是美國數(shù)字巡天計劃(SDSS)、澳大利亞英澳天文臺巡天的觀測效率的10~15 倍[4].LAMSOT 的建造的第一個科學(xué)目標(biāo)是根據(jù)LAMOST 所觀測到的星體信息,可對宇宙和星系進(jìn)行研究,通過所獲取的星系光譜得到星系的紅移數(shù)據(jù),根據(jù)紅移可得到其距離,有了距離便有了其三維分布,從而知曉整個宇宙空間的結(jié)構(gòu).第二個科學(xué)目標(biāo)是通過對更暗的恒星的觀測,掌握銀河系中更遠(yuǎn)處的恒星的分布以及運(yùn)行的情況,從而對銀河系的結(jié)構(gòu)進(jìn)行了解.第三個科學(xué)目標(biāo)是通過對大量天體的光譜觀測,根據(jù)光譜中包含的不同射線來進(jìn)行各類天體多波段交叉證認(rèn).有關(guān)光譜的理論很多,說法不一,光譜信息還能對大量的光譜理論的正確性進(jìn)行驗(yàn)證[5].

      1.3 研究意義

      LAMOST 所觀測到的海量光譜信息構(gòu)成了一個龐大的天文數(shù)據(jù)庫,是天文界重要的信息資源,在如今的大數(shù)據(jù)時代和經(jīng)濟(jì)建設(shè)時代,信息資源對國家的發(fā)展具有戰(zhàn)略性意義[6].LAMOST 所發(fā)布的信息資源為FITS 格式文件,FITS 文件中含有光譜的諸多屬性信息,可以從FITS 文件中提取出與研究相關(guān)的屬性信息,通過數(shù)據(jù)挖掘等技術(shù)可對光譜數(shù)據(jù)之間的聯(lián)系進(jìn)行分析、研究,發(fā)掘出恒星光譜分類更準(zhǔn)確的依據(jù),還有助于發(fā)現(xiàn)未知天體以及脈沖星,脈沖星的信號可為星際導(dǎo)航提供依據(jù).

      面對LAMOST 所發(fā)布的海量的恒星光譜數(shù)據(jù),傳統(tǒng)的人工處理恒星光譜的方法已經(jīng)不再適用,需要找到更高效的、可利用計算機(jī)來處理的恒星光譜分類算法,而數(shù)據(jù)挖掘中的分類算法就能很好的應(yīng)用于此.根據(jù)適合的光譜自動分類算法處理大量的恒星光譜數(shù)據(jù),提高恒星光譜分類速度、效率,高效且便捷地應(yīng)用于大量數(shù)據(jù)的分析、處理.

      2 數(shù)據(jù)預(yù)處理

      2.1 數(shù)據(jù)噪聲剔除

      LAMOST 發(fā)布的光譜信息包括恒星、星系、類星體、未知天體的光譜信息,將下載的恒星光譜數(shù)據(jù)進(jìn)行讀取,并整合到一個csv 文件中,其中可能會摻雜著其他星體的光譜數(shù)據(jù),要將其他星體的光譜數(shù)據(jù)進(jìn)行刪除,具體方法為將文件中的數(shù)據(jù)根據(jù)class 的屬性值進(jìn)行排序,然后將class 的類別不為star 的數(shù)據(jù)選中并刪除;恒星光譜中又包含著諸多子類,最常見的恒星光譜分類系統(tǒng)是哈佛系統(tǒng)[7],此方法為美國一天文學(xué)家的創(chuàng)新,將恒星按照溫度的高低進(jìn)行排序,恒星光譜按照溫度的降序排列為:O,B,A,F,G,K,M,R,S,N 幾個大的類別,每個大類別下又分為諸多小類別,用十進(jìn)制數(shù)值表示,例如光譜A 類型下又分為A0,A1,A2,···,A9 等10 個子類型,這為恒星光譜的分類方面做出了創(chuàng)新性的貢獻(xiàn),FITS 文件中有一個關(guān)于光譜的屬性名稱為subclass,含義為恒星光譜的子分類,需要把子分類的值不是正確范圍內(nèi)以及類別不明確的光譜數(shù)據(jù)根據(jù)同樣的方法進(jìn)行刪除.

      2.2 數(shù)據(jù)降維

      在收集、處理數(shù)據(jù)的過程中,經(jīng)常會遇到特征維度很多的數(shù)據(jù),高維度的數(shù)據(jù)會使我們在后續(xù)對數(shù)據(jù)的處理上非常繁瑣、困難,而且有些數(shù)據(jù)含有冗余的信息、噪聲信息等,這些數(shù)據(jù)會對結(jié)果的正確性造成影響.所以,需要通過剔除數(shù)據(jù)中的冗余信息、降低數(shù)據(jù)維度來達(dá)到降低數(shù)據(jù)量的目的,但又對數(shù)據(jù)中的重要信息有所保留.降維是數(shù)據(jù)預(yù)處理中非常重要的一個環(huán)節(jié),如果不對數(shù)據(jù)進(jìn)行預(yù)處理,在很多數(shù)據(jù)處理的算法中便很難得到理想的結(jié)果.

      在對數(shù)據(jù)進(jìn)行降維所選擇的方法為PCA 降維.PCA 是降維方法中使用最頻繁的降維方法,PCA 通過線性投影將高維數(shù)據(jù)在某方向上進(jìn)行投影,投影到低維的空間中,此方向可使在投影的維度上,數(shù)據(jù)之間具有最大的方差,這樣就能保證得到的數(shù)據(jù)丟失原始數(shù)據(jù)最少,保留了原始數(shù)據(jù)中更多的數(shù)據(jù)特點(diǎn).PCA 的降維過程,更具體的來說,有一個具有n維屬性特征的數(shù)據(jù)集,數(shù)據(jù)集中有m個樣本點(diǎn),PCA 需要做的就是將具有n維屬性特征的數(shù)據(jù)集降維到n'(n'

      核心代碼如算法1.

      算法1.PCA 降維算法pca=PCA(n_components=22)#n_components 為最終得到的維度newDataMat=pca.fit_transform(DataMat)#DataMat 為原始數(shù)據(jù),newDataMat 為降維#后的數(shù)據(jù)print(newDataMat)# 輸出降維后的數(shù)據(jù)

      2.3 數(shù)據(jù)規(guī)范化

      由于天體距離地球的遠(yuǎn)近、天體的亮度不盡相同,所以LAMOST 觀測到的光譜數(shù)據(jù)的數(shù)量級可能會存在著很大的差異[4],對數(shù)據(jù)進(jìn)行歸一化處理可使數(shù)據(jù)處于同一數(shù)量級,從而也消除了奇異樣本數(shù)據(jù)對數(shù)據(jù)處理結(jié)果導(dǎo)致的不良影響.數(shù)據(jù)歸一化過程是將數(shù)據(jù)進(jìn)行同比例縮放,對每個數(shù)據(jù)進(jìn)行同樣的處理,使每個數(shù)據(jù)在被處理后落入一個特定的范圍,如范圍可為[–1,1]或者[0,1]等.在對數(shù)據(jù)進(jìn)行分類時,如果分類算法涉及到了神經(jīng)網(wǎng)絡(luò)、最近鄰分類和聚類等,在對數(shù)據(jù)進(jìn)行預(yù)處理的過程中實(shí)現(xiàn)對數(shù)據(jù)的歸一化操作,會對后續(xù)的分類挖掘提供很大的幫助.

      對數(shù)據(jù)進(jìn)行規(guī)范化采用的方法是最小-最大規(guī)范化,此方法的思想是對原始數(shù)據(jù)進(jìn)行線性變換,將結(jié)果變換到[0,1]范圍內(nèi),并且不對原始數(shù)據(jù)之間的關(guān)系進(jìn)行改變.對原始數(shù)據(jù)中的每個數(shù)值進(jìn)行如下變換:

      其中,max、min分別為原始樣本數(shù)據(jù)中的最大值、最小值,new_max、new_min分別為原始數(shù)據(jù)經(jīng)過規(guī)范化后的數(shù)值中的最大值、最小值,比如,new_max、new_min經(jīng)常取到的值為1.0,0.0,此方法可以根據(jù)數(shù)據(jù)特點(diǎn)來指定數(shù)據(jù)進(jìn)行歸一化后的取值范圍.

      2.4 數(shù)據(jù)平衡

      對數(shù)據(jù)進(jìn)行分類,根據(jù)其類別保證數(shù)據(jù)量的同時,也要保證不同類別的數(shù)據(jù)量的均衡,如果不同類別的數(shù)據(jù)量相差較大,在對數(shù)據(jù)進(jìn)行分類算法處理的過程中,分類算法會對數(shù)量較大的類別投入更多的關(guān)注,而忽略數(shù)量較小的類別,導(dǎo)致訓(xùn)練出的分類器的分類性能很低.

      重采樣是通過對數(shù)量較少的樣本進(jìn)行增加,減少數(shù)量較多的樣本來使不平衡的數(shù)據(jù)集變得更加平衡,從而改善分類算法的結(jié)果.欠采樣也稱為下采樣,是處理數(shù)量大的類別所用到的方法,可通過丟棄數(shù)量大的類別中的部分?jǐn)?shù)據(jù)、去除冗余樣本數(shù)據(jù)、刪除邊界樣本數(shù)據(jù)等方法,其目的是減少多數(shù)類別的數(shù)據(jù)量來保證不同類別的數(shù)據(jù)集的平衡.欠采樣在對數(shù)量大的類別樣本進(jìn)行去除的過程中,會去除掉具有重要信息的樣本數(shù)據(jù),而若只去除具有錯誤數(shù)據(jù)的少數(shù)樣本,又不能達(dá)到平衡數(shù)據(jù)集的目的.過采樣也稱為上采樣,過采樣是通過對數(shù)量少的類別的數(shù)據(jù)進(jìn)行復(fù)制,來提高少數(shù)類別的數(shù)據(jù)量,但如果某類別的數(shù)據(jù)量非常小,而進(jìn)行過采樣后所要求的數(shù)據(jù)量又較多,在對此類別數(shù)據(jù)進(jìn)行過采樣后,很容易導(dǎo)致過擬合,對數(shù)據(jù)量小的類別的識別率會沒有意義.為防止過多相同數(shù)據(jù)的生成,可采用SMOTE 算法,此算法同樣可對數(shù)據(jù)量小的數(shù)據(jù)進(jìn)行過采樣,首先為每個少數(shù)類樣本選出幾個近鄰的樣本,將每個樣本與其近鄰的幾個樣本相連接,然后在連接線上隨機(jī)取點(diǎn)作為新生成的樣本,這些新樣本與原始樣本并不相同,從而擴(kuò)大數(shù)據(jù)量少的類別,使得不同類別的恒星光譜具有大致相同的數(shù)據(jù)量.SMOTE 算法也是可以直接調(diào)用SMOTE 庫來實(shí)現(xiàn)數(shù)據(jù)的平衡.

      核心代碼如算法2.

      算法2.過采樣SMOTE 算法from imblearn.over_sampling import SMOTE #導(dǎo)入SMOTE 庫print(sorted(Counter(y_train).items())#查看#原始數(shù)據(jù)中不同類別恒星光譜的數(shù)據(jù)量X_train,Y_train=SMOTE().fit_sample(x_train,y_train)#對原始數(shù)據(jù)進(jìn)行過采樣處理print(sorted(Counter(y_train).items())#得#到不同類別的恒星光譜具有相同的數(shù)據(jù)量

      對數(shù)據(jù)的處理完成后,就需要采用數(shù)據(jù)挖掘中的分類算法對數(shù)據(jù)進(jìn)行分類.之所以采用BP 神經(jīng)網(wǎng)絡(luò)算法,是因?yàn)槠渚哂衅渌惴ㄋ痪哂械膬?yōu)點(diǎn).BP 神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)了輸入數(shù)據(jù)經(jīng)過網(wǎng)絡(luò)的傳輸,最終輸出的過程,在這個過程中,BP 神經(jīng)網(wǎng)絡(luò)能夠以任意精度逼近非線性連續(xù)函數(shù),具有很強(qiáng)的非線性映射能力;BP 神經(jīng)網(wǎng)絡(luò)在訓(xùn)練數(shù)據(jù)的過程中,能夠提取出輸入數(shù)據(jù)與輸出數(shù)據(jù)之間的“規(guī)則”,并自適應(yīng)的將“規(guī)則”記憶于網(wǎng)絡(luò)的權(quán)值之中,所以BP 神經(jīng)網(wǎng)絡(luò)具有自適應(yīng)能力;BP 神經(jīng)網(wǎng)絡(luò)具有著較為復(fù)雜的網(wǎng)絡(luò)結(jié)構(gòu),當(dāng)其中的部分神經(jīng)元受損后,不會對全局的BP 神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)造成太大的影響,甚至仍然可以正常工作,具有一定的容錯能力.BP 神經(jīng)網(wǎng)絡(luò)算法適合處理內(nèi)部機(jī)制復(fù)雜的問題,而且具有較強(qiáng)的自適應(yīng)能力與容錯能力,而恒星光譜數(shù)據(jù)量大,數(shù)據(jù)關(guān)系復(fù)雜,所以采用BP 神經(jīng)網(wǎng)絡(luò)算法對恒星光譜數(shù)據(jù)進(jìn)行分類是很合適的選擇.

      3 BP 神經(jīng)網(wǎng)絡(luò)算法研究

      3.1 BP 神經(jīng)網(wǎng)絡(luò)原理

      神經(jīng)網(wǎng)絡(luò),顧名思義,模仿人腦中的傳輸過程,首先是輸入信號進(jìn)行輸入,經(jīng)過神經(jīng)元的層層傳輸以及處理,最終輸出反饋,即得到輸出結(jié)果.BP 神經(jīng)網(wǎng)絡(luò)是一種包括3 層或3 層以上的階層型神經(jīng)網(wǎng)絡(luò),標(biāo)準(zhǔn)的BP 神經(jīng)網(wǎng)絡(luò)模型有3 層,包括輸入層、隱含層、輸出層,如圖1所示.BP 神經(jīng)網(wǎng)絡(luò)具有一層輸入層,一層輸出層,可包含多層隱含層,具有很強(qiáng)的記憶與泛化能力[8],通過對網(wǎng)絡(luò)中的權(quán)值和閾值不斷地進(jìn)行調(diào)整,來降低預(yù)測誤差平方和.

      圖1 3 層BP 神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)示意圖

      利用BP 神經(jīng)網(wǎng)絡(luò)系統(tǒng)實(shí)現(xiàn)對恒星的分類,其過程類似于上述中信號在神經(jīng)網(wǎng)絡(luò)中的傳輸過程.可以把目標(biāo)源的輪廓信息、顏色信息、光譜能量分布信息作為輸入數(shù)據(jù),輸入到神經(jīng)網(wǎng)絡(luò)系統(tǒng)的輸入層,神經(jīng)網(wǎng)絡(luò)系統(tǒng)按照一定的規(guī)則、特定函數(shù)來對這些信息進(jìn)行判斷、處理、分析,輸出層就會給出目標(biāo)源信息的特征量,然后分析、總結(jié)輸出層輸出的數(shù)據(jù)信息,判斷、總結(jié)目標(biāo)源的特點(diǎn),從而可以實(shí)現(xiàn)對目標(biāo)源的分類.BP神經(jīng)網(wǎng)絡(luò)包括兩個階段,第一個階段稱為正向傳播過程,輸入數(shù)據(jù)從輸入層輸入神經(jīng)網(wǎng)絡(luò),經(jīng)過層層網(wǎng)絡(luò)的計算、處理,得到輸出層各個單元的輸出值.記BP 神經(jīng)網(wǎng)絡(luò)的輸入層節(jié)點(diǎn)數(shù)為I,輸入向量記為Xp=(x0,x1,x2,···,xI–1).輸出層的節(jié)點(diǎn)數(shù)為K,隱含層節(jié)點(diǎn)數(shù)為J,輸入層節(jié)點(diǎn)數(shù)一般表示數(shù)據(jù)集中對于數(shù)據(jù)的屬性描述有I個,將屬性描述對應(yīng)的屬性值作為BP 神經(jīng)網(wǎng)絡(luò)的輸入值,而數(shù)據(jù)集中每個樣本的分類類別作為BP 神經(jīng)網(wǎng)絡(luò)的期望輸出值,輸出值為K個,隱含層第j個神經(jīng)元的閾值αj來表示,輸出層第k個神經(jīng)元的閾值用βk來表示,輸入層第i個神經(jīng)元與隱含層第j個神經(jīng)元間的權(quán)值用vij來表示,隱含層第j個神經(jīng)元與輸出層第k個神經(jīng)元間的權(quán)值用wjk來表示.對于BP 神經(jīng)網(wǎng)絡(luò),總會有一個理想化的輸出向量,稱為期望輸出向量,表示為Dp=(d1,d2,d3,···,dK–1)

      輸入層數(shù)值表示:

      輸入層的每個神經(jīng)元的輸入值分別與其連接的隱含層的第j個神經(jīng)元對應(yīng)的權(quán)值相乘,然后求和,得到隱含層中第j個神經(jīng)元的輸入值,表示為:

      隱含層的輸出:隱含層的第j個神經(jīng)元輸入值netj經(jīng)過激活函數(shù)的處理得到其輸出值:

      其中,激活函數(shù)一般選取Sigmoid 函數(shù)[9]:

      隱含層的每個神經(jīng)元的輸出值分別與其連接的輸出層的第k個神經(jīng)元對應(yīng)的權(quán)值相乘,然后求和,作為輸出層中第k個神經(jīng)元的輸入值,表示為:

      輸出層的輸出:輸出層的第k個神經(jīng)元輸入值netk經(jīng)過激活函數(shù)的處理得到其輸出值:

      BP 神經(jīng)網(wǎng)絡(luò)的實(shí)際輸出與期望輸出之間總會有一定的差別,把差別稱為誤差,對于每個樣本的誤差函數(shù)的計算公式為:

      如果數(shù)據(jù)集中有N個樣本,則N個樣本的總誤差計算公式為:

      其中,Ep表示p的輸出誤差,表示樣本p的期望輸出,Okp表示BP 神經(jīng)網(wǎng)絡(luò)的實(shí)際輸出.

      第二個階段為反向傳播過程,經(jīng)輸出層輸出的數(shù)據(jù)得到輸出誤差,輸出誤差反向向前傳輸經(jīng)過各隱含層,計算隱含層各單元的誤差,再根據(jù)此誤差來對前層的權(quán)值進(jìn)行修正.具體過程為:

      首先對BP 神經(jīng)網(wǎng)絡(luò)中的輸出層與隱含層之間的連接權(quán)值進(jìn)行調(diào)整,輸出層的誤差表示為[10]:

      對于輸出層與隱含層之間的權(quán)值調(diào)整為[10]:

      其中,η為學(xué)習(xí)步長,取值區(qū)間為(0,1).

      然后對BP 神經(jīng)網(wǎng)絡(luò)中的隱含層與輸入層之間的連接權(quán)值進(jìn)行調(diào)整,隱含層的誤差表示為[10]:

      對于隱含層與輸入層之間的權(quán)值調(diào)整為[10]:

      BP 神經(jīng)網(wǎng)絡(luò)算法的流程圖如圖2所示.

      圖2 BP 神經(jīng)網(wǎng)絡(luò)算法流程圖

      3.2 BP 神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)

      讀取存儲恒星光譜的光譜文件,提取出在不同波長處的光譜波長信息以及光譜類別信息,每個文件中共有3909 個波長數(shù)據(jù),提取出光譜信息后,將其中不是恒星以及恒星子類別不明確的光譜數(shù)據(jù)進(jìn)行剔除,將光譜波長數(shù)據(jù)中的冗余數(shù)據(jù)錯誤數(shù)據(jù)進(jìn)行刪除,然后對數(shù)據(jù)進(jìn)行降維操作,選擇將光譜波長數(shù)據(jù)降維成22 維數(shù)據(jù),既提取出了其中的重要數(shù)據(jù)信息,又減少了數(shù)據(jù)量,方便對數(shù)據(jù)的操作處理.然后對數(shù)據(jù)進(jìn)行歸一化處理,消除數(shù)據(jù)之間的數(shù)量級差距,同時也減小數(shù)據(jù),降低對數(shù)據(jù)的計算量.還要對數(shù)據(jù)進(jìn)行平衡處理,通過采樣操作使不同類別的恒星光譜數(shù)據(jù)具有相似的數(shù)據(jù)量.

      將恒星光譜的波長信息作為BP 神經(jīng)網(wǎng)絡(luò)的輸入,類別信息作為BP 神經(jīng)網(wǎng)絡(luò)的期望輸出,輸入數(shù)據(jù)經(jīng)過BP 神經(jīng)網(wǎng)絡(luò)層層傳遞以及反饋,經(jīng)過BP 神經(jīng)網(wǎng)絡(luò)權(quán)值、閾值的不斷修正,使輸入數(shù)據(jù)經(jīng)過BP 神經(jīng)網(wǎng)絡(luò)的傳輸后,實(shí)際的輸出結(jié)果能最大限度的接近期望輸出,從而使誤差達(dá)到最下,即較高的分類正確率.

      BP 神經(jīng)網(wǎng)絡(luò)隱含層的確定可根據(jù)輸入層與輸出層節(jié)點(diǎn)數(shù)目來確定,假設(shè)BP 神經(jīng)網(wǎng)絡(luò)的輸入層節(jié)點(diǎn)為m個,輸出層節(jié)點(diǎn)為n個,則隱含層節(jié)點(diǎn)的選取范圍為當(dāng)設(shè)置BP 升級網(wǎng)絡(luò)的輸入層節(jié)點(diǎn)為22,隱含層節(jié)點(diǎn)為13,輸出層為5,基于交叉驗(yàn)證的BP 神經(jīng)網(wǎng)絡(luò)得到的結(jié)果有時為70.34%,而有時又可達(dá)76.66%,其中的正確率還是有一定差距的,因?yàn)槊看芜x取的訓(xùn)練集、測試集是不同的,所以導(dǎo)致最終的預(yù)測結(jié)果也是不同的.

      4 基于交叉驗(yàn)證的BP 神經(jīng)網(wǎng)絡(luò)

      4.1 交叉驗(yàn)證

      交叉驗(yàn)證是一種估計泛化誤差的模型選擇方法,在進(jìn)行誤差估計之前不需要任何假設(shè)條件,操作簡單、方便,交叉驗(yàn)證在各種類型的模型選擇中都可適用,所以其應(yīng)用非常廣泛[11].當(dāng)分類算法在對數(shù)據(jù)中的訓(xùn)練集進(jìn)行訓(xùn)練后得到訓(xùn)練模型,如果用此訓(xùn)練模型再去對與訓(xùn)練集有交集數(shù)據(jù)的測試集進(jìn)行誤差估計,會導(dǎo)致預(yù)測誤差非常低,得到錯誤的預(yù)測結(jié)果.

      經(jīng)常用的交叉驗(yàn)證方法為K-折交叉驗(yàn)證方法(Kfolder Cross Validation,K-CV).K-折交叉驗(yàn)證是將數(shù)據(jù)集隨機(jī)分成k份,其中k–1 份作為訓(xùn)練集,1 份作為測試集,在訓(xùn)練的過程中,依次從k份中選擇一份作為測試集,剩余的k–1 份為訓(xùn)練集,每次用訓(xùn)練集進(jìn)行模型訓(xùn)練,用訓(xùn)練出的模型對測試集進(jìn)行測試,進(jìn)行結(jié)果預(yù)測,得到預(yù)測的正確率與誤差[12].K份數(shù)據(jù)就需要進(jìn)行k次訓(xùn)練與測試,最后將得到的k個結(jié)果求平均值作為最終預(yù)測結(jié)果.K-折交叉驗(yàn)證的優(yōu)點(diǎn)是數(shù)據(jù)集中的所有數(shù)據(jù)都作為了訓(xùn)練集和測試集,每個數(shù)據(jù)樣本都被驗(yàn)證過,這樣可使預(yù)測結(jié)果更具有客觀性,對預(yù)測結(jié)果求平均值也降低了偶然性誤差.

      在數(shù)據(jù)需要進(jìn)行過采樣時,需要注意與交叉驗(yàn)證過程的順序問題.如果在交叉驗(yàn)證之前進(jìn)行過采樣同樣會導(dǎo)致過擬合的問題,因?yàn)樵趯?shù)量小的類別進(jìn)行過采樣后,對數(shù)據(jù)集進(jìn)行隨機(jī)劃分,不能保證測試集與訓(xùn)練集中的數(shù)據(jù)沒有交集.用一個例子來說明,如圖3,最左邊一列為原始數(shù)據(jù),假設(shè)包含3 個類別,其中兩個類別的數(shù)據(jù)量較小;接下來如果首先對少數(shù)類別的數(shù)據(jù)進(jìn)行過采樣操作,得到圖中第2 列數(shù)據(jù)集;然后進(jìn)行交叉驗(yàn)證中的數(shù)據(jù)劃分過程,會發(fā)現(xiàn)訓(xùn)練集與測試集中包含著同樣的數(shù)據(jù),會導(dǎo)致最終結(jié)果產(chǎn)生過擬合的問題.

      所以,需要在交叉驗(yàn)證后對數(shù)據(jù)進(jìn)行過采樣操作,如圖4所示,首先將驗(yàn)證樣本從數(shù)據(jù)集中挑選出來,剩余數(shù)據(jù)作為訓(xùn)練集;然后對訓(xùn)練集中數(shù)量小的類別進(jìn)行過采樣,得到如圖中第3 列所示,此時訓(xùn)練集與測試集中的數(shù)據(jù)是沒有重復(fù)的,會防止預(yù)測結(jié)果產(chǎn)生過擬合.在進(jìn)行10 折交叉驗(yàn)證的過程中,同樣是在交叉驗(yàn)證的每次循環(huán)中做過采樣,即每次在訓(xùn)練集中插入與測試集無交集的數(shù)據(jù)來保證數(shù)據(jù)平衡.

      圖3 先過采樣再交叉驗(yàn)證

      圖4 先過采樣再交叉驗(yàn)證

      4.2 基于交叉驗(yàn)證的BP 神經(jīng)網(wǎng)絡(luò)

      BP 神經(jīng)網(wǎng)絡(luò)中存儲著諸多信息,主要有兩方面的信息,一方面是網(wǎng)絡(luò)的結(jié)構(gòu),包括網(wǎng)絡(luò)的輸入層、隱含層以及輸出層的節(jié)點(diǎn)個數(shù)以及隱含層的層數(shù);另一方面網(wǎng)絡(luò)中連接每一層之間的權(quán)值.網(wǎng)絡(luò)中的輸入層、輸出層節(jié)點(diǎn)個數(shù)一般是可以確定的,而隱含層層數(shù)與節(jié)點(diǎn)個數(shù)則由用戶憑經(jīng)驗(yàn)而設(shè)定,設(shè)定的過小或過大都會造成不好的影響;網(wǎng)絡(luò)中的權(quán)值開始是在一個范圍內(nèi)進(jìn)行初始化的,在反向傳播過程中,會根據(jù)誤差來進(jìn)行調(diào)整.用BP 神經(jīng)網(wǎng)絡(luò)算法對數(shù)據(jù)進(jìn)行訓(xùn)練、測試時,測試的只是其中的一部分?jǐn)?shù)據(jù),對這部分?jǐn)?shù)據(jù)的測試結(jié)果并不代表對其他數(shù)據(jù)具有相似的測試結(jié)果,而采用交叉驗(yàn)證的BP 神經(jīng)網(wǎng)絡(luò),可使所有的數(shù)據(jù)都用于訓(xùn)練模型,最終得到的結(jié)果會穩(wěn)定、可靠;實(shí)驗(yàn)過程中消除了數(shù)據(jù)分配的隨機(jī)性而帶來的誤差影響,確保實(shí)驗(yàn)的可重復(fù)性.

      利用10 折交叉驗(yàn)證進(jìn)行BP 神經(jīng)網(wǎng)絡(luò),將數(shù)據(jù)集平均分成10 份,每次從中選出1 份作為測試集,剩余9 份作為訓(xùn)練集,BP 神經(jīng)網(wǎng)絡(luò)用訓(xùn)練集來訓(xùn)練出網(wǎng)絡(luò)模型,得到網(wǎng)絡(luò)中的權(quán)值、閾值等,確定了BP 神經(jīng)網(wǎng)絡(luò)模型,再用訓(xùn)練好的模型對測試集進(jìn)行結(jié)果預(yù)測.具體思想過程如圖5所示,將數(shù)據(jù)集平均分成10 份,分別用編號1,2,3,···,10 來表示,第1 次運(yùn)行過程是將編號為1 的那部分?jǐn)?shù)據(jù)作為測試集,剩余編號為2~10 的9 份數(shù)據(jù)作為訓(xùn)練集,得到第1 個測試結(jié)果1,第2 次運(yùn)行過程是將編號為2 的那部分?jǐn)?shù)據(jù)作為測試集,剩余的編號為1、3~10 的9 份數(shù)據(jù)作為訓(xùn)練集,得到測試結(jié)果3,以此類推,最后一次訓(xùn)練過程是將編號為10 的那部分?jǐn)?shù)據(jù)作為測試集,剩余的編號為1~9 的9 份數(shù)據(jù)作為訓(xùn)練集,得到測試結(jié)果10.然后對10 次的測試結(jié)果求平均值,得多最終的測試結(jié)果.

      4.3 實(shí)驗(yàn)結(jié)果

      利用同樣的數(shù)據(jù)作為實(shí)驗(yàn)的輸入數(shù)據(jù),類別信息作為期望輸出數(shù)據(jù),輸入層節(jié)點(diǎn)為22 個,輸出層節(jié)點(diǎn)為5,設(shè)置隱含層節(jié)點(diǎn)為12,基于交叉驗(yàn)證的BP 神經(jīng)網(wǎng)絡(luò)得到的結(jié)果為:[72.92%,79.12%,79.17%,67.7%,65.6%,78.1%,80.2%,69.8%,74%,76.7%].從10 次預(yù)測的10 個結(jié)果中可以發(fā)現(xiàn),最小的預(yù)測正確率為65.6%,而最大的預(yù)測正確率為79.17%,最大值與最小值之間還是有一定的差距的,所以利用交叉驗(yàn)證,進(jìn)行10 次訓(xùn)練與預(yù)測,再求得10 次預(yù)測結(jié)果的平均值,會得到一個較為平穩(wěn)、準(zhǔn)確的數(shù)據(jù)結(jié)果為74.331%.對預(yù)測結(jié)果的影響因素有輸入數(shù)據(jù)的質(zhì)量、隱含層節(jié)點(diǎn)數(shù)的定義等,所以在確定BP 神經(jīng)網(wǎng)絡(luò)輸入層節(jié)點(diǎn)、輸出層節(jié)點(diǎn)后,還需對隱含層節(jié)點(diǎn)的數(shù)量進(jìn)行不同的設(shè)定來尋找較高的預(yù)測結(jié)果[13].基于大量實(shí)驗(yàn),發(fā)現(xiàn)當(dāng)設(shè)定隱含層節(jié)點(diǎn)數(shù)為14 時,得到的較高的預(yù)測結(jié)果為:[82.24%,78.5%,80.37%,83.18,%,79%,84.11%,81.3%,83.18%,74.3%,78.28%].從數(shù)據(jù)中同樣可以發(fā)現(xiàn),最小值為74.3%,最大值為84.11%,最大值與最小值差距較大,所以對10 次預(yù)測結(jié)果求得均值為80.446%.

      圖5 10 折交叉驗(yàn)證過程示意圖

      5 結(jié)語

      在對數(shù)據(jù)進(jìn)行分類前,需要對數(shù)據(jù)進(jìn)行噪聲剔除、數(shù)據(jù)降維、數(shù)據(jù)規(guī)范化、數(shù)據(jù)平衡預(yù)處理,可保證數(shù)據(jù)在訓(xùn)練過程中,減少訓(xùn)練時間,并且可使訓(xùn)練得到的BP 神經(jīng)網(wǎng)絡(luò)更為準(zhǔn)確,從而可以得到較高的預(yù)測結(jié)果.BP 神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)中的各層節(jié)點(diǎn)都是由數(shù)據(jù)來控制的,但隱含層的節(jié)點(diǎn)的設(shè)定在一定范圍內(nèi)是隨機(jī)的,不同的隱含層節(jié)點(diǎn)的設(shè)定BP 神經(jīng)網(wǎng)絡(luò)的預(yù)測結(jié)果是有一定的影響的,所以需要基于大量的實(shí)驗(yàn)來確定使BP 什么網(wǎng)絡(luò)具有最高預(yù)測性能的隱含層節(jié)點(diǎn)數(shù)目.基于交叉驗(yàn)證的BP 神經(jīng)網(wǎng)絡(luò),幾乎所有的數(shù)據(jù)都經(jīng)過了BP 神經(jīng)網(wǎng)絡(luò)算法的訓(xùn)練,既可以在對數(shù)據(jù)進(jìn)行過采樣的過程中防止產(chǎn)生過擬合,訓(xùn)練出的BP 神經(jīng)網(wǎng)絡(luò)更為穩(wěn)定,降低了隨機(jī)性,而且多次訓(xùn)練得到的預(yù)測結(jié)果再求均值,可以避免偶然的誤差對結(jié)果造成的影響,使測試結(jié)果更接近正確的、真實(shí)的結(jié)果.

      猜你喜歡
      數(shù)據(jù)量恒星類別
      基于大數(shù)據(jù)量的初至層析成像算法優(yōu)化
      計算Lyapunov指數(shù)的模糊C均值聚類小數(shù)據(jù)量法
      (18)刺殺恒星
      高刷新率不容易顯示器需求與接口標(biāo)準(zhǔn)帶寬
      寬帶信號采集與大數(shù)據(jù)量傳輸系統(tǒng)設(shè)計與研究
      電子制作(2019年13期)2020-01-14 03:15:18
      恒星的演化
      恒星不恒
      奧秘(2018年10期)2018-10-25 05:38:56
      服務(wù)類別
      新校長(2016年8期)2016-01-10 06:43:59
      論類別股東會
      商事法論集(2014年1期)2014-06-27 01:20:42
      中醫(yī)類別全科醫(yī)師培養(yǎng)模式的探討
      灵台县| 上高县| 克拉玛依市| 绵阳市| 开远市| 图木舒克市| 塔城市| 蒙山县| 云龙县| 宁明县| 泊头市| 横山县| 武山县| 通渭县| 沾化县| 沙坪坝区| 南江县| 渝北区| 株洲市| 全州县| 察隅县| 上林县| 禄丰县| 宿松县| 司法| 江油市| 临漳县| 兴仁县| 屏南县| 黎城县| 峨眉山市| 宁都县| 和田县| 保康县| 嵊泗县| 保亭| 五华县| 石城县| 改则县| 怀来县| 老河口市|