java 线性回归_Java线性回归
package com.topsmob.amazon.utils;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
/**
* Java线性回归实现
* x:是rank
* y: 是销量
*/
public class LinearRegression {
public static Map calculate(List> list){
Map map = new LinkedHashMap<>();
int MAXN = list.size();
int n = 0;
double[] x = new double[MAXN];
double[] y = new double[MAXN];
double sumx = 0.0, sumy = 0.0, sumx2 = 0.0;
for (Map item:list){
//这里是x轴的参数
x[n] = Double.parseDouble(item.get("rank").toString());
//这里是y轴的参数
y[n] = Double.parseDouble(item.get("qty").toString());
sumx += x[n];
sumx2 += x[n] * x[n];
sumy += y[n];
n++;
}
double xbar = sumx / n;
double ybar = sumy / n;
// second pass: compute summary statistics
double xxbar = 0.0, yybar = 0.0, xybar = 0.0;
for (int i = 0; i < n; i++) {
xxbar += (x[i] - xbar) * (x[i] - xbar);
yybar += (y[i] - ybar) * (y[i] - ybar);
xybar += (x[i] - xbar) * (y[i] - ybar);
}
double beta1 = xybar / xxbar;
double beta0 = ybar - beta1 * xbar;
// print results
System.out.println("y = " + beta1 + " * x + " + beta0);
// analyze results
int df = n - 2;
double rss = 0.0; // residual sum of squares
double ssr = 0.0; // regression sum of squares
for (int i = 0; i < n; i++) {
double fit = beta1*x[i] + beta0;
rss += (fit - y[i]) * (fit - y[i]);
ssr += (fit - ybar) * (fit - ybar);
}
double R2 = ssr / yybar;
map.put("r",R2);
map.put("a",beta1);
map.put("b",beta0);
/* double svar = rss / df;
double svar1 = svar / xxbar;
double svar0 = svar/n + xbar*xbar*svar1;
System.out.println("R^2 = " + R2);
System.out.println("std error of beta_1 = " + Math.sqrt(svar1));
System.out.println("std error of beta_0 = " + Math.sqrt(svar0));
svar0 = svar * sumx2 / (n * xxbar);
System.out.println("std error of beta_0 = " + Math.sqrt(svar0));
System.out.println("SSTO = " + yybar);
System.out.println("SSE = " + rss);
System.out.println("SSR = " + ssr);*/
return map;
}
}
java 线性回归_Java线性回归相关推荐
- java实现一元线性回归算法
网上看一个达人用java写的一元线性回归的实现,我觉得挺有用的,一些企业做数据挖掘不是用到了,预测运营收入的功能吗?采用一元线性回归算法,可以计算出类似的功能.直接上代码吧: 1.定义一个DataPo ...
- 多重线性回归 多元线性回归_了解多元线性回归
多重线性回归 多元线性回归 Video Link 影片连结 We have taken a look at Simple Linear Regression in Episode 4.1 where ...
- 【源码+教程】Java课设项目_12款最热最新Java游戏项目_Java游戏开发_Java小游戏_飞翔的小鸟_王者荣耀_超级玛丽_推箱子_黄金矿工_贪吃蛇
马上就要期末了,同学们课设做的如何了呢?本篇为大家带来了12款热门Java小游戏项目的源码和教程,助力大家顺利迎接暑假![源码+教程]Java课设项目_12款最热最新Java游戏项目_Java游戏开发 ...
- 线性回归-多元线性回归
线性回归-多元线性回归 上次讲到简单线性回归,本文主要讲下如何处理多元线性回归,多元线性回归中如何检查多重共线性,以及如何进行feature selection. 多元线性回归,故名思意,用多个变量来 ...
- 线性回归-简单线性回归
线性回归-简单线性回归 线性回归是一个解释性很强的模型,它可以告诉我们哪个因素对被预测变量影响最大,也可以给定因变量的不同组合来判断被预测量的值.在业务上,运营同学可能想知道增加流量.价格变动等对销量 ...
- 黑马程序员全套Java教程_Java基础教程_异常(含扩展)(二十三)
黑马程序员全套Java教程_Java基础教程_异常(含扩展)(二十三) 1.1 异常概述与异常体系结构 1.2 JVM遇到异常时的默认处理方案 1.3 异常处理 1.4 异常处理之try--catch ...
- java 线性回归_java实现简单线性回归
术语及定义 1.因变量 dependent variable 需要预测的变量 2.自变量 independent variable 用来预测因变量值的一个或多个变量 3.回归分析 利用统计学方法建立一 ...
- java 线性回归_Java实现一元线性回归
最近在写一个荧光图像分析软件,需要自己拟合方程.一元回归线公式的算法参考了<Java数值方法>,拟合度R^2(绝对系数)是自己写的,欢迎讨论.计算结果和Excel完全一致. 总共三个文件: ...
- java 一元线性回归_java一元线性回归方程代码怎么理解的
展开全部 1.1 变量间的关系 变量与变量之间的关系呢可以分为两种: (1)函数关系: (2)相32313133353236313431303231363533e58685e5aeb931333363 ...
最新文章
- Ubuntu下安装RabbitMQ
- 字符串加括号问题(矩阵乘法组合问题)C++
- 2022年美国大学生数学建模竞赛各题型常见参考代码汇总
- 【爬虫】beautiful soup笔记(待填坑)
- 热转印法手工自制单面PCB流程和技巧总结
- 为什么不用 LinkedList
- 配置Setting.xml文件提高maven更新下载jar包速度
- MongoDB学习记录:入门(一)——五叶草
- [AaronYang]C#人爱学不学[2]
- html 块 隐藏 显示,bootstrap如何显示或隐藏内容?
- 「 软件安装 」嵌入式开发Keil5安装教程
- [haut] 1281: 邪能炸弹 dp
- 程序猿给娃取名的正确姿势
- Atitit.论图片类型 垃圾文件的识别与清理 流程与设计原则 与api概要设计 v2 pbj...
- 什么是多租户saas架构设计
- Oracle 字符函数
- manjaro go的安装
- ODI KM二次开发手册
- python实战:合并多个不同样式的excel的sheet到一个文件中
- CentOS 7安装指南