机器学习算法原理总结系列---算法基础之(9)多元回归分析(Multiple Regression)

一、原理详解

  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. 如果自变量中有分类型变量(categorical data) , 如何处理?
    这里写图片描述
    使用ont-hot的编码方式,将分类型变量转化为0,1的形式。

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

二、代码实现

任务依然是上面的例子实现,保存一个csv文件显示为:
这里写图片描述

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

dataPath = r"delivery_analyze.csv"
deliveryData = genfromtxt(dataPath, delimiter=',')

print("data")
print(deliveryData)

X = deliveryData[:, :-1]
Y = deliveryData[:, -1]

print("X:")
print(X)
print("Y: ")
print(Y)

regr = linear_model.LinearRegression()

regr.fit(X, Y)

print("coefficients")
print(regr.coef_)
print("intercept: ")
print(regr.intercept_)

xPred = [102, 6]
yPred = regr.predict(np.array(xPred).reshape(1, -1))
print("predicted y: ")
print(yPred)

这里写图片描述

猜你喜欢

转载自blog.csdn.net/tong_t/article/details/78938334