基于神經網絡的預測方法及系統的制作方法
【技術領域】
[0001]本申請涉及機器學習技術領域,尤其涉及一種基于神經網絡的預測方法及系統。
【背景技術】
[0002]神經網絡(Artificial Neural Network,ANN)算法的應用非常廣泛,例如一些股市預測、糧食產量預測、以及天氣預報等方面。研究人員一直追求更高神經網絡算法的精度,這樣就能應用更加廣泛的領域。然而,現有使用ANN算法進行預測時,經常會出現訓練樣本過于龐大的情況,使得ANN樣本訓練過于耗時耗力,甚至造成對樣本數據的浪費,使樣本數據利用率低下,而如果訓練樣本量小,則存在精度不高的問題。
【發明內容】
[0003]本申請提供一種基于ANN的預測方法及系統,其可應用于眾多領域,旨在提高使用ANN算法的預測精度的同時,還減少了對訓練樣本量的需求。
[0004]根據本申請的一個方面,本申請實施例提供一種基于ANN的預測方法,包括:按照常規ANN預測算法和常規ANN分類算法對訓練數據分別進行訓練,分別得到預測模型和分類模型;將測試數據分別輸入預測模型和分類模型,分別得到預測結果和分類結果;根據所述預測結果和所述分類結果的區間關系,確定所述預測結果的正確性;在確定出所述預測結果正確后,輸出按所述預測模型預測的預測結果。
[0005]根據本申請的另一方面,本申請實施例提供一種基于ANN的預測系統,包括:常規訓練模塊,用于按照常規ANN預測算法和常規支持ANN分類算法對訓練數據分別進行訓練,分別得到預測模型和分類模型;測試模塊,用于將測試數據分別輸入預測模型和分類模型,分別得到預測結果和分類結果;判斷模塊,用于根據所述預測結果和所述分類結果的區間關系,確定所述預測結果的正確性;預測模塊,用于在確定出所述預測結果正確后,輸出按所述預測模型預測的預測結果。
[0006]本申請實施例通過采用常規ANN預測算法與分類算法對訓練數據分別進行訓練,來得到預測模型和分類模型,然后將測試數據分別輸入預測模型和分類模型以得到預測結果和分類結果,對這兩種結果進行區間關系判斷,以此確定預測模型的預測結果是否正確,使得即使只有少量訓練樣本,由于結合了分類算法得到的分類結果予以判斷,從而可以提高預測的精度。
【附圖說明】
[0007]圖1是本申請一實施例的基于ANN的預測方法的流程示意圖;
[0008]圖2是圖1所示實施例的細化過程示意圖;
[0009]圖3是本申請一實施例的基于ANN的預測系統的結構示意圖。
【具體實施方式】
[0010]常規ANN預測算法首先將訓練數據標定,得到訓練好的預測網絡netl,然后將測試數據經過預測網絡netl得到預測結果。類似地,常規ANN分類算法是,首先對訓練數據進行標定,得到訓練好的分類網絡net2,然后將測試數據經過分類網絡net2得到分類結果。這兩種算法都屬于ANN算法的應用,但是都存在需要大量的訓練樣本、并且精度也有待提升的問題。
[0011 ]對此,本申請提出一種新的ANN建模方法,將常規ANN分類算法和常規ANN預測算法相結合,并將其應用于ANN建模中。本申請提供的基于ANN的預測方法將ANN預測算法與ANN分類算法相結合,相互印證,篩選出不一致的結果,由此得到合適的預測網絡(又稱預測模型),從而可以提高預測結果的準確性,實現提高ANN算法的精度。更進一步地,本申請在得到合適的預測模型后,在實際預測過程中,對同一測試數據進行復制后再輸入預測模型,獲得多個預測值,再對這些預測值進行去除最大最小值后求平均,將平均值作為最終的預測結果,從而進一步提高了預測結果的準確度。
[0012]為使本申請的目的、技術方案和優點更加清楚明白,下面將通過具體實施例并結合參考附圖對本申請作進一步說明。
[0013]如圖1和圖2所示,為本申請一實施例提供的一種基于ANN的預測方法的流程示意圖,包括常規訓練步驟SI 1、測試步驟S13、判斷步驟S15和預測步驟S17。
[0014]在常規訓練步驟S11中,按照常規ANN預測算法和常規ANN分類算法對訓練數據分別進行訓練,并分別得到預測網絡netl和分類網絡net2。這里常規ANN預測算法和常規ANN分類算法是指本領域普通技術人員公知的相關的ANN預測算法和ANN分類算法,本申請對此不做限制。
[0015]在測試步驟中S13,將測試數據分別輸入預測網絡netl和分類網絡net2,并分別得到預測結果R1和分類結果R2。這里將測試數據輸入預測網絡和分類網絡并進行訓練得到對應的結果的過程,也可采用本領域普通技術人員公知的相關技術實現,本申請對此不做限制。
[0016]在判斷步驟S15中,根據預測結果R1和分類結果R2的區間關系,確定預測結果R1的正確性。一種具體實現中,ANN預測算法涉及的訓練數據形式采用精確數值,ANN分類算法涉及的訓練數據形式是將精確數值按不同的幅值范圍歸類到不同區間,將區間數值應用于建立ANN的分類網絡。在本實施例,在步驟S15中,判斷預測結果R1是否屬于分類結果R2所在的區間,如果屬于,則保留預測結果R1;如果不屬于,則丟棄預測結果R1,然后重新進行預測,例如返回步驟S11,按照常規ANN預測算法重新訓練預測模型。
[0017]在預測步驟S17中,在確定出預測結果R1正確(即確定預測結果R1屬于分類結果R2所在的區間)后,本實施例的做法是將該預測結果R1作為最終的預測結果輸出。
[0018]本實施例通過采用常規ANN預測算法與ANN分類算法相互結合,同時使用,能夠充分利用神經網絡工具箱,提高了神經網絡算法的精度。
[0019]對于預測步驟S17,在另一實施例中,其在確定出預測結果R1正確(即確定預測結果R1屬于分類結果R2所在的區間)后,保留當前的預測網絡netl。然后或者同時,復制每一個測試數據Dci(i為正整數),得到多個同一測試數據如Dcl、Dc2、…、Dcn,n為總個數,然后將這多個同一測試數據Dcl、Dc2、…、Den輸入預測模型netl進行預測,得到多個預測值Rcl、Rc2、…、Ren,接著對這多個預測值Rc 1、Rc2、…、Rcn去掉最大值和最小值,而后求取平均值,該平均值作為最終的預測結果輸出。對于該實施例,預測模型建立成功后,實際預測過程中,對同一個數據輸入進行復制后再輸入模型中,從而可獲得多個預測值,對這些預測值去掉最大值和最小值,然后求平均值,作為最終的預測結果,這樣可充分利用有限數據進一步提高模型精度。
[0020]又一實施例中,對于常規訓練步驟S11,應用于常規ANN預測算法的訓練數據和應用于ANN分類算法的訓練數據是同一組數據,但是所得到的分類模型和預測模型在建立時所使用的