多元线性回归模型

1. 与简单线性回归区别(simple linear regression)
          多个自变量(x)

2. 多元回归模型
     y=β0+βx12x2+ ... +βpxp
    其中:β0,β1,β2... βp是参数
                 ε是误差值

3. 多元回归方程
     E(y)=β0+βx12x2+ ... +βpxp

4. 估计多元回归方程:
     y_hat=b0+bx1+b2x2+ ... +bpxp

一个样本被用来计算β0,β1,β2... βp的点估计b0, b1, b2,..., bp


5. 估计流程  (与简单线性回归类似)

6. 估计方法
使sum of squares最小    
运算与简单线性回归类似,涉及到线性代数和矩阵代数的运算


7. 例子

一家快递公司送货:X1: 运输里程 X2: 运输次数   Y:总运输时间

Driving 

Assignment

X1=Miles 

Traveled

X2=Number of Deliveries

Y= Travel Time (Hours)

1

100

4

9.3

2

50

3

4.8

3

100

4

8.9

4

100

2

6.5

5

50

2

4.2

6

80

2

6.2

7

75

3

7.4

8

65

4

6.0

9

90

3

7.6

10

90

2

6.1




Time = b0+ b1*Miles + b2 * Deliveries 



Time = -0.869 + 0.0611 Miles + 0.923 Deliveries 



8. 描述参数含义
b0: 平均每多运送一英里,运输时间延长0.0611 小时
b1: 平均每多一次运输,运输时间延长 0.923 小时


9. 预测

     如果一个运输任务是跑102英里,运输6次,预计多少小时?

     Time = -0.869 +0.0611 *102+ 0.923 * 6
= 10.9 (小时)


10. 如果自变量中有分类型变量(categorical data) , 如何处理?

英里数次数车型时间
100419.3
50304.8
100418.9
100226.5
50224.2
80216.2
75317.4
65406
90307.6


11. 关于误差的分布

误差ε是一个随机变量,均值为0
ε的方差对于所有的自变量来说相等
所有ε的值是独立的
ε满足正态分布,并且通过β0+βx12x2+ ... +βpxp反映y的期望值
1. 例子


    一家快递公司送货:X1: 运输里程 X2: 运输次数   Y:总运输时间

Driving 

Assignment

X1=Miles 

Traveled

X2=Number of Deliveries

Y= Travel Time (Hours)

1

100

4

9.3

2

50

3

4.8

3

100

4

8.9

4

100

2

6.5

5

50

2

4.2

6

80

2

6.2

7

75

3

7.4

8

65

4

6.0

9

90

3

7.6

10

90

2

6.1



目的,求出b0, b1,.... bp:

 y_hat=b0+bx1+b2x2+ ... +bpx



2. Python代码:
from numpy import genfromtxt
import numpy as np
from sklearn import datasets, linear_modeldataPath = r"D:\MaiziEdu\DeepLearningBasics_MachineLearning\Datasets\Delivery.csv"
#载入数据
deliveryData = genfromtxt(dataPath, delimiter=',')
#打印数据
print "data"
print deliveryData
#分割自变量,因变量
X = deliveryData[:, :-1]
Y = deliveryData[:, -1]print "X:"
print X
print "Y: "
print Y
#定义回归模型
regr = linear_model.LinearRegression()
#训练模型
regr.fit(X, Y)print "coefficients"
#打印自变量系数 b1,b2,b3....
print regr.coef_
print "intercept: "
#打印截距 
print regr.intercept_xPred = [102, 6]
yPred = regr.predict(xPred)
print "predicted y: "
print yPred


自变量中存在分类问题的解决办法,对分类的自变量格式化
100,4,0,1,0,9.3
50,3,1,0,0,4.8
100,4,0,1,0,8.9
100,2,0,0,1,6.5
50,2,0,0,1,4.2
80,2,0,1,0,6.2
75,3,0,1,0,7.4
65,4,1,0,0,6
90,3,1,0,0,7.6
100,4,0,1,0,9.3
50,3,1,0,0,4.8
100,4,0,1,0,8.9
100,2,0,0,1,6.5



