アットウィキロゴ

sevc00

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