乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      股票預(yù)測之BP神經(jīng)網(wǎng)絡(luò)

       1_teng 2014-05-13

                                           股票預(yù)測之BP神經(jīng)網(wǎng)絡(luò)

            股票預(yù)測的算法有很多,可以用數(shù)學(xué)的卡爾曼濾波,粒子濾波、馬爾科夫、神經(jīng)網(wǎng)絡(luò)......
      這其中涉及到很多因素,比如說,你用的特征,你選擇的范圍(針對個(gè)股還是多股、歷史時(shí)間范圍、分析周期等等)。小編自身對股票了解不深,僅僅是從數(shù)據(jù)的角度分析。(有點(diǎn)想的太簡單了O(∩_∩)O)
      先從簡單的入手:簡單的算法:BP神經(jīng)網(wǎng)絡(luò); 簡單的范圍:個(gè)股、每日線、5個(gè)特征:開盤、最高、最低、收盤、漲幅。個(gè)股數(shù)據(jù)量大概有2000個(gè)。
            當(dāng)然,這個(gè)過程和普通的BP沒什么兩樣,也是輸入數(shù)據(jù),訓(xùn)練、測試這么一個(gè)過程,主要是看BP是否真的適合用來做預(yù)測。雖然有點(diǎn)簡單,不過還是簡單的描述一下吧。
            數(shù)據(jù)從哪里來?這里我是用了同花順這個(gè)軟件,然后選一個(gè)股,按照 分析——>k線圖——>按F1——>進(jìn)入歷史行情數(shù)據(jù)。點(diǎn)擊右鍵——>導(dǎo)出數(shù)據(jù)——>下一步......這樣就可以得到連續(xù)的歷史數(shù)據(jù)表。接下來就是讀出數(shù)據(jù),進(jìn)行訓(xùn)練和預(yù)測了。
            首先,這里選用其中的5個(gè)特征:{開盤、最高、最低、收盤、漲幅}。這里用前一天的這樣一個(gè)特征向量來預(yù)測下一個(gè)交易日(時(shí)刻)的收盤。也就是說,輸入是這5維特征,輸出是下一時(shí)刻的收盤。
             有了這些數(shù)據(jù),有確定了輸入和輸出,那就直接創(chuàng)建BP來訓(xùn)練。參數(shù)大多是默認(rèn)的,隱層的轉(zhuǎn)移函數(shù)選擇sigmoid函數(shù),其他參數(shù)可依據(jù)需要一步一步調(diào)整。這里選擇前面1500個(gè)作為訓(xùn)練,后面的200個(gè)作為測試樣本,訓(xùn)練過程并不快,主要是梯度的閾值設(shè)的太低,迭代次數(shù)有點(diǎn)高、機(jī)器的性能也一般(⊙o⊙)…好了,是不是很期待測試結(jié)果(*^__^*) ……
            

            總體的預(yù)測和跟隨效果還行,但是局部分析起來還是有很多不足,容易劇烈跳動,總體普遍偏小,在這邊很關(guān)鍵的一點(diǎn)要指出,訓(xùn)練的數(shù)據(jù)的覆蓋范圍要盡可能大,如果你的測試數(shù)據(jù)不再訓(xùn)練的RANGE里面,很可能跑偏,甚至是一條直線。哪怕是你用頭尾兩端數(shù)據(jù)來訓(xùn)練,效果都比用一大段數(shù)據(jù)而沒有覆蓋后面或前面的數(shù)據(jù)來的好。在初次訓(xùn)練時(shí)候,由于有些參數(shù)是隨機(jī)初始化的,又因?yàn)锽P容易陷入局部極小值,所以有可能會一下子就收斂,結(jié)果是一條直線%>_<%。好了,股票預(yù)測比較簡單的方法之BP就介紹到這里了。對了,不放代碼是不是有點(diǎn)不厚道?_?。盡管代碼很簡單.....

       data=xlsread('路徑.xls');
      PP=data';
      PQ=[0; 0; 0; 0 ;0];
      P=zeros(5,1500);    %輸入矩陣
      T=zeros(1,1500);    %輸出
      for i=1:1500            %輸入輸出賦值
          PQ=PP(:,i);
          P(:,i)=PQ;
          T(i)=PP(4,i+1);
      end
      %  創(chuàng)建一個(gè)新的前向神經(jīng)網(wǎng)絡(luò) 
      net_1=newff(minmax(P),[30,1],{'tansig','purelin'},'traingdm')

      %  當(dāng)前輸入層權(quán)值和閾值
      inputWeights=net_1.IW{1,1};
      inputbias=net_1.b{1};
      %  當(dāng)前網(wǎng)絡(luò)層權(quán)值和閾值
      layerWeights=net_1.LW{1,1};
      layerbias=net_1.b{1};

      %  設(shè)置訓(xùn)練參數(shù)
      net_1.trainParam.show = 50;
      net_1.trainParam.lr = 0.005;
      net_1.trainParam.mc = 0.9;
      net_1.trainParam.epochs = 10000;
      net_1.trainParam.goal = 1e-3;

      %  調(diào)用 TRAINGDM 算法訓(xùn)練 BP 網(wǎng)絡(luò)
      [net_1,tr]=train(net_1,P,T);

      %  對 BP 網(wǎng)絡(luò)進(jìn)行仿真
      A = sim(net_1,P);
      %  計(jì)算仿真誤差 
      E = T - A;
      MSE=mse(E)
      %--------------------------測試數(shù)據(jù)-----------------------------%
      x=InputA(1501:1700);  %測試數(shù)據(jù)
      x=zeros(5,200);
      for j=201:400
          x(:,(j-200))=PP(:,j);
      end
      YY=sim(net_1,x)         %用神經(jīng)網(wǎng)絡(luò)測試
      XX=[1:length(x)];
      plot(XX,YY,'-O');          %畫出結(jié)果
      hold on;
      plot(XX,PP(4,1502:1701),'r-O'); %真實(shí)結(jié)果


        本站是提供個(gè)人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多