基于MIV的神經網絡變量篩選

1.案例背景

????????一般神經網絡中所包含的網絡輸人數據是研究者根據專業知識和經驗預先選擇好的,然而在許多實際應用中,由于沒有清晰的理論依據,神經網絡所包含的自變量即網絡輸入特征難以預先確定,如果將一些不重要的自變量也引入神經網絡,會降低模型的精度,因此選擇有意義的自變量特征作為網絡輸入數據常常是應用神經網絡分析預測問題中很關鍵一步。選擇神經網絡輸入的方法有多種,其基本思路是:盡可能將作用效果顯著的自變量選入神經網絡模型中,將作用不顯著的自變量排除在外。本例將結合BP神經網絡應用平均影響值(Mean Impact Value,MIV)算法來說明如何使用神經網絡來篩選變量,找到對結果有較大影響的輸人項,繼而實現使用神經網絡進行變量篩選。
????????BP(back propagation)神經網絡是一種神經網絡學習算法,其全稱為基于誤差反向傳播算法的人工神經網絡。圖25-1所示為單隱藏層前饋網絡拓撲結構,一般稱為三層前饋網或三層感知器,即輸入層,中間層(也稱隱藏層)和輸出層。輸入層各神經元負責接收來自外界的輸入信息,并傳遞給中間層各神經元;中間層是內部信息處理層,可以設計為單隱層或者多隱層結構;最后一個隱層傳遞到輸出層各神經元的信息,經進一步處理后,完成一次學習的正向傳播處理過程,由輸出層向外界輸出信息處理結果。BP神經網絡的特點是:各層神經元僅與相鄰層神經元之間相互全連接,同層內神經元之間無連接,各層神經元之間無反饋連接,構成具有層次結構的前饋型神經網絡系統。單層前饋神經網絡只能求解線性可分問題,能夠求解非線性問題的網絡必須是具有隱層的多層神經網絡。當實際輸出與期望輸出不符時,進入誤差的反向傳播階段。誤差通過輸出層,按誤差梯度下降的方式修正各層權值,向隱層、輸入層逐層反傳。周而復始的信息正向傳播和誤差反向傳播過程,是各層權值不斷調整的過程,也是神經網絡學習訓練的過程,此過程一直進行到網絡輸出的誤差減少到可以接受的程度﹐或者預先設定的學習次數為止。

????????Dombi等人提出用MIV來反映神經網絡中權重矩陣的變化情況,MIV被認為是在神經網絡中評價變量相關性最好的指標之一,也為解決此類問題開創了新思路。因此探索此類型的評價指標在實際工作中的運用以及尋找新的評價指標是值得研究的課題。
????????本例選擇MIV作為評價各個自變量對于因變量影響的重要性大小指標。MIV是用于確定輸人神經元對輸出神經元影響大小的一個指標,其符號代表相關的方向,絕對值大小代表影響的相對重要性。具體計算過程:在網絡訓練終止后,將訓練樣本P中每一自變量特征在其原值的基礎上分別加和減10%構成兩個新的訓練樣本P,和P. ,將P,和P:分別作為仿真樣本利用已建成的網絡進行仿真,得到兩個仿真結果A和A,求出A和A2的差值,即為變動該自變量后對輸出產生的影響變化值(Impact Value,1V),最后將IⅣ按觀測例數平均得出該自變量對于應變量——網絡輸出的MIV。按照上面步驟依次算出各個自變量的MIV值,最后根據MIV絕對值的大小為各自變量排序,得到各自變量對網絡輸出影響相對重要性的位次表,從而判斷出輸入特征對于網絡結果的影響程度,即實現了變量篩選。

2.模型建立

????????本例產生網絡訓練數據的方法如下:

3.MATLAB實現

?


