智能水質預測系統(操作手冊)課件_第1頁
智能水質預測系統(操作手冊)課件_第2頁
智能水質預測系統(操作手冊)課件_第3頁
智能水質預測系統(操作手冊)課件_第4頁
智能水質預測系統(操作手冊)課件_第5頁
已閱讀5頁,還剩43頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、48智能水質預測系統V1.0智能水質預測系統操作手冊項目名稱:基于智能計算的影響河流水質的分類預測軟件名稱:智能水質預測系統編 撰:編撰日期:文檔變更記錄序號主要更改內容版本號更改人更改時間1第一次發布V1.0朱磊2011-8-152文檔完善V1.0朱磊2011-8-273456目錄1 運行環境32 使用說明52.1 主界面操作62.2 導入數據文件進行仿真預測82.3 預測結果顯示132.4 結果對比152.5 結果另存為172.6 手動輸入數據182.7 導出指標變量192.8 版本轉換222.9 開發團隊232.10 技術支持243 技術參考253.1主要功能點253.2仿真預測模型構造

2、263.3仿真預測模型編譯成.Net組件383.4.Net組件集成至C#程序中424 開發體會451 運行環境要運行智能水質預測系統,用戶的計算機必須裝有.Net Framework 4.0和MCRInstaller(MATLAB編譯器),才能正常運行。如果用戶的電腦上沒有安裝.Net Framework 4.0,是無法運行本軟件的,系統會自動彈出提示對話框。Windows XP用戶出現對話框如圖1所示。Windows 7用戶出現對話框如圖2所示。圖1 在Windows XP中無法運行彈出的對話框圖2 在Windows 7中無法運行彈出的對話框只有計算機只有安裝了.Net Framework

3、4.0,才能進入系統。但如果用戶的電腦上沒有安裝MCRInstaller(MATLAB編譯器),雖然也能進入本系統,但是無法進行仿真操作的,當用戶進行仿真操作時,系統會自動彈出類似于如圖3的對話框。圖3 沒有安裝MATLAB編譯器無法仿真彈出的對話框用戶電腦只有同時安裝了.Net Framework 4.0和MCRInstaller,才能正常運行本軟件。為什么不安裝.Net Framework 4.0和MCRInstaller,該軟件不能正常運行?因為本軟件是基于C#和matlab開發的混合編程,要讓操作系統能運行本軟件,只有安裝了.Net Framework 4.0,系統才能運行C#程序;本

4、軟件的預測仿真功能是用matlab編譯的.Net組件,只有安裝了MCRInstaller,操作系統才能運行matlab編譯的組件。注意:在安裝.Net Framework 4.0和MCRInstaller時,系統可能會提示用戶安裝諸如wic_x86_chs、WindowsXP-KB942288-v3-x86等補丁,那是因為操作系統要運行.Net Framework 4.0和MATLAB編譯器,需要這些補丁,為了軟件能正常運行,請安裝這些提示的補丁。2 使用說明這部分主要是為初次使用本軟件的用戶,簡單講解軟件涉及的各種操作步驟和要點。2.1 主界面操作打開本軟件之后,軟件會有啟動畫面,如圖4所示

5、。圖4 打開軟件后的啟動畫面經過短暫的啟動畫面后,軟件自動進入系統的主界面,界面簡潔美觀。如圖5所示:圖5 系統主界面此時,用戶在系統主界面上能夠點擊的按鈕為5個,分別為“導入數據文件”、“手動輸入數據”、“導出指標變量”、“版本轉換”、“開發團隊”。如圖6所示:圖6 用戶在主界面能夠點擊的5個按鈕系統主界面只有5個按鈕嗎?不是。有些按鈕在系統啟動時影藏了。開發者考慮到系統的運行流程,將需要前因觸發的事件,先隱藏起來,等到觸發事件的前因滿足了。響應的按鈕會自動出現。這樣做,能夠幫助用戶屏蔽許多誤操作,也使該系統操作更加人性化。當用戶把鼠標移動到某個按鈕上時,系統會自動彈出具有透明效果的窗體,向

