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实现
标签(空格分隔): 数据结构与算法 原理: 对于任意一个无序数组,我们随机的选一个元素作为基准元素(例如:数组中的最后一个或者第一个元素, 然后我们将数组中的剩余元素分别与基准元素进行比较,将小于或等 ...
最新文章
- Python单引号、双引号和三双引号的区别
- C++的Opencv动态库遇到的问题
- 2017.10.25
- mysql 一对多 关联一条最新的数据_不得不会的mysql锁
- python调用其他程序或脚本方法(转)
- 大数据分析必须要会的数据处理技巧!!!
- 印度软件和中国软件工程师_印度社区如何支持隐私和软件自由
- 2.4 sklearn中的metrics.roc_auc_score评价指标
- 进阶之路:Java 日志框架全画传(中)
- js表单验证 - 数字
- 英语读音(二) / English Pronounciation
- 普元mobile_普元Primeton Mobile 7.1 正式发布 互联网集成能力加速企业数字化转型
- 2020 知来者之可追
- ch341a编程和ttl刷机区别_USB转TTL(CH341A)的注意事项及说明 -
- 单片机/C语言浮点型数据转换为字符串方法
- 2023年全国最新二级建造师精选真题及答案46
- markdown左对齐
- 【Python基础】3-语法进阶
- USB基础书籍资料推荐
- C语言基础:折半查找