java 实现最小二乘法
2015-01-27 20:19
197 查看
一、线性的
/** * 最小二乘法 y=ax+b * * @author Administrator * */ public class Theleastsquaremethod { private static double a; private static double b; private static int num; /** * 训练 * * @param x * @param y */ public static void train(double x[], double y[]) { num = x.length < y.length ? x.length : y.length; calCoefficientes(x,y); } /** * a=(NΣxy-ΣxΣy)/(NΣx^2-(Σx)^2) * b=y(平均)-a*x(平均) * @param x * @param y * @return */ public static void calCoefficientes (double x[],double y[]){ double xy=0.0,xT=0.0,yT=0.0,xS=0.0; for(int i=0;i<num;i++){ xy+=x[i]*y[i]; xT+=x[i]; yT+=y[i]; xS+=Math.pow(x[i], 2.0); } a= (num*xy-xT*yT)/(num*xS-Math.pow(xT, 2.0)); b=yT/num-a*xT/num; } /** * 预测 * * @param xValue * @return */ public static double predict(double xValue) { System.out.println("a="+a); System.out.println("b="+b); return a * xValue + b; } public static void main(String args[]) { double[] x = { 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 } ; double[] y = {23 , 44 , 32 , 56 , 33 , 34 , 55 , 65 , 45 , 55 } ; Theleastsquaremethod.train(x, y); System.out.println(Theleastsquaremethod.predict(10.0)); } }
相关文章推荐
- 最小生成树prim java 实现
- 最大乘积的N-1项,只用乘法不能用除法 (Java)实现
- Java大数乘法的简单实现(整数和浮点数的乘法)
- 用java实现的乘法口诀
- 99乘法表java实现
- 平面上点对的最小距离算法-java实现
- java 实现99乘法表
- 基于数论变换的大整数乘法Java代码实现
- Java实现最小生成树Kruskal算法
- 最小最大堆(双端堆)的实现(Java版)
- Java实现数组形式的多项式加法、减法、乘法、相除运算
- 实现大位整数的加/减/乘法的java工具类
- 最小重量机器设计问题 java实现
- 数据结构-图-Java实现:有向图 图存储(邻接矩阵),最小生成树,广度深度遍历,图的连通性,最短路径
- 矩阵链乘法问题(给A1A2A3...An加括号,使之乘法次数最小)动态规划问题C++实现
- 用Java的循环实现矩阵乘法代码
- 最小生成树-Kruskal算法 java代码实现
- Java课程设计 复数类 实现加、减、乘法
- prim 最小生成树算法 java实现
- 黑马程序员——Java实现99乘法表