package ske;
public class secstep {
int[][][] e=new int[30][7][5];
int datanumber,number;
double[] bx=new double[40];
double[][] alpha=new double[40][40];
double[][][] beta=new double[40][40][40];
int[] numberx=new int[30];
void makedata(int tr){
int s,mx,sx;
for(mx=1;mx<numberx[tr]+1;mx++){
for(sx=1;sx<numberx[tr-1]+1;sx++){
bx[sx]=Math.random();
}
double a1=number;
double a2=-number;
double a3=0;
int mode=0;
while(mode<100){
a3=(a1+a2)/2;
int c1=count(tr,a3);
if(c1>datanumber/2)a1=a3;
if(c1<datanumber/2)a2=a3;
double m1=(c1-datanumber/2)*(c1-datanumber/2);
if(m1<1)mode=1000;
mode=mode+1;
}
alpha[tr][sx]=a3;
for(sx=1;sx<numberx[tr-1]+1;sx++){
beta[tr][mx][sx]=bx[sx];
}
}
}
int count(int tr,double a1){
int s,sx,c1;
c1=0;
for(s=1;s<datanumber+1;s++){
double z=a1;
for(sx=1;sx<numberx[tr-1]+1;sx++){
z=z+bx[sx]*e[tr-1][s][sx];
}
double z1=1/(1+Math.exp(-z));
if(z1>0.5)c1=c1+1;
}
return c1;
}}
最終更新:2016年12月30日 15:25