java 线性回归_线性回归算法原理(附java实现)
线性回归目标:
已知训练集(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实现)相关推荐
- java 独木桥_趣味算法——青蛙过河(JAVA)
青蛙过河是一个非常有趣的智力游戏,其大意如下: 一条河之间有若干个石块间隔,有两队青蛙在过河,每队有3只青蛙,这些青蛙只能向前移动,不能向后移动,且一次只能有一只青蛙向前移动.在移动过程中,青蛙可以向 ...
- java 实现气泡 源码分析_冒泡排序算法原理及JAVA实现代码
冒泡排序法:关键字较小的记录好比气泡逐趟上浮,关键字较大的记录好比石块下沉,每趟有一块最大的石块沉底. 算法本质:(最大值是关键点,肯定放到最后了,如此循环)每次都从第一位向后滚动比较,使最大值沉底, ...
- 排序算法java源代码_排序算法汇总(java实现,附源代码)
整理系统的时候发现了原来写的各种算法的总结,看了一下,大吃一惊,那时候的我还如此用心,具体的算法,有的已经模糊甚至忘记了,看的时候就把内容整理出来,顺便在熟悉一下,以后需要的时候就可以直接过来摘抄了. ...
- dbscan用 java代码_聚类算法之DBScan(Java实现)[转]
package orisun; import java.io.File; import java.util.ArrayList; import java.util.Vector; import jav ...
- 归并排序的java代码_归并排序的原理及java代码实现
概述 归并(Merge)排序法是将两个(或两个以上)有序表合并成一个新的有序表,即把待排序序列分为若干个子序列,每个子序列是有序的.然后再把有序子序列合并为整体有序序列. 归并排序采用的是递归来实现, ...
- java青蛙过河打字_趣味算法——青蛙过河(JAVA)
青蛙过河是一个非常有趣的智力游戏,其大意如下: 一条河之间有若干个石块间隔,有两队青蛙在过河,每队有3只青蛙,这些青蛙只能向前移动,不能向后移动,且一次只能有一只青蛙向前移动.在移动过程中,青蛙可以向 ...
- 【机器学习】Softmax Regression算法原理与java实现
[机器学习]Softmax Regression算法原理与java实现 1.Softmax Regression算法原理 1.1.样本概率 1.2.损失函数 1.3.梯度下降法训练模型 2.java实 ...
- java排序算法原理_排序算法原理与实现(java)
排序算法原理与实现(java) Java程序员必知的8大排序 [来源:本站 | 日期:2012年12月24日 | 浏览173 次] 字体:[大 中 小] 8种排序之间的关系: 1, 直接插入排序 (1 ...
- 全排列的java算法_全排列算法原理和实现
评论 # re: 全排列算法原理和实现 回复 更多评论 #include #include #define CHESSNUM 9 using namespace std; /*********** ...
- 排序算法java快速排序_快速排序算法--Java实现
标签(空格分隔): 数据结构与算法 原理: 对于任意一个无序数组,我们随机的选一个元素作为基准元素(例如:数组中的最后一个或者第一个元素, 然后我们将数组中的剩余元素分别与基准元素进行比较,将小于或等 ...
最新文章
- linux内核微妙时,Linux内核模块时间同步函数汇总
- 一个cube的大小位置方向不断和另一个cube重合
- asterisk的NAT配置
- windows安装 Git Large File Storage大文件下载工具ge
- 重磅!Python再次第一,Java和C下降,凭什么?
- 从0到1入门:7天玩转IoT物联网实战营丨IoT喊你加入学习之旅!
- java递归统计_Java类递归计数
- jar启动报错:org.yaml.snakeyaml.error.YAMLException: java.nio.charset.MalformedInputExcept
- sublime3103 破解及Package Control离线安装
- Linux下命令积累
- 前端实现在线预览Word文件
- 单片机c语言百分号是什么意思,请教:数组表达式的百分号和分号含义是什么?...
- MES生产管理系统中,看板管理究竟是什么
- 阿里巴巴(容器镜像服务)docker+springboot实践
- 这些重构小技巧,给你项目瘦瘦身吧!
- VMware Workstation左侧不见了,左侧菜单栏不见了
- 深入理解JAVA中的跨包继承
- 网络流量一对多镜像配置
- 跟我学:1000句最常用英语口语
- 力扣707设计链表(单链表,JavaScript)