package step;
public class secstep {
int[][][] e=new int[3][700][5];
int datanumber,number;
double[] bx=new double[4];
double[][] mu=new double[4][4];
double[][][] de=new double[4][4][4];
void makedata(int k){
int s;
int tr;
for(tr=1;tr<number+1;tr++){
for(s=1;s<number+1;s++){
bx[s]=Math.random();
}
double a1=number;
double a2=-number;
double a3=0;
int mode=0;
while(mode<100){
a3=(a1+a2)/2;
int c1=count(k,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;
}
mu[k][tr]=a3;
for(s=1;s<number+1;s++){
de[k][tr][s]=bx[s];
}
}
}
int count(int k,double a1){
int s,sx,c1;
c1=0;
for(s=1;s<datanumber+1;s++){
double z=a1;
for(sx=1;sx<number+1;sx++){
z=z+bx[sx]*e[k-1][s][sx];
}
double z1=1/(1+Math.exp(-z));
if(z1>0.5)c1=c1+1;
}
return c1;
}}
最終更新:2016年12月28日 20:22