学习彭亮《深度学习基础介绍:机器学习》课程
与简单线性回归区别
* 简单线性回归:一个自变量(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
numpyas 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
热门工具 换一换