6、用戶顯示此時鼠標所在按鈕的簡要功能說明,方便用戶操作。當用戶把鼠標從按鈕上移開時,功能說明窗體會自動消失,方便好用。這么操作,使軟件充滿人性化。提示窗體效果如圖7所示。圖7 提示窗體效果2.2 導入數據文件進行仿真預測要對數據進行智能仿真,預測結果,前提得有數據,本軟件有2種輸入數據方式:導入已有的數據文件(Excel文檔);手動輸入數據。另外,本系統還允許,在導入已有的數據文件(Excel文檔)的情況下,手動添加數據、修改數據、刪除數據,使軟件操作更加靈活。首先向用戶介紹如何導入已有的數據文件(Excel文檔)。(1)點擊“導入數據文件”按鈕,如圖8所示。圖8 點擊“導入數據文件”按鈕(2)

7、系統會出現“打開文檔界面”,能夠導入的文件為Excel文檔,后綴名格式為(.xls或.xlsx),效果及操作步驟如圖9所示。圖9 打開文檔界面的效果及操作步驟(3)單擊圖9中的“打開文檔頁面”的“打開”按鈕后,進入Excel的“工作表選擇”界面,如圖10所示。圖10 Excel的“工作表選擇”界面感覺導入數據好復雜啊選擇了Excel之后,為什么還要選擇工作表啊?其實,開發人員已經將導入工作做得最簡單化了。因為導入數據的這個功能,開發人員采用了基于最新LINQ技術的LinqToExcel控件,并且加入了數據過濾算法,使數據導入既快速又可以成功過濾掉Excel中可能存在的空行(原始控件將數據中存在

8、的空行默認為是0)。至于選擇了Excel之后,還要選擇工作表,那是讀取每個Excel文檔數據的必須步驟。來看一下Excel的界面,如圖11所示,紅色框圈出來的就是工作表。其實,每個Excel都默認有3個工作表,用戶可以把數據存在一個Excel的不同工作表中。圖11 Excel中工作表的布局(4)在圖10界面中,選擇Excel文檔中數據所在的工作表,點擊“確定”按鈕,系統就會自動返回到“主界面”。此時,文件輸入框中就顯示了要導入數據的路徑,并且在“主界面”也多了7個按鈕,效果如圖12所示:圖12 選擇Excel后放回主界面的效果在圖12中,“指標預測”按鈕共有7個,當用戶把鼠標移動到按鈕上時,系

9、統會自動彈出具有透明效果的提示框,顯示當前鼠標所在按鈕對應的具體指標預測說明。當用戶把鼠標移開按鈕時,信息提示窗口會自動消失。用戶可以根據自己數據指標的需求,選擇點擊合適的“指標預測”按鈕(按鈕具體對應的預測指標可參見2.7節)。點擊“指標預測”按鈕后,系統會根據文件輸入框中顯示的數據導入路徑,自動導入用戶選擇的Excel文檔中的數據,并且進入“智能水質預測”界面,將數據以表格形式,形象地將導入的數據展現在用戶面前,效果如圖13所示。圖13 數據導入智能水質預測界面的效果進入“智能水質預測”界面后,如圖13所示。可供用戶點擊的按鈕有“開始”按鈕和表格的導航欄中的相關按鈕。用戶如果想: 直接仿真

10、預測,可以點擊“開始預測”按鈕進行仿真預測。點擊“開始預測”按鈕后,該按鈕字樣會變成“重新預測”,在預測仿真階段,該按鈕功能會自動失效,再點擊該按鈕,不會有任何效果。另外,“暫停取消”按鈕功能會生效。如果想在預測仿真階段暫停,可以點擊“暫停取消”按鈕。 先修改、刪除、添加數據后仿真預測,(在此說明一點,系統導入的數據是Excel數據的副本,暫存在內存數據庫中,用戶對副本數據的修改、添加、刪除是不會對原始數據有任何影響,不會因為可能存在的誤操作而導致原始數據的丟失)。可以:(1) 修改數據:鼠標雙擊表格中數值所在位置(或者選中表格中數值所在位置,再按鍵盤上的F2鍵),即可直接修改數據。(2) 刪

