java 一元线性回归_一元线性回归的java实现

我们有两组数据,比如连续5年的pv与uv。

我们想预测一下,uv达到500k那么pv会是多少。当然更有意思可能是,如果销售额是500w的话,pv会是多少。

机器学习里的一元线性回归方法是比较简单的方法,就是我们猜是满足y=wx+b的。

那么,按求均方误差的偏导后,可得到如下两公式:

749c8ac84b24e6eb8f9b305cbcdc2724.png

下面是求b的公式,要用到w:

14853182f000eb8ece5b641afa234d6e.png

用java代码来实现一下这两公式:

package net.highersoft.svm;

import java.text.DecimalFormat;

import java.util.Arrays;

import java.util.List;

public class TestLineXY {

public static void main(String[] args) {

DecimalFormat df=new DecimalFormat("0.##");

//x pv

//y uv

List x=Arrays.asList(5,9,15,19,19,45);

List y=Arrays.asList(4,6,12,15,15,37);

/*

List x=Arrays.asList(4,6,8,10,12);

List y=Arrays.asList(7.8d,9.3d,9.9d,11.2d,11.9d);

*/

System.out.println(x+""+y);

if(x.size()!=y.size()) {

System.out.println("分子分母数量不一致。");

return;

}

long sum=0;

for(Integer xi:x) {

sum+=xi;

}

double avgx=sum*1.0/y.size();

System.out.println("avg_x:"+avgx);

//w的分子

double w_molecule=0;

for(int i=0;i

w_molecule+=y.get(i)*(x.get(i)-avgx);

//System.out.print(y.get(i)+"*("+x.get(i)+"-"+avgx+") +");

}

System.out.println();

//System.out.println("w_molecule:"+w_molecule);

//w的分母

double w_denominator=0;

int w_denominator_xi=0;

for(int i=0;i

w_denominator+=Math.pow(x.get(i),2);

w_denominator_xi+=x.get(i);

}

w_denominator=w_denominator-(1.0/x.size())*(Math.pow(w_denominator_xi,2));

//System.out.println("w_denominator:"+w_denominator+" w_denominator_xi:"+w_denominator_xi);

double w=w_molecule/w_denominator;

System.out.println("w:"+w);

double b=1.0/x.size();

double sum_y_wx=0;

for(int i=0;i

sum_y_wx+=(y.get(i)-w*x.get(i));

}

b=b*sum_y_wx;

System.out.println("b:"+b);

String symbol="+";

if(b<0) {

symbol="";

}

System.out.println("y="+df.format(w)+"x"+symbol+df.format(b));

System.out.println(w*15+b);

}

}

评论:

95578fe301251f2f2bbda78bf1fd727c.png

提交

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/438832.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java大神请出来_求java大神,请分析以下代码,写出执行结果,并解释每行结果输出的原因。...

求java大神&#xff0c;请分析以下代码&#xff0c;写出执行结果&#xff0c;并解释每行结果输出的原因。classPlate{publicPlate(){System.out.println("inPlateconstructor");}}classDinnerPlateextendsPlate{publi...求java大神&#xff0c;请分析以下代码&#x…

【转】ELK是什么能做什么怎么做

作者&#xff1a;蛙课网 链接&#xff1a;https://www.zhihu.com/question/338932215/answer/777380560 来源&#xff1a;知乎 著作权归作者所有。商业转载请联系作者获得授权&#xff0c;非商业转载请注明出处。 为什么用到ELK&#xff1a; 一般我们需要进行日志分析场景&…

java中的并发类_java中并发常用工具类

前言:在你无聊的时候,想想比你优秀还努力的人,也许就不觉的无聊了今天下午没事干把买的java并发编程艺术这本书拿出来看了看,看了下也记不住,还是好记性不如烂笔头,今天讲四个并发中可能会用到的工具类,分别是&#xff1a;CountDownLatchCyclicBarrierSemaphoreExchangerCountD…

github迁移到gitee相关问题

为什么要从github迁移到gitee&#xff08;国内github版&#xff09;&#xff1f; 1. github对于国人来讲&#xff0c;速度较慢。例如&#xff1a; 浏览个技术文档点击个链接半天跳不过去pull、push、clone个代码太慢个人版&#xff08;免费版&#xff09;没有私人仓库&#xf…

java s1=abc s2=abc s1==s2_经典问题:String s1 = abc 与 String s2 = new String(abc)的区别...

这是以前刚学Java那会经常被问到的问题&#xff0c;并且也会经常出现在面试中。这个问题不仅仅只局限于Java&#xff0c;可以适用于其他大部分语言&#xff0c;正好最近有个小朋友在学编程&#xff0c;特此整理一下。String s1 "abc" ;String s2 new String("…

NAS、CIFS、NFS之间的关系

经常会听到或看到有人将NAS和CIFS/NFS相提并论&#xff0c;其实是对存储的理解有误。 NAS&#xff0c;网络附加存储&#xff0c;中心词“存储”&#xff0c;是的&#xff0c;它是一个存储设备。比如我装个openfiler或freenas系统&#xff0c;再加几块硬盘&#xff0c;对外提供…

