YEN_CSDN的博客

如果真的相信什么,就要用尽全力去让它发生。

机器学习-多元线性回归(Multiple Regression)算法

学习彭亮《深度学习基础介绍:机器学习》课程

与简单线性回归区别

  • 简单线性回归:一个自变量(x)
  • 多元线性回归:多个自变量(x)

多元回归模型

y=β0+β1x1+β2x2+ … +βpxp+ε
其中:β0,β1,β2… βp是参数
ε是误差值

多元回归方程

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

估计多元回归方程

y_hat=b0+b1x1+b2x2+ … +bpxp,(估计值),一个样本被用来计算β0,β1,β2… βp的点估计b0, b1, b2,…, bp

估计方法

使sum of squares最小
这里写图片描述

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

例子

这里写图片描述

Time = b0+ b1*Miles + b2 * Deliveries

描述参数含义

  • b0: 平均每多运送一英里,运输时间延长b1 小时
  • b1: 平均每多一次运输,运输时间延长 b2 小时

关于误差的分布

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

代码应用1(Xi均为连续变量)

这里写图片描述

#coding=utf-8
# @Author: yangenneng
# @Time: 2018-01-17 15:42
# @Abstract:多元线性回归(Multiple Regression)算法

from numpy import genfromtxt
import numpy as np
from sklearn import linear_model

datapath=r"D:\Python\PyCharm-WorkSpace\MachineLearningDemo\MultipleRegression\data\data.csv"
#从文本文件中提取数据并转为numpy Array格式
deliveryData = genfromtxt(datapath,delimiter=',')

print "data"
# print deliveryData

# 读取自变量X1(运送英里数),X2(运送次数)
x= deliveryData[1:,1:-1]
# 读取因变量(运送时间)
y = deliveryData[1:,-1]

print "x:",x
print "y:",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



这里写图片描述


代码应用2(Xi包含类别变量)

这里写图片描述

对类别变量进行转码
这里写图片描述

#coding=utf-8
# @Author: yangenneng
# @Time: 2018-01-17 16:11
# @Abstract:多元线性回归(Multiple Regression)算法  含类别变量

from numpy import genfromtxt
import numpy as np
from sklearn import linear_model

datapath=r"D:\Python\PyCharm-WorkSpace\MachineLearningDemo\MultipleRegression\data\data2.csv"
#从文本文件中提取数据并转为numpy Array格式
deliveryData = genfromtxt(datapath,delimiter=',')

print "data"
# print deliveryData

# 读取自变量X1...x5
x= deliveryData[1:,1:-1]
# 读取因变量
y = deliveryData[1:,-1]

print "x:",x
print "y:",y

# 调用线性回归模型
lr = linear_model.LinearRegression()
# 装配数据
lr.fit(x, y)

print lr

print("coefficients:")
print lr.coef_

print("intercept:")
print lr.intercept_

#预测
xPredict = [90,2,0,0,1]
yPredict = lr.predict(xPredict)
print("predict:")
print yPredict



这里写图片描述

阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/YEN_CSDN/article/details/79086067
上一篇机器学习-简单线性回归(Simple Linear Regression)算法
下一篇机器学习-非线性回归( Unlinear Regression) -逻辑回归(Logistic Regression)算法
想对作者说点什么? 我来说一句

C#多元线性回归算法

2013年04月10日 43KB 下载

多元线性回归源码最小二乘C#

2009年12月24日 40KB 下载

没有更多推荐了,返回首页

关闭
关闭