11、除數據:鼠標單擊要刪除數據的行號,然后再點擊導航欄上的按鈕,即可刪除選中行的數據。(3) 添加數據:在表格的最后一行的行號前有“*”號,用戶可以在此行上添加數據。在表格中修改、刪除、添加數據后,可以點擊“開始預測”按鈕進行仿真預測。在軟件的表格中對數據進行了修改、添加或刪除操作后,萬一手動輸入了錯誤數據,會不會破壞原來在Excel文檔中的數據啊?不會。因為開發者在編寫該軟件時,已經考慮到了這一點。所以,在導入數據時,其實是將原始數據的副本導入到內存數據庫中,然后系統再對內存數據庫中的數據,進行智能仿真預測。即便用戶在系統中對數據修改、添加或刪除了數據,也僅僅是對原始數據的副本進行了修改、添加或

12、刪除,是不會影響Excel文檔中的原始數據的。除非,用戶直接在Excel文檔里面對數據進行修改、添加或刪除操作,并對Excel文檔進行了保存,這么做就把原始數據給更新了。智能水質預測界面的導航欄(如圖14所示)中其他按鈕的相關操作:圖14 導航欄(1) 點擊按鈕,數據選中框會跳到第一條數據位置。當數據選中框在第一條數據位置時,該按鈕會變成灰色,操作功能失效失效。(2) 點擊按鈕,數據選中框會跳到上一條數據位置。當數據選中框在第一條數據位置時,該按鈕會變成灰色,操作功能失效失效。(3) 在紅色輸入框中輸入右邊數字的任意數字,按回車鍵,數據選中框會自動跳到紅色輸入框中數字所對應的表格位置。(4)

13、點擊按鈕,數據選中框會跳到下一條數據位置。當數據選中框在最后一條數據位置時,該按鈕會變成灰色,操作功能失效失效。(5) 點擊按鈕,數據選中框會跳到最后一條數據位置。當數據選中框在最后一條數據位置時,該按鈕會變成灰色,操作功能失效失效。2.3 預測結果顯示在仿真預測結束后,系統會出現一個餅狀圖,告知用戶剛才的進行仿真預測數據中污染和非污染的樣本所占比例。表格會多出2列添加在最后,一列是“仿真結果”,另一列是“修正結果”。修正結果是1,代表水質污染,為0代表水質未污染。另外系統也會根據預測結果,給污染的水質數據表上紅色,未污染的水質表上綠色。“開始預測”按鈕會變成“重新預測”按鈕。在仿真預測結束后

14、,在“智能水質預測界面”會多出2個按鈕,分別是“結果另存為”和“結果對比”,如圖15所示:圖15 完成預測之后智能水質預測界面的效果預測結束之后,用戶還可以通過修改、刪除、添加數據,進行重新預測仿真。點擊“重新預測”按鈕就可以重新仿真預測。為什么運行軟件后,第一次仿真要花很一些時間,但是重新預測后,反而速度卻很快?這個問題涉及到了相關編程技術。因為該軟件是基于C#和matlab關于BP神經網絡的混合編程。這個軟件的編寫思路是用C#做界面,matlab做算法,matlab調試完畢后,將其編譯成.Net組件,然后用C#調用(專業一點說,編譯的.Net組件相當于是一個類,里面的算法功能就相當于是類的

15、方法)。在C#程序初次調用matlab編譯的.Net組件時,需要一個組件預熱的過程(專業一點說,是混合編程中對類的申明),所以要花一段時間,而在此仿真預測時,組件已經預熱過(類已申明),所以調用速度是極快的。另外,在組件預熱過程中,會出現界面“假死”的現象,為了解決因此造成用戶以為軟件死機的誤解,開發人員采用了backgroundWorker組件,實現軟件的異步操作,即在軟件預測時,用戶在等待,為了使用戶不產生長時間等待的焦躁感,在組件預熱過程的同時,加入了進度條,使用戶能夠有耐心稍等片刻,等待軟件預測的結果。為什么在運行仿真預測時,等了很長時間,結果彈出下面的提示對話框啊?是不是軟件壞了啊?