线程池简单实现java_简单实现java线程池

package com.ty.thread;importjava.util.HashSet;importjava.util.Set;importjava.util.concurrent.BlockingQueue;importjava.util.concurrent.LinkedBlockingQueue;/***authorTaoyong* date 2018年5月17日* 天下没有难敲的代码&#xff01;*/public classThreadPoolExecutor …

【转】abp vNext微服务框架分析

abp vNext新框架的热度一直都很高&#xff0c;于是最近上手将vNext的微服务Demo做了一番研究。我的体验是&#xff0c;vNext的微服务架构确实比较成熟&#xff0c;但是十分难以上手&#xff0c;对于没有微服务开发经验的.net人员来说几乎是看不懂的&#xff0c;所以研究一番后再…

java线程的创建与执行_Java多线程的创建和运行

1.多线程的好处多线程是一个很有用的东西&#xff0c;它使的系统可以同时运行多个任务&#xff0c;提高程序的执行效率。大家平时可能没有注意到&#xff0c;其实我们电脑能同时执行多个程序的基本原理就是多线程。每一个程序都是一个进程&#xff0c;而线程则是进程下独立的执…

SQL SERVER data tier application 的作用及如何使用SSDT进行SQL数据库的自动化部署到生产环境和版本控制

这个是管理员用来发布数据库所有的脚本用的&#xff0c;自SQL2008以后&#xff0c;微软开始将数据库的开发整合到VS2010上&#xff0c;用户可以将数据所有的相关对象打包成一个DAC包&#xff0c;让管理通过extract data-tier application发布到服务器上。就好像你把代码变成dll…

bitcount java_Java.math.BigInteger.bitCount()方法实例

全屏Java.math.BigInteger.bitCount()方法实例java.math.BigInteger.bitCount()返回此BigInteger的二进制补码表示的位&#xff0c;从它的符号位不同的数字。实现位向量样式集上BigIntegers的时候&#xff0c;此方法很有用。声明以下是java.math.BigInteger.bitCount()方法的声…

java character是什么意思_Java Character 类

利用Character提取字符串中的大写字母和小写字母&#xff1a;public class UpperLowerCase {/** 利用Character类提取字符串中的大写字母和小写字母* auther Anthony-Z*/public static void main(String[] args) {String sr1 "I Like JAVA ! I learn Java everyday."…

php 和jsp,jsp和php哪个好?jsp和php的简单比较

jsp和php这两个Web开发技术哪个好&#xff1f;这个问题应该会有很多人问&#xff0c;但是每种开发技术都有各自的优缺点&#xff0c;所谓的哪个好&#xff0c;不过是看你更擅长使用哪一种技术&#xff0c;所以今天我们来对比一下jsp和php&#xff0c;介绍jsp和php之间有什么区别…

jQuery Ajax 如何设置Timeout

$.get()与$.post()方法是$.ajax的高级封装 全局属性 $.ajaxSetup({timeout:5000}); $.ajax方法有timeout属性可设置&#xff0c;单位也是毫秒。 Azure App Service MVC下&#xff0c;全局属性才起作用&#xff0c;不知为何

php调用sql数据库代码怎么写,PHP读取SQL文件并导入数据库(示例)

/*** 读取 sql 文件并写入数据库* version 1.01 demo.php* author xingshaocheng* edit: www.jbxue.com*/class DBManager{var $dbHost ;var $dbUser ;var $dbPassword ;var $dbSchema ;function __construct($host,$user,$password,$schema){$this->dbHost $host;$thi…

如何修改SharePoint服务器场管理员帐户和密码

最近需要修改MOSS服务器场的管理员帐户&#xff0c;用 "%commonprogramfiles%\Microsoft Shared\Web server extensions\12\BIN\Stsadm.exe" -o updatefarmcredentials -userlogin [username] -password [password] 这条命令去修改发现没有修改成功&#xff0c;这个…

php中sisson用法,thinkPHP中session()方法用法详解

本文实例讲述了thinkPHP中session()方法用法。分享给大家供大家参考&#xff0c;具体如下&#xff1a;系统提供了Session管理和操作的完善支持&#xff0c;全部操作可以通过一个内置的session函数完成。用法session(name,name,value)参数name(必须)&#xff1a;如果传入数组 则…

【转】SharePoint 2010 Search Service -- 管理中心配置

今天配置了一下SharePoint Search&#xff0c;怕忘&#xff0c;赶紧记下来。 我参考了国外的一篇文章&#xff1a;Search Configuration in SharePoint 2010 首先&#xff0c;要查看以下User Profile Service, User Profile Synchronization Service是否运行正常&#xff0c;然…

PHP获取表单数据的方法有几种,如何实现PHP获取表单数据与HTML嵌入PHP脚本

如何实现PHP获取表单数据与HTML嵌入PHP脚本导语&#xff1a;如何实现PHP获取表单数据与HTML嵌入PHP脚本&#xff0c;下面是小编给大家提供的操作讲解&#xff0c;大家可以参考阅读&#xff0c;更多详情请关注应届毕业生考试网。常用的自动全局变量如下所示&#xff1a;1、GET方…