%% 清空環境變量
clc
clear
%% 產生輸入 輸出數據% 設置步長
interval=0.01;% 產生x1 x2
x1=-1.5:interval:1.5;
x2=-1.5:interval:1.5;% 產生x3 x4(噪聲)
x=rand(1,301);
x3=(x-0.5)*1.5*2;
x4=(x-0.5)*1.5*2;% 按照函數先求得相應的函數值,作為網絡的輸出。
F =20+x1.^2-10*cos(2*pi*x1)+x2.^2-10*cos(2*pi*x2);%設置網絡輸入輸出值
p=[x1;x2;x3;x4];
t=F;%% 變量篩選 MIV算法的初步實現(增加或者減少自變量)p=p';
[m,n]=size(p);
yy_temp=p;% p_increase為增加10%的矩陣 p_decrease為減少10%的矩陣
for i=1:np=yy_temp;pX=p(:,i);pa=pX*1.1;p(:,i)=pa;aa=['p_increase'  int2str(i) '=p;'];eval(aa);
endfor i=1:np=yy_temp;pX=p(:,i);pa=pX*0.9;p(:,i)=pa;aa=['p_decrease' int2str(i) '=p;'];eval(aa);
end%% 利用原始數據訓練一個正確的神經網絡
nntwarn off;
p=yy_temp;
p=p';
% bp網絡建立
net=newff(minmax(p),[8,1],{'tansig','purelin'},'traingdm');
% 初始化bp網絡
net=init(net);
% 網絡訓練參數設置
net.trainParam.show=50;
net.trainParam.lr=0.05;
net.trainParam.mc=0.9;
net.trainParam.epochs=2000;% bp網絡訓練
net=train(net,p,t);%% 變量篩選 MIV算法的后續實現(差值計算)% 轉置后simfor i=1:neval(['p_increase',num2str(i),'=transpose(p_increase',num2str(i),');'])
endfor i=1:neval(['p_decrease',num2str(i),'=transpose(p_decrease',num2str(i),');'])
end% result_in為增加10%后的輸出 result_de為減少10%后的輸出
for i=1:neval(['result_in',num2str(i),'=sim(net,','p_increase',num2str(i),');'])
endfor i=1:neval(['result_de',num2str(i),'=sim(net,','p_decrease',num2str(i),');'])
endfor i=1:neval(['result_in',num2str(i),'=transpose(result_in',num2str(i),');'])
endfor i=1:neval(['result_de',num2str(i),'=transpose(result_de',num2str(i),');'])
end%% MIV的值為各個項網絡輸出的MIV值 MIV被認為是在神經網絡中評價變量相關的最好指標之一,其符號代表相關的方向,絕對值大小代表影響的相對重要性。for i=1:nIV= ['result_in',num2str(i), '-result_de',num2str(i)];eval(['MIV_',num2str(i) ,'=mean(',IV,')'])end

????????運行結果如下:

MIV_1 =1.2030MIV_2 =1.0120MIV_3 =-0.0376MIV_4 =0.0773

????????MIV_n的值為各項網絡輸出的MIV值,MIV被認為是在神經網絡應用中評價變量對結果影響大小的最好指標之一,其符號代表相關的方向,絕對值大小代表影響的相對重要性。
????????由此可見;第一,二個變量得出的MIV值較大;因為F值是靠x1?,x2計算出來的,與x3 ,x4無關,所以MIV篩選出的對結果有重要影響的自變量同真實情況一致。神經網絡使用MIV方法對變量進行篩選是可行的。

4.案例擴展

????????神經網絡模型本身可以應用于多重共線性的數據,所謂多重共線性(multicollinearity)是指回歸模型中的自變量之間由于存在精確相關關系或高度相關關系而使模型估計失真或難以估計準確。為了網絡的訓練效果更佳,使用了MIV算法來尋找對結果影響大的變量。不只是BP神經網絡,其他很多神經網絡在進行擬合,回歸,分類的條件下,都可以應用MIV算法進行變量篩選并且建立自變量更少.效果更好的神經網絡模型。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/39466.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/39466.shtml
英文地址,請注明出處:http://en.pswp.cn/news/39466.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

ECS服務器安裝docker

