package r1;
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]=Math.random();
}
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;
}}
package r1;
public class laststep {
int[][] e=new int[700][5];
int datanumber,number;
int[] y=new int[700];
double[] delta=new double[5];
double sig;
void makedata(){
int s;
for(s=1;s<number+1;s++){
delta[s]=Math.random();
}
double a1=number;
double a2=-number;
int p;
double a3=0;
for(p=1;p<30;p++){
a3=(a1+a2)/2;
if(count(a3)>datanumber/2)a1=a3;
if(count(a3)<datanumber/2)a2=a3;
}
sig=a3;
}
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+delta[sx]*e[s][sx];
}
double z1=1/(1+Math.exp(-z));
if(z1>0.5)c1=c1+1;
}
return c1;
}
}
package r1;
public class hidden {
double[][] x=new double[700][5];
int datanumber,number;
double[] bx=new double[5];
double[][] beta=new double[700][5];
double[] b=new double[5];
double[] alpha=new double[5];
int[][] e=new int[700][6];
void makedata(){
int s,sx,tr;
for(s=1;s<datanumber+1;s++){
for(tr=1;tr<number+1;tr++){
double z=alpha[tr];
for(sx=1;sx<number+1;sx++){
z=z+beta[tr][sx]*x[s][sx];
}
double z1=1/(1+Math.exp(-z));
e[s][tr]=0;
if(z1>0.5)e[s][tr]=1;
}
}
}
}
最終更新:2016年12月28日 11:25