-
大小: 266KB文件類型: .zip金幣: 2下載: 2 次發布日期: 2021-07-01
- 語言: Java
- 標簽:
資源簡介
使用Java實現BP神經網絡進行回歸分析,并利用訓練好的神經網絡實現空氣質量的評級。

代碼片段和文件信息
import?java.util.Random;
/**
?*?BPNN.?
?*
?*?@author?RenaQiu
?*
?*/
public?class?BP?{
????/**
?????*?input?vector.?
?????*/
????private?final?double[]?input;
????/**
?????*?hidden?layer.?
?????*/
????private?final?double[]?hidden;
????/**
?????*?output?layer.?
?????*/
????private?final?double[]?output;
????/**
?????*?target.?
?????*/
????private?final?double[]?target;
????/**
?????*?delta?vector?of?the?hidden?layer?.?
?????*/
????private?final?double[]?hidDelta;
????/**
?????*?output?layer?of?the?output?layer.?
?????*/
????private?final?double[]?optDelta;
????/**
?????*?learning?rate.?
?????*/
????private?final?double?eta;
????/**
?????*?momentum.?
?????*/
????private?final?double?momentum;
????/**
?????*?weight?matrix?from?input?layer?to?hidden?layer.?
?????*/
????private?final?double[][]?iptHidWeights;
????/**
?????*?weight?matrix?from?hidden?layer?to?output?layer.?
?????*/
????private?final?double[][]?hidOptWeights;
????/**
?????*?previous?weight?update.?
?????*/
????private?final?double[][]?iptHidPrevUptWeights;
????/**
?????*?previous?weight?update.?
?????*/
????private?final?double[][]?hidOptPrevUptWeights;
????public?double?optErrSum?=?0d;
????public?double?hidErrSum?=?0d;
????private?final?Random?random;
????/**
?????*?Constructor.?
?????*??
?????*?Note:?The?capacity?of?each?layer?will?be?the?parameter?
?????*?plus?1.?The?additional?unit?is?used?for?smoothness.?
?????*?
?
?????*
?????*?@param?inputSize
?????*?@param?hiddenSize
?????*?@param?outputSize
?????*?@param?eta
?????*?@param?momentum
?????*
?????*/
????public?BP(int?inputSize?int?hiddenSize?int?outputSize?double?eta
??????????????double?momentum)?{
????????input?=?new?double[inputSize?+?1];
????????hidden?=?new?double[hiddenSize?+?1];
????????output?=?new?double[outputSize?+?1];
????????target?=?new?double[outputSize?+?1];
????????hidDelta?=?new?double[hiddenSize?+?1];
????????optDelta?=?new?double[outputSize?+?1];
????????iptHidWeights?=?new?double[inputSize?+?1][hiddenSize?+?1];
????????hidOptWeights?=?new?double[hiddenSize?+?1][outputSize?+?1];
????????random?=?new?Random(19881211);
????????randomizeWeights(iptHidWeights);
????????randomizeWeights(hidOptWeights);
????????iptHidPrevUptWeights?=?new?double[inputSize?+?1][hiddenSize?+?1];
????????hidOptPrevUptWeights?=?new?double[hiddenSize?+?1][outputSize?+?1];
????????this.eta?=?eta;
????????this.momentum?=?momentum;
????}
????private?void?randomizeWeights(double[][]?matrix)?{
????????for?(int?i?=?0?len?=?matrix.length;?i?!=?len;?i++)
????????????for?(int?j?=?0?len2?=?matrix[i].length;?j?!=?len2;?j++)?{
????????????????double?real?=?random.nextDouble();
????????????????matrix[i][j]?=?random.nextDouble()?>?0.5???real?:?-real;
????????????}
????}
????/**
?????*?Constructor?with?default?eta?=?0.25?and?momentum?=?0.3.?
?????*
?????*?@param?inputSize
?????*?@param?hiddenS
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2016-12-06?09:30??BP\
?????目錄???????????0??2016-12-06?09:30??BP\.git\
?????文件?????????395??2014-12-19?12:57??BP\.gitattributes
?????文件?????????862??2016-11-30?12:07??BP\.gitignore
?????文件??????????52??2016-11-30?12:07??BP\.git\COMMIT_EDITMSG
?????文件?????????130??2016-11-30?12:07??BP\.git\config
?????文件??????????73??2016-11-30?12:07??BP\.git\desc
?????文件??????????23??2016-11-30?12:07??BP\.git\HEAD
?????目錄???????????0??2016-12-06?09:30??BP\.git\hooks\
?????文件?????????177??2016-11-30?12:07??BP\.git\hooks\README.sample
?????文件?????????192??2016-11-30?12:08??BP\.git\index
?????目錄???????????0??2016-12-06?09:30??BP\.git\info\
?????文件?????????113??2016-11-30?12:07??BP\.git\info\exclude
?????目錄???????????0??2016-12-06?09:30??BP\.git\logs\
?????文件?????????203??2016-11-30?12:07??BP\.git\logs\HEAD
?????目錄???????????0??2016-11-30?13:17??BP\.git\logs\refs\
?????目錄???????????0??2016-12-06?09:30??BP\.git\logs\refs\heads\
?????文件?????????203??2016-11-30?12:07??BP\.git\logs\refs\heads\master
?????目錄???????????0??2016-11-30?13:17??BP\.git\ob
?????目錄???????????0??2016-12-06?09:30??BP\.git\ob
?????文件?????????474??2016-11-30?12:07??BP\.git\ob
?????目錄???????????0??2016-12-06?09:30??BP\.git\ob
?????文件??????????89??2016-11-30?12:07??BP\.git\ob
?????目錄???????????0??2016-12-06?09:30??BP\.git\ob
?????文件?????????188??2016-11-30?12:07??BP\.git\ob
?????目錄???????????0??2016-12-06?09:30??BP\.git\ob
?????文件?????????159??2016-11-30?12:07??BP\.git\ob
?????目錄???????????0??2016-11-30?12:07??BP\.git\ob
?????目錄???????????0??2016-11-30?12:07??BP\.git\ob
?????目錄???????????0??2016-11-30?13:17??BP\.git\refs\
?????目錄???????????0??2016-12-06?09:30??BP\.git\refs\heads\
............此處省略20個文件信息
- 上一篇:Java實現樸素貝葉斯分類器
- 下一篇:android版俄羅斯方塊源碼
評論
共有 條評論