多元回归分析(multiple regression)

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. 估计流程 (与简单线性回归类似)

7007663-9f2d0f88212a305c.png

6. 估计方法

使sum of squares最小

7007663-201208e9f6913eb1.png

运算与简单线性回归类似,涉及到线性代数和矩阵代数的运算

7. 例子

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

7007663-8418949f87df9725.png

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.代码实现

10.1将数据录入到表格Delivery.csv

(没有录入表头)


7007663-91e91d4f961b12ca.png
数据

10.2代码

from numpy import genfromtxt
from sklearn import linear_model

dataPath = r"Delivery.csv"
deliveryData = genfromtxt(dataPath,delimiter=',')

print("data")
print(deliveryData)

x= deliveryData[:,:-1]
y = deliveryData[:,-1]

print(x)
print(y)

lr = linear_model.LinearRegression()
lr.fit(x, y)

print(lr)

print("coefficients:")
print(lr.coef_)

print("intercept:")
print(lr.intercept_)

xPredict = [102,6]
yPredict = lr.predict(xPredict)
print("predict:")
print(yPredict)

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

7007663-baa6124494c286b6.png

11.1数据录入到表格Delivery_Dummy.csv

这里车型的0,1,2只是一个标号,只是表示类型,所以将车型表示为一个3维向量(有3种车型)

7007663-6bfc5067b2547307.png
数据

11.2代码

from numpy import genfromtxt
from sklearn import linear_model

datapath=r"Delivery_Dummy.csv"
data = genfromtxt(datapath,delimiter=",")

x = data[1:,:-1]
y = data[1:,-1]
print(x)
print(y)

mlr = linear_model.LinearRegression()

mlr.fit(x, y)

print(mlr)
print("coef:")
print(mlr.coef_)
print("intercept")
print(mlr.intercept_)

xPredict =  [90,2,0,0,1]
yPredict = mlr.predict(xPredict)

print("predict:")
print (yPredict)





            【注】:本文为麦子学院机器学习课程的学习笔记

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值