线性回归目标:

已知训练集(x1,y1)(x2,y2) ....(xm ,ym), 拟合回归为最优的线性函数。

线性回归原理:

使用最小二乘法,训练集与拟合后的线性标记函数欧式距离之和最小,则该标记函数为最优线性回归函数。

其中f(x)为标记函数,yi为实际值,e(f,y)为均值分布定义为均值误差,

均值误差最小,测f(x)为最优的解,为此训练集的线性回归函数。

一介二项式的线性回归

函数线性方程:

依据线性回归原理可得:

(1-1)

一介二项式的线性回归归结为(1-1)的最小值  即求w  b的偏导数

依据  w  b的值 写出直线方程 y=wx+b

java  实现:

public class Line {

public static double [] getLinePara(Double [] [] points ) {

double dbRt [] =new double [2];

double dbXSum=0;

for(int i=0;i

dbXSum=dbXSum+points[0][i];

}

double dbXAvg=dbXSum/points[0].length;

double dbWHeadVal=0;

for(int i=0;i

dbWHeadVal=dbWHeadVal+(points[0][i]-dbXAvg)*points[1][i];

}

double dbWDown=0;

double dbWDownP=0;

double dbWDownN=0;

dbXSum=0;

for(int i=0;i

dbWDownP=dbWDownP+points[0][i]*points[0][i];

dbXSum=dbXSum+points[0][i];

}

dbWDown=dbWDownP-(dbXSum*dbXSum/points[0].length);

double dbW=dbWHeadVal/dbWDown;

dbRt[0]=dbW;

double dbBSum=0;

for(int i=0;i

dbBSum=dbBSum+(points[1][i]-dbW*points[0][i]);

}

double dbB=dbBSum/points[0].length;

dbRt[1]=dbB;

return dbRt;

}

public static void main(String[] args) {

Double [][] arrPoints= {{1.0,2.0,3.0,5.0},{1.0,2.0,3.0,5.0}};

/** 预测 w为1 b为0*/

System.out.println(getLinePara(arrPoints)[0]);

System.out.println(getLinePara(arrPoints)[1]);

/**测试结果与预测相同*/

}

}

java 线性回归_线性回归算法原理(附java实现)相关推荐

  1. java 独木桥_趣味算法——青蛙过河(JAVA)

    青蛙过河是一个非常有趣的智力游戏,其大意如下: 一条河之间有若干个石块间隔,有两队青蛙在过河,每队有3只青蛙,这些青蛙只能向前移动,不能向后移动,且一次只能有一只青蛙向前移动.在移动过程中,青蛙可以向 ...

  2. java 实现气泡 源码分析_冒泡排序算法原理及JAVA实现代码

    冒泡排序法:关键字较小的记录好比气泡逐趟上浮,关键字较大的记录好比石块下沉,每趟有一块最大的石块沉底. 算法本质:(最大值是关键点,肯定放到最后了,如此循环)每次都从第一位向后滚动比较,使最大值沉底, ...

  3. 排序算法java源代码_排序算法汇总(java实现,附源代码)

    整理系统的时候发现了原来写的各种算法的总结,看了一下,大吃一惊,那时候的我还如此用心,具体的算法,有的已经模糊甚至忘记了,看的时候就把内容整理出来,顺便在熟悉一下,以后需要的时候就可以直接过来摘抄了. ...

  4. dbscan用 java代码_聚类算法之DBScan(Java实现)[转]

    package orisun; import java.io.File; import java.util.ArrayList; import java.util.Vector; import jav ...

  5. 归并排序的java代码_归并排序的原理及java代码实现

    概述 归并(Merge)排序法是将两个(或两个以上)有序表合并成一个新的有序表,即把待排序序列分为若干个子序列,每个子序列是有序的.然后再把有序子序列合并为整体有序序列. 归并排序采用的是递归来实现, ...

  6. java青蛙过河打字_趣味算法——青蛙过河(JAVA)

    青蛙过河是一个非常有趣的智力游戏,其大意如下: 一条河之间有若干个石块间隔,有两队青蛙在过河,每队有3只青蛙,这些青蛙只能向前移动,不能向后移动,且一次只能有一只青蛙向前移动.在移动过程中,青蛙可以向 ...

  7. 【机器学习】Softmax Regression算法原理与java实现

    [机器学习]Softmax Regression算法原理与java实现 1.Softmax Regression算法原理 1.1.样本概率 1.2.损失函数 1.3.梯度下降法训练模型 2.java实 ...

  8. java排序算法原理_排序算法原理与实现(java)

    排序算法原理与实现(java) Java程序员必知的8大排序 [来源:本站 | 日期:2012年12月24日 | 浏览173 次] 字体:[大 中 小] 8种排序之间的关系: 1, 直接插入排序 (1 ...

  9. 全排列的java算法_全排列算法原理和实现

    评论 # re: 全排列算法原理和实现  回复  更多评论 #include #include #define CHESSNUM 9 using namespace std; /*********** ...

  10. 排序算法java快速排序_快速排序算法--Java实现

    标签(空格分隔): 数据结构与算法 原理: 对于任意一个无序数组,我们随机的选一个元素作为基准元素(例如:数组中的最后一个或者第一个元素, 然后我们将数组中的剩余元素分别与基准元素进行比较,将小于或等 ...

最新文章

  1. Python单引号、双引号和三双引号的区别
  2. C++的Opencv动态库遇到的问题
  3. 2017.10.25
  4. mysql 一对多 关联一条最新的数据_不得不会的mysql锁
  5. python调用其他程序或脚本方法(转)
  6. 大数据分析必须要会的数据处理技巧!!!
  7. 印度软件和中国软件工程师_印度社区如何支持隐私和软件自由
  8. 2.4 sklearn中的metrics.roc_auc_score评价指标
  9. 进阶之路:Java 日志框架全画传(中)
  10. js表单验证 - 数字
  11. 英语读音(二) / English Pronounciation
  12. 普元mobile_普元Primeton Mobile 7.1 正式发布 互联网集成能力加速企业数字化转型
  13. 2020 知来者之可追
  14. ch341a编程和ttl刷机区别_USB转TTL(CH341A)的注意事项及说明 -
  15. 单片机/C语言浮点型数据转换为字符串方法
  16. 2023年全国最新二级建造师精选真题及答案46
  17. markdown左对齐
  18. 【Python基础】3-语法进阶
  19. USB基础书籍资料推荐
  20. C语言基础:折半查找

热门文章

  1. 11.11 大促背后的秘密——智能合图
  2. 将List集合中的符合条件的元素放到List第一个
  3. 实现微信绑定用户功能
  4. Intelij IDEA 2017.2安装mybatis插件并激活教程
  5. IDEA第一次创建android太慢,idea新建maven项目时速度缓慢的解决方法
  6. 华为新手机采用自由曲面镜头,理工男的浪漫or追求技术的极致
  7. shell、cmd创建文件软连接
  8. ADB logcat 过滤方法(抓取日志)
  9. C语言数组指定初始化器
  10. python培训 广州大学城