package bs;
public class pro {
double[] beta=new double[11];
double alpha;
int datanumber;
int number;
double[] y=new double[500];
double[][] x=new double[500][4];
double[][] e=new double[101][3];
double[] e1=new double[101];
double[] e2=new double[101];
double[] delta_alpha=new double[3];
double[][] delta_beta=new double[3][3];
double sig_alpha;
double[] sig_beta=new double[3];
public static void main(String[] args) {
pro t=new pro();
}
pro(){
datanumber=100;
number=2;
int s;
for(s=1;s<datanumber+1;s++){
x[s][1]=2+Math.random();
x[s][2]=-6+Math.random();
y[s]=1;
}
for(s=51;s<datanumber+1;s++){
x[s][1]=-3+Math.random();
x[s][2]=4+Math.random();
y[s]=-1;
}
for(s=1;s<datanumber+1;s++){
int h=0;
e[s][1]=-1;
if(y[s]>0)h=h+1;
if(Math.random()>0.3)h=h+1;
if(h==2)e[s][1]=1;
}
for(s=1;s<datanumber+1;s++){
int h=0;
e[s][2]=1;
if(y[s]<0)h=h+1;
if(Math.random()>0.3)h=h+1;
if(h==2)e[s][2]=-1;
}
int tr;
for(tr=1;tr<2;tr++){
for(s=1;s<datanumber+1;s++){
e1[s]=e[s][1];
e2[s]=e[s][2];
}
nn sub=new nn();
sub.x=x;
sub.y=e1;
sub.number=number;
sub.datanumber=datanumber;
sub.makedata();
alpha=sub.alpha;
beta=sub.beta;
delta_alpha[1]=alpha;
delta_beta[1][1]=beta[1];
delta_beta[1][2]=beta[2];
nn sub2=new nn();
sub2.x=x;
sub2.y=e2;
sub2.number=number;
sub2.datanumber=datanumber;
sub2.makedata();
alpha=sub2.alpha;
beta=sub2.beta;
delta_alpha[2]=alpha;
delta_beta[2][1]=beta[1];
delta_beta[2][2]=beta[2];
nn sub3=new nn();
sub3.x=e;
sub3.y=y;
sub3.number=number;
sub3.datanumber=datanumber;
sub3.makedata();
alpha=sub3.alpha;
beta=sub3.beta;
sig_alpha=alpha;
sig_beta[1]=beta[1];
sig_beta[1]=beta[2];
;
for(s=1;s<datanumber+1;s++){
double r=delta_alpha[1]+delta_beta[1][1]*x[s][1]+delta_beta[1][2]*x[s][2];
e[s][1]=1;
if(r<0)e[s][1]=-1;
r=delta_alpha[2]+delta_beta[2][1]*x[s][1]+delta_beta[2][2]*x[s][2];
e[s][2]=1;
if(r<0)e[s][2]=-1;
}
for(s=1;s<datanumber+1;s++){
double r=sig_alpha+sig_beta[1]*e[s][1]+sig_beta[2]*e[s][2];
int z=-1;
if(r>0)z=1;
System.out.println(z+","+y[s]);
}
}
}
}
package bs;
public class nn {
double[] beta=new double[11];
double alpha;
int datanumber;
int number;
double[] y=new double[500];
double[] ys=new double[500];
double[][] x=new double[500][4];
double[] betas=new double[11];
double[] d_beta=new double[11];
double d_alpha;
double[] vec_beta=new double[11];
double vec_alpha;
double[] e=new double[101];
void makedata(){
faststep sub2=new faststep();
sub2.x=x;
sub2.datanumber=datanumber;
sub2.number=number;
sub2.y=y;
sub2.makedata();
alpha=sub2.alpha;
beta=sub2.beta;
optimal sub=new optimal();
sub.x=x;
sub.y=y;
sub.alpha=alpha;
sub.beta=beta;
sub.number=number;
sub.datanumber=datanumber;
sub.makedata();
alpha=sub.alpha;
beta=sub.beta;
}
}
最終更新:2016年12月08日 18:37