? 為了安裝并配置 Docker ,你的系統必須滿足下列最低要求: 64 位 Linux 或 Windows 系統 如果使用 Linux ,內核版本必須不低于 3.10 能夠使用 sudo 權限的用戶 在你系統 BIOS 上啟用了 VT(虛擬化技術)支持 on your s…

大數據課程I4——Kafka的零拷貝技術

文章作者郵箱:yugongshiyesina.cn 地址:廣東惠州 ▲ 本章節目的 ? 掌握Kafka的零拷貝技術; ? 了解常規的文件傳輸過程; 一、常規的網絡傳輸原理 表面上一個很簡單的網絡文件輸出的過程,在OS底層&…

【java】設計模式——單例模式

單例模式要點: 一個類只需要一個實例化對象;必須自行創建實例;必須自行向整個系統提供這個實例 實現: 只提供私有構造方法;有一個該類的靜態私有對象;提供一個靜態公有方法用于創建、獲取靜態私有對象&…

iOS_crash文件的獲取及符號化(解析)

文章目錄 1. 使用 symbolicatecrash 解析 .ips 文件:2. 使用 CrashSymbolicator.py 解析 ips 文件3. 使用 atos 解析 crash 文件4. Helps4.1 .ips 文件獲取4.2 .crash 文件獲取4.3 獲取 .dSYM 和 .app 文件4.4 使用 dwarfdump 查詢 uuid 5. Tips6. 總結 1. 使用 sym…

一百五十七、Kettle——Kettle最新的官網下載地址(之前的Kettle官網已經無法下載,真坑)

一、目的 之前使用的是kettle8.2,不需要額外下載pentaho-hadoop-shims-hdp30-8.2.2018.11.00-342.jar,因為kettle8.2本身自帶 但是kettle8.2在Linux上安裝后建立共享資源庫又有問題,沒辦法,只能換成kettle9.3 結果,k…

華為網絡篇 RIPv2的基礎配置-25

難度 1復雜度1 目錄 一、實驗原理 1.1 RIP的版本 1.2 RIP的路由更新方式 1.3 RIP的計時器 1.4 RIP的防環機制 二、實驗拓撲 三、實驗步驟 四、實驗過程 總結 一、實驗原理 RIP(Routing Information Protocol,路由信息協議)&am…

微服務概述-7

Shiro 框架 Shiro 是一個用于 Java 應用程序的安全框架。它提供了身份驗證、授權、加密和會話管理等功能,可以幫助開發人員構建安全可靠的應用程序。 Java 中針對權限管理常見的有 2 個著名的框架:spring security 和 shiro shiro 基本概念 credentia…

機器學習筆記 - 基于C++的??深度學習 二、實現卷積運算

一、卷積 卷積是信號處理領域的老朋友。最初的定義如下 在機器學習術語中: I(…)通常稱為輸入 K(…)作為內核,并且 F(…)作為給定K的I(x)的特征圖。 慮多維離散域,我們可以將積分轉換為以下求和 對于二維數字圖像,我們可以將其重寫為: <

編程練習(1)

目錄 一.選擇題 第一題&#xff1a; 第二題&#xff1a; 第三題&#xff1a; 第四題&#xff1a; 第五題&#xff1a; ?編輯 二.編程題 第一題&#xff1a; 第二題&#xff1a; 1.暴力方法&#xff1a; 2.數組法&#xff1a; 一.選擇題 第一題&#xff1a; 解析&…

【vue】簡潔優雅的火花線、趨勢線

來由 在github發現個好看易用的vue趨勢線組件&#xff0c;特此記錄。 效果 趨勢圖生成后效果如上&#xff0c;線條為漸變色&#xff0c;可設置是否平滑。具體線條走勢&#xff0c;根據數據動態生成。 使用 安裝 npm i vuetrend -S 引入 import Vue from "vue"…

MySQL性能分析之慢查詢日志查看

一、背景 MySQL的慢查詢日志是MySQL提供的一種日志記錄,他用來記錄在MySQL中響應的時間超過閾值的語句,具體指運行時間超過long_query_time(默認是10秒)值的SQL,會被記錄到慢查詢日志中。 慢查詢日志一般用于性能分析時開啟,收集慢SQL然后通過explain進行全面分析,一…