16、請放心,您的軟件沒有壞。這個對話框是開發人員人為加進去的,目的是:如果軟件無休止等待下去,那么會造成用戶時間的白白浪費,所以,本軟件等待時間達到了規定的時間上限,就會彈出這個對話框提醒用戶。其實,在一般情況下,是不會出現這個對話框的(即用戶的等待預測結果時間是不會超過指定時間上限的),造成這種情況的唯一原因,也是開發人員在開發過程中很偶然地發現的,就是當運行本軟件的計算機聯網時,等待軟件預測結果就會一直等待下去。當斷網后,再運行本軟件時,不需要花太長時間(時間主要花在了組件的預熱上),就能返回預測結果了。所以,開發人員通過多次實驗,總結出了解決方案:斷開網絡,重新啟動本軟件,即可仿真預測。造成

17、這樣的原因,可能是matlab版本的緣故。請您放心,軟件本身的編寫是沒有任何問題的。2.4 結果對比預測結果出來之后,如果用戶想知道系統預測結果的準確率,必須滿足2個條件:(1) 有準確的結果數據(1代表污染,0代表不污染)(2) 結果數據和導入的指標數據必須一一對應,結果個數和指標數據個數必須一致,而且得保證結果數據和指標數據之間是沒有錯位的。在此基礎上,用戶可以通過點擊智能水質預測界面上的“對比結果”按鈕(如圖16紅色框圈出所示)。圖16 智能水質預測界面的“結果對比”按鈕點擊“對比結果”按鈕,系統會自動出現“導入結果文件”的對話框,效果如圖17所示。圖17 導入結果文件的界面點擊圖17中

18、的“導入結果文件”按鈕,出現“打開文件“對話框,能夠導入的文件為Excel文檔,后綴名格式為(.xls或.xlsx),之后“導入結果文件”會變形程如圖18所示。圖18 選定導入數據文件路徑后的變形界面選擇結果數據所在工作表,點擊“確定”按鈕,系統就進行仿真結果和導入結果的比較了。“結果比較”結束后,會有一個餅狀圖出現,告知用戶仿真的正確率。另外,軟件還會生成一個表格,將系統生成的仿真結果和修正結果,連同用戶導入的結果數據一并導入到系統的表格中,并根據仿真結果是否正確進行標色,藍色表示仿真正確,紅色表示仿真錯誤,使結果對比鮮明地展現在用戶面前。運行效果如圖19所示。圖19 結果對比界面效果2.5

19、 結果另存為在仿真預測結束后,用戶還可以通過點擊“智能水質預測”界面中的“結果另存為”按鈕(如圖20紅色選中框所示),將仿真結果導出到Excel文檔中。圖20 智能水質預測界面的“結果另存為”按鈕點擊圖20中“結果另存為”按鈕,會出現“保存文檔”對話框(如圖21所示),選擇導出數據的位置,寫上文件名,就可以導出仿真數據了。圖21 保存文檔對話框2.6 手動輸入數據如果用戶沒有數據文件可以導入,也可以通過手動輸入數據的方式進行水質仿真預測。主界面的“手動輸入數據”按鈕(如圖22紅色選中框所示),為用戶提供了手動輸入數據的功能。圖22 主界面的“手動輸入數據”按鈕點擊“主界面”的“手動輸入數據”按

