本文算法来源于李航的《统计学习方法》。
本文主要实现其中的两种算法,并做两种时间的对比。
不难看出这里面有固定不变的部分
是不变的可以用gram矩阵储存,减少后续计算部分,这个也是计算时间大幅度减少的主要原因。
public class Test1_1 {
public static double[]w = {0.0,0.0} ;//初始值
public static double b =0.0;//初始值
public static int number;//记录迭代次数
public static int N=10000;//记录数据多少
public static double arg = 1.0;
public static boolean flag = true;//记录是否需要继续迭代
public static double gram[][] = new double[N][N];//对偶形式的Gram矩阵
public static Data datas[] = new Data[N];//数据
public static double a[] = new double[N];//对偶形式中的ai
static class Data{
double x1 = 0.0;
double x2 = 0.0;
int y = 0;
}
public static void ma