多元回归分析(multiple regression)

2019-05-23 14:35:45 浏览数 (1)

1. 与简单线性回归区别(simple linear regression)

多个自变量(x)

2. 多元回归模型

y=β0+β1x1 β2x2 ... βpxp ε

其中:β0,β1,β2... βp是参数

ε 是误差值

3. 多元回归方程

E(y)=β0+β1x1 β2x2 ... βpxp

4. 估计多元回归方程:

y_hat=b0+b1x1 b2x2 ... bpxp

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

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

6. 估计方法

使sum of squares最小

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

7. 例子

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

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

(没有录入表头)

数据

10.2代码

代码语言:javascript复制
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) , 如何处理?

11.1数据录入到表格Delivery_Dummy.csv

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

数据

11.2代码

代码语言:javascript复制
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)

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

0 人点赞