public class faststep {
double[][] x=new double[700][5];
int datanumber,number;
double[] bx=new double[4];
double[][] alpha=new double[4][4];
double[][][] beta=new double[4][4][4];
int[] numberx=new int[3];
void makedata(){
int mx,sx;
for(mx=1;mx<numberx[1]+1;mx++){
for(sx=1;sx<number+1;sx++){
bx[sx]=Math.random();
}
double a1=1000*number;
double a2=-1000*number;
double a3=0;
int mode=0;
while(mode<100){
a3=(a1+a2)/2;
int c1=count(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[1][mx]=a3;
for(sx=1;sx<number+1;sx++){
beta[1][mx][sx]=bx[sx];
}
}
}
int count(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]*x[s][sx];
}
double z1=1/(1+Math.exp(-z));
if(z1>0.5)c1=c1+1;
}
return c1;
}}
最終更新:2016年12月30日 15:04