20、鈕,輸入框會提醒用戶現在選擇的是“手動輸入模式”,然后用戶可以點擊符合輸入數據條件的“指標預測”按鈕,進行預測,過程如圖23所示:圖23 在手動輸入數據模式下可點擊的指標預測按鈕點擊任意圖23中的指標預測按鈕,進入智能水質預測界面,如圖24所示。圖24 手動輸入數據模式進入的智能水質預測界面在圖24中,給用戶顯示的是一行空白表格,用戶可以按照指標的提示輸入數據,輸完一行后,系統會自動添加一行空白表格,以供用戶輸下一行的數據。數據的添加、修改和刪除操作,和前文“導入數據文件”后的添加、修改和刪除操作類似。添加完數據之后的預測仿真也和導入數據文件仿真雷同,在此不再贅述,詳細步驟查看前文的2.2章節

21、和2.3章節。2.7 導出指標變量本軟件對指標變量有嚴格的要求,只有指標變量符合要求后,系統才能準確導入數據,否則,將無法導入正確的數據。規范的指標變量如以下列表所示。23個指標變量:CODpHNH3-N揮發酚TN六價鉻CODmnTPBOD5TCN石油類Cd總銅總鋅PbHgAsSeF硫化物LAS溶解氧電導率21個指標變量:CODpHNH3-N揮發酚TN六價鉻CODmnTPBOD5TCN石油類Cd總銅總鋅PbAsF硫化物LAS溶解氧電導率18個指標變量:CODNH3-N揮發酚TN六價鉻CODmnTPBOD5TCN石油類Cd總鋅PbAs硫化物LAS溶解氧電導率15個指標變量:CODNH3-N揮發酚

22、TN六價鉻CODmnTPTCN石油類Cd總鋅PbAs溶解氧LAS12個指標變量:NH3-N揮發酚TN六價鉻CODmnTPTCN石油類AsCd溶解氧Pb9個指標變量:NH3-NTNAsCdCODmnTPPb石油類溶解氧6個指標變量:NH3-NTN石油類CdCODmnTP為方便用戶,添加了指標變量導出功能,用戶可以點擊“導出指標變量”按鈕進行操作,如圖25紅色選中框所示。圖25 主界面的“導出指標變量”按鈕點擊圖25中“導出指標變量”按鈕后,會出現如圖26界面:圖26 導出標準的指標變量界面選擇圖26中用戶所需要導出的指標變量,點擊“導出”按鈕,會出現“選擇文件夾”的對話框(如圖27所示),選擇導

23、出的路徑,點擊圖27中的“確定”按鈕,就可以將標準的指標變量,以Excel文檔的形式導出了,方便用戶采集數據時使用,更方便用戶將采集數據進行仿真預測時使用。圖27 選擇文件夾界面2.8 版本轉換為了使用更合適于用戶的仿真模型,軟件提供了版本裝換功能(升級+還原)。點擊主界面中的“版本轉換”按鈕(如圖28紅色選中框所示),會有如何進行版本轉換的幫助文檔。圖28 主界面的版本轉換按鈕系統彈出一個界面,幫助內容如下:由于目前系統暫無法在運行的情況下,進行補丁替換,但也為用戶提供了版本轉換的方法。點擊“版本轉換”按鈕,告知你版本轉化的方法:可以通過將升級補丁直接復制到本軟件根目錄下的“智能水質預測系統

24、binDebug”文件中。補丁個有三個文件,分別為: BP.dll BP.xml version.txt在替換文件時,務必將上述三個文件都替換掉。為什么不能直接在軟件中轉換不同版本的仿真預測模型呢?開發人員也曾嘗試過直接在軟件中轉換不同版本的仿真預測模型。但是都失敗了。原因是,仿真預測模型都是通過.Net組件加載在C#程序上的,只要軟件已啟動,.Net組件自動加載在程序上,直接進行版本轉換,C#程序是不允許的,因為會破壞C#程序的正常運行。所以,目前版本轉換的唯一辦法就是手動轉換。如果給您帶來了不便,還望見諒。可以說一下三個版本補丁文件: BP.dll BP.xml version.txt分別