時序預測 | MATLAB實現WOA-CNN-BiLSTM鯨魚算法優化卷積雙向長短期記憶神經網絡時間序列預測

時序預測 | MATLAB實現WOA-CNN-BiLSTM鯨魚算法優化卷積雙向長短期記憶神經網絡時間序列預測 目錄 時序預測 | MATLAB實現WOA-CNN-BiLSTM鯨魚算法優化卷積雙向長短期記憶神經網絡時間序列預測預測效果基本介紹程序設計學習總結參考資料 預測效果 基本介紹 時序預測 | MATLAB實現…

Python案例|Pandas正則表達式

字符串的處理在數據清洗中占比很大。也就是說,很多不規則的數據處理都是在對字符串進行處理。Excel提供了拆分、提取、查找和替換等對字符串處理的技術。在Pandas中同樣提供了這些功能,并且在Pandas中還有正則表達式技術的加持,讓其字符串處理能力更加強大。 01、正則 正則就是…

TypeScript相關面試題

typeScript 1.什么是TypeScript?是什么&#xff1f;特性&#xff1f;區別&#xff1f; 2.TypeScript數據類型&#xff1f;3.說說你對 TypeScript 中枚舉類型的理解&#xff1f;應用場景&#xff1f;4.說說你對 TypeScript 中接口的理解&#xff1f;應用場景&#xff1f;使用方…

docker中的jenkins之流水線構建

docker中的jenkins之流水線構建項目 1、用node這種方式&#xff08;因為我用pipeline方式一直不執行&#xff0c;不知道為什么&#xff09; 2、創建項目 創建兩個參數&#xff0c;一個是宿主端口號&#xff0c;一個是docker中的端口號 3、使用git項目中的Jenkinsfile 4、編寫…

【AGI】世界首次實現室溫超導LK-99

論文&#xff1a;The First Room-Temperature Ambient-Pressure Superconductor GPT論文總結&#xff1a; 根據所提供的信息&#xff0c;這篇論文報道了一種在室溫和常壓下工作的室溫超導體LK-99。LK-99的超導性是通過微小的結構畸變引起的&#xff0c;而不是通過溫度和壓力等外…

09 - 連續的多個commit整理成1個

查看所有文章鏈接&#xff1a;&#xff08;更新中&#xff09;GIT常用場景- 目錄 文章目錄 將連續的多個commit整理成1個 將連續的多個commit整理成1個 將anranxiaohunzhang和xianglongshibazhang合并起來&#xff08;將anranxiaohunzhang合并到降龍十八掌上&#xff0c;生成新…

java GC日志分析示例

分析 Java 的 GC 日志可以幫助您了解應用程序的垃圾回收情況&#xff0c;從而檢測內存泄漏、性能問題以及優化內存使用。下面是一些詳細的步驟和示例來分析 Java 的 GC 日志。 假設您有一個 Java 應用程序運行的 GC 日志文件&#xff0c;我們將使用以下示例日志進行解釋&#…

干翻Dubbo系列第十篇:Dubbo體系中ProtoBuf序列化方式詳解

文章說明 本文內容整理自《孫哥說Dubbo系列視頻課程》&#xff0c;孫帥老師課程細致、全面、深入、性價比極高。B站搜孫帥suns可以找到對應的試聽視頻&#xff0c;或者直接添加老師微信號suns45與他直接聯系 一&#xff1a;序列化概念 補充說明&#xff1a; Kyro和Fst這兩種…

設計模式-面試常問

1.單例模式 保證系統中&#xff0c;一個類&#xff0c;只有一個實例&#xff0c;并且提供對外訪問。 優點&#xff1a;只有一個對象&#xff0c;可以節省資源。適合頻繁創建銷毀對象的場景。 實現&#xff1a;要用到static&#xff0c;靜態私有對象。暴露單例的靜態方法。 &…