多元线性回归模型

多元线性回归模型解析
本文探讨了多元线性回归模型的原理和应用,通过公式Time = b0 + b1 * Miles + b2 * Deliveries阐述模型如何结合里程(Miles)和送货次数(Deliveries)预测时间(Time)。
部署运行你感兴趣的模型镜像
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_model

dataPath = 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_model

datePath=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: 估计的截距




















您可能感兴趣的与本文相关的镜像

Stable-Diffusion-3.5

Stable-Diffusion-3.5

图片生成
Stable-Diffusion

Stable Diffusion 3.5 (SD 3.5) 是由 Stability AI 推出的新一代文本到图像生成模型,相比 3.0 版本,它提升了图像质量、运行速度和硬件效率

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值