神經(jīng)網(wǎng)絡結(jié)構(gòu)如下圖所示,最左邊的是輸入層,最右邊的是輸出層,中間是多個隱含層,對于隱含層和輸出層的每個神經(jīng)節(jié)點,都是由上一層節(jié)點乘以其權(quán)重累加得到,標上“+1”的圓圈為截距項b,對輸入層外每個節(jié)點:Y=w0*x0+w1*x1+...+wn*xn+b,由此我們可以知道神經(jīng)網(wǎng)絡相當于一個多層邏輯回歸的結(jié)構(gòu)。
創(chuàng)新互聯(lián)建站執(zhí)著的堅持網(wǎng)站建設,微信平臺小程序開發(fā);我們不會轉(zhuǎn)行,已經(jīng)持續(xù)穩(wěn)定運營10多年。專業(yè)的技術(shù),豐富的成功經(jīng)驗和創(chuàng)作思維,提供一站式互聯(lián)網(wǎng)解決方案,以客戶的口碑塑造品牌,攜手廣大客戶,共同發(fā)展進步。
import java.util.Random;
public class BpDeep{
public double[][] layer;//神經(jīng)網(wǎng)絡各層節(jié)點
public double[][] layerErr;//神經(jīng)網(wǎng)絡各節(jié)點誤差
public double[][][] layer_weight;//各層節(jié)點權(quán)重
public double[][][] layer_weight_delta;//各層節(jié)點權(quán)重動量
public double mobp;//動量系數(shù)
public double rate;//學習系數(shù)
public BpDeep(int[] layernum, double rate, double mobp){
this.mobp = mobp;
this.rate = rate;
layer = new double[layernum.length][];
layerErr = new double[layernum.length][];
layer_weight = new double[layernum.length][][];
layer_weight_delta = new double[layernum.length][][];
Random random = new Random();
for(int l=0;llayernum.length;l++){
layer[l]=new double[layernum[l]];
layerErr[l]=new double[layernum[l]];
if(l+1layernum.length){
layer_weight[l]=new double[layernum[l]+1][layernum[l+1]];
layer_weight_delta[l]=new double[layernum[l]+1][layernum[l+1]];
for(int j=0;jlayernum[l]+1;j++)
for(int i=0;ilayernum[l+1];i++)
layer_weight[l][j][i]=random.nextDouble();//隨機初始化權(quán)重
}
}
}
//逐層向前計算輸出
public double[] computeOut(double[] in){
for(int l=1;llayer.length;l++){
for(int j=0;jlayer[l].length;j++){
double z=layer_weight[l-1][layer[l-1].length][j];
for(int i=0;ilayer[l-1].length;i++){
layer[l-1][i]=l==1?in[i]:layer[l-1][i];
z+=layer_weight[l-1][i][j]*layer[l-1][i];
}
layer[l][j]=1/(1+Math.exp(-z));
}
}
return layer[layer.length-1];
}
//逐層反向計算誤差并修改權(quán)重
public void updateWeight(double[] tar){
int l=layer.length-1;
for(int j=0;jlayerErr[l].length;j++)
layerErr[l][j]=layer[l][j]*(1-layer[l][j])*(tar[j]-layer[l][j]);
while(l--0){
for(int j=0;jlayerErr[l].length;j++){
double z = 0.0;
for(int i=0;ilayerErr[l+1].length;i++){
z=z+l0?layerErr[l+1][i]*layer_weight[l][j][i]:0;
layer_weight_delta[l][j][i]= mobp*layer_weight_delta[l][j][i]+rate*layerErr[l+1][i]*layer[l][j];//隱含層動量調(diào)整
layer_weight[l][j][i]+=layer_weight_delta[l][j][i];//隱含層權(quán)重調(diào)整
if(j==layerErr[l].length-1){
layer_weight_delta[l][j+1][i]= mobp*layer_weight_delta[l][j+1][i]+rate*layerErr[l+1][i];//截距動量調(diào)整
layer_weight[l][j+1][i]+=layer_weight_delta[l][j+1][i];//截距權(quán)重調(diào)整
}
}
layerErr[l][j]=z*layer[l][j]*(1-layer[l][j]);//記錄誤差
}
}
}
public void train(double[] in, double[] tar){
double[] out = computeOut(in);
updateWeight(tar);
}
}
步驟如下:
1、把自己需要分析的數(shù)據(jù)導入到SPSS,點擊左上角的文件進行打開,選擇彈出對話框中的數(shù)據(jù)。
2、點擊工具欄上的分析,依次選擇回歸,然后選擇“多項Logistic” 多元線性回歸分析和logistic回歸分析都可以的。
3、把變量依次移動到右側(cè)的因變量、因子和協(xié)變量框內(nèi)。
4、就可以在度量標準中看到度量數(shù)據(jù)。
5、再對多項邏輯回歸的模型、統(tǒng)計量、條件、選項和保存進行設置。
6、點擊確定,即可用SPSS把多因素Logistic回歸分析做好。
多因素logistic回歸是指包含的研究因素較多,如二項logistic回歸、多項Logistic回歸等。
回答于?2022-05-05
1 java 開發(fā)需要學什么
學習java是一件枯燥的事,如果你想要學java就應該靜下心來學,也要付出一點努力,畢竟java是一門熱門的編程語言,前景很好。那么下面小編給大家說說java開發(fā)需要學什么,希望能對你有所幫助。
1、 java語法。
通過任何一本Java入門書籍,都可以學會Java的基本語法。千萬不要認為,你把書上的例子程序都能寫出來就算學會了Java語法。要想真正掌握,還需要做大量的測試題。對語法不準確的理解,會使你寫的代碼出現(xiàn)邏輯錯誤。而這些錯誤會使你在真正的項目開發(fā)中吃盡苦頭:你認為正確才會寫上去。而在幾十萬行代碼中找出幾行有邏輯錯誤的代碼,非常困難。因為你幾乎不會懷疑你認為正確的代碼存在錯誤。
2、 常用類。
永遠不要寫別人已經(jīng)實現(xiàn)的代碼。有很多功能,用JDK中現(xiàn)有的類就可以完成。你需要熟悉JDK.可以通過研究JDK幫助文檔和JDK源代碼的方式,逐漸了解,你需要的類都在什么地方。一方面,要熟悉有哪些可以直接使用的資源,另一方面,學習一下,SUN公司的工程師怎樣寫代碼。
3、 IDE 集成開發(fā)環(huán)境。
現(xiàn)在企業(yè)最常用的是IBM公司的eclipse ,類似的還有JBuilder 、Idea,NetBeans等等。畢竟,只有5%的頂尖高手在使用簡單的文本編輯器在寫Java代碼。多數(shù)程序員都是在使用這些東西。
4、 數(shù)據(jù)庫。
MySql,Oracle,DB2.小項目多數(shù)使用MySql這樣的免費數(shù)據(jù)庫。大一些的項目會考慮使用Oracle或者DB2. Java項目很少使用SqlServer。因此,你還需要學習數(shù)據(jù)庫方面的一些知識??梢詮腟QL語言開始。這些數(shù)據(jù)庫都支持標準SQL.學會基本的SQL,參考具體的數(shù)據(jù)庫手冊,就可以完成一般的項目開發(fā)了。當然,要想使你的程序運行的效率更高,需要更深入的學習。大部分的程序優(yōu)化,都是從這部分開始的。
function [theta, J_history] = gradientDescent(X, y, theta, alpha, num_iters)
%GRADIENTDESCENT Performs gradient descent to learn theta
% theta = GRADIENTDESENT(X, y, theta, alpha, num_iters) updates theta by
% taking num_iters gradient steps with learning rate alpha
% Initialize some useful values
m = length(y); % number of training examples
J_history = zeros(num_iters, 1);
for iter = 1:num_iters,
% ====================== YOUR CODE HERE ======================
% Instructions: Perform a single gradient step on the parameter vector
% theta.
%
% Hint: While debugging, it can be useful to print out the values
% of the cost function (computeCost) and gradient here.
p=theta(1)-alpha*(1/m)*(sum((X*theta-y).*X(:,1)));
q=theta(2)-alpha*(1/m)*(sum((X*theta-y).*X(:,2)));
theta(1)=p;
theta(2)=q;
% ============================================================
% Save the cost J in every iteration
J_history(iter) = computeCost(X, y, theta);
end
當前文章:多項邏輯回歸代碼java 多項邏輯回歸分析
標題鏈接:http://jinyejixie.com/article22/dochhjc.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設計公司、標簽優(yōu)化、網(wǎng)站建設、網(wǎng)站維護、全網(wǎng)營銷推廣、網(wǎng)站排名
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)