线性回归目标:

已知训练集(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. linux内核微妙时,Linux内核模块时间同步函数汇总
  2. 一个cube的大小位置方向不断和另一个cube重合
  3. asterisk的NAT配置
  4. windows安装 Git Large File Storage大文件下载工具ge
  5. 重磅!Python再次第一,Java和C下降,凭什么?
  6. 从0到1入门:7天玩转IoT物联网实战营丨IoT喊你加入学习之旅!
  7. java递归统计_Java类递归计数
  8. jar启动报错:org.yaml.snakeyaml.error.YAMLException: java.nio.charset.MalformedInputExcept
  9. sublime3103 破解及Package Control离线安装
  10. Linux下命令积累
  11. 前端实现在线预览Word文件
  12. 单片机c语言百分号是什么意思,请教:数组表达式的百分号和分号含义是什么?...
  13. MES生产管理系统中,看板管理究竟是什么
  14. 阿里巴巴(容器镜像服务)docker+springboot实践
  15. 这些重构小技巧,给你项目瘦瘦身吧!
  16. VMware Workstation左侧不见了,左侧菜单栏不见了
  17. 深入理解JAVA中的跨包继承
  18. 网络流量一对多镜像配置
  19. 跟我学:1000句最常用英语口语
  20. 力扣707设计链表(单链表,JavaScript)

热门文章

  1. 墙体建筑材料英国UKCA认证—EN1364-1
  2. 关于面试总结-app测试面试题
  3. 物理层 - 频分复用技术
  4. jquery css 流程进度条
  5. 21中山大学计算机考研群,考研笔试成绩:321分成功捡漏中山大学,381分哭晕在浙大复试群...
  6. 【EI检索】VRHCIAI 2022欢迎各位学者来稿
  7. js取整数、取余数的方法总结
  8. 【十日谈】编程上的追求卓越和圈子论
  9. 程序员面试失败的几种原因
  10. 倾听佛祖的召唤——达孜大桥