アットウィキロゴ

ふぁsrsてp

package ch;
 
 
public class faststep {
 
  double[][] x=new double[700][5];
  int datanumber,number;
 
  double[] bx=new double[4];
  double[] alpha=new double[4];
  double[][] beta=new double[4][4];
 
 
 
 
    void makedata(){
 
 
        int s;
 
 
 
        int tr;
        for(tr=1;tr<number+1;tr++){
 
        for(s=1;s<number+1;s++){
        bx[s]=2*Math.random()-1;    
        }
 
        double maxa=-999*number;
        double mina=999*number;
 
        int sx;
        for(s=1;s<datanumber+1;s++){
        double z=0;
        for(sx=1;sx<number+1;sx++){
        z=z+bx[sx]*x[s][sx];    
        }    
        if(z>maxa)maxa=z;
        if(z<mina)mina=z;
        }
 
 
        double a1=-mina;
        double a2=-maxa;
        double a3=0; 
        int mode=0;
        while(mode<50){
        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[tr]=a3;
 
       for(s=1;s<number+1;s++){
       beta[tr][s]=bx[s];    
       }
 
 
 
        }
 
 
    }
 
      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月27日 18:51