var x=new Array();
var y=new Array();
var a=new Array();
var e=new Array();
var ax=new Array();
var df=new Array();
function sample(){
number=100;
for(s=1;s<number+1;s++){
x[s]=new Array();
}
for(s=1;s<number+1;s++){
x[s][1]=Math.random();
x[s][2]=Math.random();
y[s]=0;
if(2*x[s][1]+3*x[s][2]>2.5)y[s]=1;
}
a[0]=0.4;
a[1]=0.7;
a[2]=0.5;
for(c=1;c<101;c++){
for(sx=0;sx<3;sx++){
ax[sx]=a[sx];
}
g1=f(ax);
for(tr=0;tr<3;tr++){
for(sx=0;sx<3;sx++){
ax[sx]=a[sx];
}
ax[tr]=ax[tr]+0.01;
g2=f(ax);
df[tr]=(g2-g1)/0.01
}
sig=0;
for(tr=0;tr<3;tr++){
sig=sig+df[tr]*df[tr];
}
for(tr=0;tr<3;tr++){
ax[tr]=a[tr]-0.01*g1*df[tr]/sig;
}
g2=f(ax);
if(g2<g1){
for(tr=0;tr<3;tr++){
a[tr]=ax[tr];
}
}
}
q=0;
for(s=1;s<number+1;s++){
z1=a[0]+a[1]*x[s][1]+a[2]*x[s][2];
z2=0
if (z1>0)z2=1;
if(z2==y[s])q=q+1;
}
$("#memo").html(q)
}
function f(ax){
z=0;
for(s=1;s<number+1;s++){
z1=ax[0]+ax[1]*x[s][1]+ax[2]*x[s][2];
z=z+(y[s]-1/(1+Math.exp(-z1)))*(y[s]-1/(1+Math.exp(-z1)));
}
return z
}
最終更新:2018年03月04日 18:08