package com.util;
/**
* 作者:杜航 功能:最小二乘法 线性回归(Least squares)
*
* y = a x + b b = sum( y ) / n - a * sum( x ) / n a = ( n * sum( xy ) - sum( x
* ) * sum( y ) ) / ( n * sum( x^2 ) - sum(x) ^ 2 )
*
*/
public class LeastSquares
{
/*
* 杜航 功能:返回估计的y值
*/
public static float estimate(float[] x, float[] y, float input)
{
float a = getA(x, y);
float b = getB(x, y);
System.out.println("线性回归系数a值:\t" + a + "\n" + "线性回归系数b值:\t" + b);
return (a * input + b);
}
/*
* 杜航 功能:返回x的系数a 公式:a = ( n sum( xy ) - sum( x ) sum( y ) ) / ( n sum( x^2 )
* - sum(x) ^ 2 )
*/
public static float getA(float[] x, float[] y)
{
int n = x.length;
return (float) ((n * pSum(x, y) - sum(x) * sum(y)) / (n * sqSum(x) - Math
.pow(sum(x), 2)));
}
/*
* 杜航 功能:返回常量系数系数b 公式:b = sum( y ) / n - a sum( x
最小二乘法Java实现
最新推荐文章于 2024-08-30 21:02:33 发布
该博客介绍了一个Java实现的最小二乘法线性回归算法,用于估计输入值对应的y值。作者提供了计算线性回归系数a和常量b的方法,以及一个简单的测试用例。
摘要由CSDN通过智能技术生成