アットウィキロゴ

faststep 01

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