アットウィキロゴ

secstep

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