25、具體指什么?BP.dll是用matlab編譯的模型.Net組件,而BP.xml是該.Net組件的配置文檔,前2個組件時必須一起替換的。而version.txt是版本文檔,主要是為了提示用戶該組件的版本號,并且防止版本轉換后的混淆。這3個補丁,是開發人員提供的。2.9 開發團隊用戶可以點擊主界面的“開發團隊”(如圖29紅色選中框所示)按鈕,了解本軟件的相關開發人員。圖29 主界面的“開發團隊”按鈕點擊圖29中的“開發團隊”按鈕,系統會自動顯示相關開發人員和軟件相關信息,如圖30所示。圖30 開發團隊和軟件相關信息你們會更新本軟件嗎?會的。但主要是更新預測模型,也可能會適時更新整個系統。只要用戶有

26、什么要求,我們會竭盡全力,盡量滿足顧客合理的要求。版本的更新,按以下原則:若升級系統,則增加版本號中的第一位數字。Eg:原來系統版本號為:V1.0,升級之后版本號為:V2.0。若升級預測模型,則增加版本號中的第二位數字。Eg:原來系統版本號為:V1.0,升級之后版本號為:V1.1。升級軟件,能讓軟件更有生命力,滿足顧客的使用要求,保持軟件自身的競爭力。2.10 技術支持使用本軟件的用戶,如遇到什么問題,可以將問題發送到:Lake131,我們會提供最及時的幫助。另外,您有什么意見或想咨詢軟件相關技術問題,也歡迎發送文件至本郵箱。3 技術參考此部分內容是提供給想拓展本軟件功能的開發人員參考。主要涉

27、及該軟件的主要功能點、仿真預測模型的構造和編譯、預測模型如何集成到C#程序中。3.1 主要功能點一、 完成了C#和matlab關于BP神經網絡的混合編程。C#為了編寫友好的軟件界面,matlab則是為了智能計算。由于C#是近年興起,另外BP神經網絡在matlab中涉及比較復雜的工具箱函數。目前,在網上,C#和matlab關于BP神經網絡的參考資料,基本上都不是很系統、很全面。小組成員在設計matlab組件時,遇到了諸如修改配置文件、添加哪些BP神經網絡方法函數、傳遞參數類型的困難。經過小組的不懈努力,已一一攻克。本軟件可作為現有關于C#和matlab涉及BP神經網絡混合編程參考資料的有力補充。

28、本軟件也能用于科學研究和智能算法學習。二、 采用Excel+內存數據庫的方法取代SQL Server,使軟件能在沒有安裝任何數據庫的情況下運行,擴大了軟件的使用人群。仿真預測的數據采用的都是Excel數據的副本,也保證了數據的原始性。采用內存數據庫,則使數據讀取、修改、刪除等操作響應更加快速。并且應用LINQ技術,完成了將數據快速從Excel導入至軟件的功能。另外自行編寫了數據過濾算法,能講無關緊要的指標過濾掉,亦能將Excel數據中可能存在的空行檢測出來,防止軟件將空行誤讀為零,將空行巧妙過濾掉。三、 同時將matlab中的智能算法編譯成.Net組件,讓C#進行調用,使軟件能夠在沒有安裝ma

29、tlab軟件的計算機上運行,減少了使用者額外安裝其他軟件的麻煩。同時通過編譯出的應用程序擴展,完成軟件的無縫升級和還原。將自己項目小組完成論文中提及的新型模型通過matlab編譯成組件,成功導入到軟件之中,完成智能預測。動態地根據仿真結果,為污染和非污染的水質指標表上鮮明的顏色,使用戶對仿真結果一目了然。四、 實踐了諸多軟件工程核心思想。軟件編寫采用了“自頂而下”和“自底而上”相結合的設計思路,軟件框架的構建采用“自頂向下”的方法,便于各個功能點模塊無縫接入。各個子模塊則采用“自底向上”的方法,將復雜的功能分散程逐個簡單的子模塊,將子模塊遇到的困難一一攻克,調試成功后將其集成至軟件框架之中。另