#!/usr/bin/env python
#-*-coding:utf-8-*-
#多元回归性曲线
from numpy import genfromtxt
import numpy as np
from sklearn import datasets,linear_modeldatePath=r'huigui1.csv'
deliveryData=genfromtxt(datePath,delimiter=',')print('data')
print(deliveryData)X=deliveryData[:,:-1]
Y=deliveryData[:,-1]print('X:')
print(X)
print('Y:')
print(Y)regr=linear_model.LinearRegression()regr.fit(X,Y)
print('coefficients')
print(regr.coef_)
#估计值b1,b2;;
print('intercept:')
print(regr.intercept_)
#估计的截距b0;#预测y值
#xPred=[102,6]
#yPred=regr.predict(xPred)
#print('predicted y: ')
#print(yPred)



结果解释:
data: 打印csv数据集
X: 自变量集
Y: 因变量集
coefficients:  各个自变量的系数集
intercept: 估计的截距




















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

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

相关文章

常见分数值归一化方法

数据标准化(归一化)处理是数据挖掘的一项基础工作,不同评价指标往往具有不同的量纲和量纲单位,这样的情况会影响到数据分析的结果,为了消除指标之间的量纲影响,需要进行数据标准化处理,以解决数…

非线性回归

1. 概率&#xff1a; 1.1 定义 概率(P)robability: 对一件事情发生的可能性的衡量1.2 范围 0 < P < 11.3 计算方法&#xff1a; 1.3.1 根据个人置信1.3.2 根据历史数据1.3.3 根据模拟数据1.4 条件概率&#xff1a;2. Logistic Regression (逻辑回归)2.1 例子2.2 基本…

python dir()函数使用

您可以使用内置的dir()函数列出一个定义对象的标识符。例如&#xff0c;对于一个模块&#xff0c;包括在模块中定义的函数&#xff0c;类和变量。 当你给dir()提供一个模块名字时&#xff0c;它返回在那个模块中定义的名字的列表。当没有为其提供参数时, 它返回当前模块中定义的…

【链接保存】十分钟上手sklearn:特征提取,常用模型,交叉验证

原博客地址&#xff1a;http://blackblog.tech/2018/02/05/%E5%8D%81%E5%88%86%E9%92%9F%E4%B8%8A%E6%89%8Bsklearn-1/ 简书地址&#xff1a;https://www.jianshu.com/p/731610dca805

【链接保存】十分钟上手sklearn:安装,获取数据,数据预处理

简书地址&#xff1a;https://www.jianshu.com/p/a9168803edc6 博主地址&#xff1a;http://blackblog.tech/2018/02/05/%E5%8D%81%E5%88%86%E9%92%9F%E4%B8%8A%E6%89%8Bsklearn-1/

层次聚类

假设有N个待聚类的样本&#xff0c;对于层次聚类来说&#xff0c;步骤&#xff1a;1、&#xff08;初始化&#xff09;把每个样本归为一类&#xff0c;计算每两个类之间的距离&#xff0c;也就是样本与样本之间的相似度&#xff1b;2、寻找各个类之间最近的两个类&#xff0c;把…

常用软件包和环境配置(机器学习)

1. 常用软件包&#xff1a;TheanoPylearn2scikit-neuralnetworkCaffeDeeplearning4jTorchhttp://deeplearning.net/software_links/2. 环境配置Linux: UbuntuEclipsePyDevPythonCUDAGPU: https://developer.nvidia.com/cuda-gpus3. 神经网络算法 (neural networks)http://www.m…

(优秀文章保存)Quartz优秀文章保存

Quartz的基本使用之入门&#xff08;2.3.0版本&#xff09; 一、Quartz可以用来做什么 Quartz是一个强大任务调度框架&#xff0c;我工作时候会在这些情况下使用到quartz框架&#xff0c;当然还有很多的应用场景&#xff0c;在这里只列举2个实际用到的 餐厅系统会在每周四晚…

