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

Posted YEN_csdn

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了机器学习-多元线性回归(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



以上是关于机器学习-多元线性回归(Multiple Regression)算法的主要内容,如果未能解决你的问题,请参考以下文章

斯坦福机器学习视频笔记 Week2 Linear Regression with Multiple Variables

机器学习 —— 多元线性回归

机器学习算法--线性回归分析(单元和多元)

机器学习算法--线性回归分析(单元和多元)

机器学习——多元线性回归

R语言使用lm函数拟合多元线性回归模型假定预测变量没有交互作用(Multiple linear regression)