机器学习-多元线性回归(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)算法的主要内容,如果未能解决你的问题,请参考以下文章