美文网首页
多元回归分析(multiple regression)

多元回归分析(multiple regression)

作者: foochane | 来源:发表于2018-01-18 23:00 被阅读70次

    1. 与简单线性回归区别(simple linear regression)

    多个自变量(x)

    2. 多元回归模型

    y=β0+βx12x2+ ... +βpxp

    其中:β0,β1,β2... βp是参数

    ε 是误差值

    3. 多元回归方程

    E(y)=β0+βx12x2+ ... +βpxp

    4. 估计多元回归方程:

    y_hat=b0+bx1+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.代码实现

    10.1将数据录入到表格Delivery.csv

    (没有录入表头)


    数据

    10.2代码

    from numpy import genfromtxt
    from sklearn import linear_model
    
    dataPath = r"Delivery.csv"
    deliveryData = genfromtxt(dataPath,delimiter=',')
    
    print("data")
    print(deliveryData)
    
    x= deliveryData[:,:-1]
    y = deliveryData[:,-1]
    
    print(x)
    print(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)
    

    11. 如果自变量中有分类型变量(categorical data) , 如何处理?

    11.1数据录入到表格Delivery_Dummy.csv

    这里车型的0,1,2只是一个标号,只是表示类型,所以将车型表示为一个3维向量(有3种车型)

    数据

    11.2代码

    from numpy import genfromtxt
    from sklearn import linear_model
    
    datapath=r"Delivery_Dummy.csv"
    data = genfromtxt(datapath,delimiter=",")
    
    x = data[1:,:-1]
    y = data[1:,-1]
    print(x)
    print(y)
    
    mlr = linear_model.LinearRegression()
    
    mlr.fit(x, y)
    
    print(mlr)
    print("coef:")
    print(mlr.coef_)
    print("intercept")
    print(mlr.intercept_)
    
    xPredict =  [90,2,0,0,1]
    yPredict = mlr.predict(xPredict)
    
    print("predict:")
    print (yPredict)
    





                【注】:本文为麦子学院机器学习课程的学习笔记

    相关文章

      网友评论

          本文标题:多元回归分析(multiple regression)

          本文链接:https://www.haomeiwen.com/subject/erugoxtx.html