publicstaticvoidmain(String args[]){
Perceptron perceptron =newPerceptron();
int tims =0;//times用来记录调整次数
int x[][]=newint[][]{{3,3},{4,3},{1,1}}; int y[]=newint[]{1,1,-1};//训练集
int[] w ={0,0};int b =0;//(1)初始化w和bfor(int i =0;i<y.length;i++){//(2)从数据集中依次选取数据if(!(y[i]*(w[0]*x[i][0]+w[1]*x[i][1]+b)>0)){//(3)判定是否为误分类点,是则更新w和b
int array[]={y[i]*x[i][0],y[i]*x[i][1]};
w = perceptron.addArray(w,array);
b = b+y[i];
tims++;
System.out.println("这是第"+tims+"调整,此时w为("+w[0]+","+w[1]+"),b为"+b);
i=-1;//(4)转向(2)迭代,调整后从x[0]重新开始,由于这句执行完后会执行i++,故i=-1}}
System.out.println("调整完成!");}
运行结果:
这是第1调整,此时w为(3,3),b为1
这是第2调整,此时w为(2,2),b为0
这是第3调整,此时w为(1,1),b为-1
这是第4调整,此时w为(0,0),b为-2
这是第5调整,此时w为(3,3),b为-1
这是第6调整,此时w为(2,2),b为-2
这是第7调整,此时w为(1,1),b为-3
调整完成!
Process finished with exit code 0