30、外還實踐了軟件工程中模塊的功能內聚的思想,將自動導入數據仿真和手動輸入數據仿真的操作內聚到一個模塊之中。將7個智能預測按鈕事件全都繼承到了一個功能模塊之中,是原本冗余的代碼立刻瘦身,同時增強了代碼的健壯性。編程過程中,也完成了諸多功能和特效:(1)實現同步窗體,同時實現子窗體的透明效果;調用API實現打開和關閉窗體的動畫效果,增加點擊按鈕、打開窗體和關閉窗體的音效;添加皮膚引擎,使軟件的界面更加美觀大方。(2)在傳統軟件針對button(按鈕)千篇一律添加Click事件的規律下,本軟件還為button(按鈕)添加了MouseEnter和MouseLeave事件,使按鈕操作更加生動、靈活。(3)

31、軟件實現了文件操作。能將仿真后的結果,從軟件中導出到Excel文檔中。同時也實現了文件到文件夾的拷貝功能,實現規范指標變量的導出。(4)軟件采用backgroundWorker控件(這個控件一般只會在Effective C#書籍中才會提及),實現了異步操作,成功解決了在智能預測時,調用matlab組件會出現界面“假死”的現象。3.2 仿真預測模型構造本軟件構造的智能預測模型的核心是:BP神經網絡。而BP神經網絡,可以分為2個過程。第1個過程是:訓練;第2個過程是:仿真。智能仿真預測模型的構造思路是:開發人員將訓練出的預測率高的模型保存起來,然后將好的預測模型導入到matlab程序中,進行仿真代

32、碼的編寫,最后將其編譯成.Net組件。在這過程中,開發人員需掌握BP神經網絡和遺傳算法的模型和過程,另外還得具備matlab的操作經驗。仿真預測模型的構造,分為2個階段。第一個階段是:訓練預測模型,預測率高的模型進行保留,預測率低的模型則丟棄。第二個階段是:將訓練預測率高的模型,導入到matlab的仿真程序中,進行組件的編譯。我基本上懂BP神經網絡和遺傳算法了,那么到底是訓練什么智能模型呢?主要是訓練二種模型。第一種是BP神經網絡模型,第二種是遺傳算法優化BP神經網絡。訓練的這二種模型都有其優缺點。兩個模型之間的優缺點見表1所示。表1 二種訓練模型的優缺點BP神經網絡模型遺傳算法優化的BP神經

33、網絡模型優點訓練速度很快,只要訓練過程中訓練收斂程度好,在30秒之內,能夠訓練出模型。所有仿真結果基本能無限逼近所要的結果。訓練出的模型能跳出局部最優,尋找到全局最優。訓練出的模型,預測率浮動不大。缺點個別仿真結果不是很精確。訓練的BP神經網絡模型的權值和閾值,可能是局部最優,而不是全局最優。訓練出的模型,預測率浮動較大。比較權威的遺傳算法matlab工具包是英國設菲爾德大學開發的遺傳算法工具箱。遺傳算法優化BP神經網絡所用時間比較長。一般訓練時間要在5分鐘左右。筆者認為,不管是BP神經網絡訓練出的模型,還是遺傳算法優化的BP神經網絡訓練出來的模型,只要能保證仿真預測率高,那么就可以采用。算法

34、都有優缺點,應該取長補短。在BP神經網絡訓練之前,要對數據進行歸一化(標準化)。可以在matlab中輸入如下指令:Y=Zscore(X);其中,X就是所有數據,Y是標準化后的數據。 將標準化后的數據,分成二組。第一組是:訓練樣本輸入數據。第二組是:仿真樣本輸入數據。另外,針對訓練樣本輸入數據,給出對應的訓練輸出數據(樣本污染標為1,樣本未污染標為0),作為模型訓練時用。針對仿真樣本輸入數據,給出對應的仿真輸出數據(樣本污染標為1,樣本未污染標為0),作為模型判斷預測率時用。為什么要將數據歸一化(標準化)?一般來說,在實際應用中,各指標之間存在著量綱、數量級等不同方面的問題。因此,在進行訓練和仿

35、真模型時,要對數據進行標準化。BP神經網絡訓練matlab參考代碼:%水質檢測BP神經網絡數據處理(data1、data2、test1、test2都是歸一化數據) %data1 訓練輸入數據%data2 訓練結果輸出數據%test1 仿真輸入數據%test2 仿真結果輸出數據%test_num 仿真數據個數P=data1; %訓練輸入數據(轉置)T=data2; %訓練輸出數據(轉置) % 梯度下降法:traingd% 改進BP算法:traingdm traingda trainrp% 共軛梯度算法:traincgf traincgp traincgb trainscg% 擬牛頓算法: tra

36、inbfg % 一步正割的BP訓練法:trainoss % Levenberg-Marquardt訓練方法:trainlm %trainrp 6-8net=newff(minmax(P),8,1,logsig,logsig,trainlm);%net=newff(minmax(P),7,1,logsig,logsig,trainrp);%net=newff(minmax(P),7,1,purelin,logsig,trainlm);%net=newff(minmax(P),7,1,logsig,logsig,trainlm);%net=newff(minmax(P),7,1,logsig,lo

37、gsig,trainbfg);%net=newff(minmax(P),7,1,purelin,logsig,trainrp); net.trainParam.epochs=200;net.trainParam.goal=1e-5; net=train(net,P,T); %訓練 %測試P_test=test1; %測試輸入數據(轉置)T_test=test2; %測試輸出數據 a=sim(net,P_test); A=a; B=A0.5; C=cat(2,A,B,T_test) i=1;n=0; while i= test_num %test_num 具體情況自己定值 if C(i,2)=C

38、(i,3) n=n+1; end i=i+1;end n %仿真正確的個數num=n/i %預測正確率 x=n,i-n; pie(x) %餅狀圖遺傳算法優化BP神經網絡參考代碼:%權值和閾值優化的主程序(data1、data2、test1、test2都是歸一化數據)%data1 訓練輸入數據%data2 訓練結果輸出數據%test1 仿真輸入數據%test2 仿真結果輸出數據%test_num 仿真數據個數num1=6; %輸入層神經元個數,自行根據要求修改num2=7; %隱含層神經元個數,自行根據要求修改 P=data1; %(轉置)T=data2; %(轉置) DR=-40;40;BB=

39、-20;20; DR1=rep(DR,1,num1*num2); %BB1=rep(BB,1,num2); %2 DR2=rep(DR,1,num2); %2 FieldDR=cat(2,DR1,BB1,DR2,BB); %權值和閾值的取值范圍 Chrom=crtrp(40,FieldDR); %產生40個初始群體MAXGEN=200; %最大運行代數GGAP=0.9; %代勾gen=0; %代計數器Jm=1;tracec=zeros(MAXGEN,1); % 用于存儲訓練誤差ObjV=objv2b(Chrom,40,P,T); %調用obj2b函數計算當前群體的目標函數值while (gen

40、0) tic FitnV=ranking(ObjV); maxfit index=max(FitnV); Selch=select(sus,Chrom,FitnV,GGAP); %代勾是0,9, Chrom經選擇后是36個個體 Selch=recombin(reclin,Selch,0.7); %進行算術交叉 Selch=mutate(mutbga,Selch,FieldDR,0.01); %變異 ObjVSel=objv2b(Selch,36,P,T); %求目標函數值 Chrom ObjV=reins(Chrom,Selch,1,1, ObjV,ObjVSel);%重構組成40個個體 gen=gen+1; Jm index=min(ObjV); %記錄最優目標函數值的變化 tracec(gen,1)=Jm; if (gen=1) t(gen,1)=toc; else t(gen,1)=toc+t(gen-1,1); endendplot(1:200,tracec,k-.); P=data1; %(轉置)T=data2; %(轉置)net=newff(minmax(P),num2,1,logsig,logsig,trainrp); %創建BP網絡 A=zeros(num2,num1); %B=zeros(1,num2);C=zeros(num2,1);D=z

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論