【使用注意】Jsoup的select方法

之前做了一个频道抓取&#xff1a;获取div Elements div_e;div_e doc.select("div");Iterator<Element> div_it div_e.iterator();while (div_it.hasNext()) {处理逻辑} 我是想通过select div块然后去遍历获取div里的内容&#xff0c;但是发现有的新闻网址频…

cross-entropy函数

我们理想情况是让神经网络学习更快假设简单模型: 只有一个输入,一个神经元,一个输出简单模型: 输入为1时, 输出为0初始 w 0.6, b 0.9 初始预测的输出 a 0.82, 需要学习学习率: 0.15演示: 初始: w 2.0, b 2.0, 初始预测输出: 0.98, 和理想输出0差点很远演示:神经网络的学…

DButils工具使用笔记以及常见问题总结

入门&#xff1a; https://www.cnblogs.com/smyhvae/p/4085684.html 一、字段名称和实体类命名不用 解决办法&#xff1a;给查询结果的显示字段取别名&#xff0c;如TEMPLATE_ID AS templateId select news_id as id, title from test where id1 二、DBUtils使用BeanListH…

Tensorflow报错:AttributeError: 'module' object has no attribute 'scalar_summary'

报错&#xff1a; tf.scalar_summary(l.op.name (raw), l) AttributeError: module object has no attribute scalar_summary 解决&#xff1a; tf.scalar_summary(images, images)改为&#xff1a;tf.summary.scalar(images, images) tf.image_summary(images, images)改为&…

python安装Scrapy踩过的坑以及安装指导

在pyCharm中的setting中直接添加包然后报错,然后利用window控制台pip install 报错异常&#xff1a; Command "python setup.py egg_info" failed with error code 1 第一步&#xff1a;准备更新pip&#xff0c;利用以下指令 python -m pip install --upgrade pip…

MyBatis之快速入门

MyBatis之快速入门 2017/9/30首先我要明确告诉大家的是MyBatis是一个java持久层框架&#xff0c;以前我们都是用jdbc来将我们的java程序与数据库相连接&#xff0c;而MyBatis是对jdbc的一个封装。 1.MyBatis框架的引入 我们来看看传统的编程方式中使用jdbc的问题: 1.数据库连接…

【使用注意】特殊中括号[]的特殊json数组

Testpublic void demo93() throws Exception {String str "[\"a\", \"b\", \"c\"]";//生成json数组JSONArray createArray new JSONArray();createArray.put("a");createArray.put("b");createArray.put("…

MyBatis之Mapper动态代理开发

MyBatis之Mapper动态代理开发 2017/9/301.SqlSession的使用范围 1.SqlSessionFactoryBuilder SqlSessionFactoryBuilder是以工具类的方式来使用:需要创建sqlSessionFactory时就new一个 SqlSessionFactoryBuilder 2.sqlSessionFactory 正常开发时&#xff0c;以单例方式管理sqlS…

【转载保存】IDEA maven中添加本地jar包

http://www.cnblogs.com/pldsalaryblogs/p/8194742.html

【转载保存】Java 8 Lambda实现原理分析

怒学Java8系列一:Lambda表达式介绍 Java 8 Lambda实现原理分析

MyBatis之输入(parameterType)与输出(resultType、resultMap)映射

MyBatis之输入(parameterType)与输出(resultType、resultMap)映射 2017/9/30在MyBatis中&#xff0c;我们通过parameterType完成输入映射(指将值映射到sql语句的占位符中&#xff0c;值的类型与dao层响应方法的参数类型一致)&#xff0c;通过resultType完成输出映射(从数据库中…

java几种遍历方式以及效率对比

几种遍历方式&#xff1a; /*** */ package effectiveUse;import java.util.Iterator; import java.util.List;/*** author weijie** 2019年4月13日*/ public class ForEachList {/** 方式1&#xff1a;开始时候*/public void countSizeForEachList(List<Integer> list)…