最小二乘法
线性回归是指,试图学得一个线性模型以尽可能准确的预测实值输出标记。
最小二乘法:基于均方误差最小化来进行模型求解的方法。
通过变成实现最小二乘法(可能不是最简化的,有待提高编程能力)
/*
* 这是一个最小二乘法的一个线性回归问题
*/
class LinearRegression {
double a;
double b;
int n;
public LinearRegression(double[] arrx, double[] arry) {
// TODO Auto-generated constructor stub
double t1 = 0;
double t2 = 0;
double t3 = 0;
double t4 = 0;
n = arrx.length;
for (int i = 0; i < n; i++) {
t1 = arrx[i] + t1;
t2 = arry[i] + t2;
t3 = arry[i] * arrx[i] + t3;
t4 = arrx[i] * arrx[i] + t4;
}
a = (t3*n-t1 * t2 ) / ( t4*n-t1 * t1 );
b = (t2 - a * t1) /n;
System.out.println(a);
System.out.println(b);
}
void Print() {
System.out.println("利用线性最小二乘法得到的结果是y=" + a + "*x+" + b);
}
void predict(double num) {
double result = num * a + b;
System.out.println("利用最小二乘法得到的结果是:" + result);
}
}
public class RegressDemo {
public static void main(String[] args) {
double arrx[] = new double[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
double arry[] = new double[] { 23, 44, 32, 56, 33, 34, 55, 65, 45, 55 };
LinearRegression lr = new LinearRegression(arrx, arry);
lr.Print();
lr.predict(1.0);
}
}

浙公网安备 33010602011771号