线性回归及原理

前言

❤️‍🔥❤️‍🔥线性回归是解决回归预测问题常用的算法,本期我们主要学习线性回归的原理和损失函数的作用

1.线性回归的原理 

1.1什么是线性回归 

 ✒️线性回归(Linear regression)是利用 回归方程(函数) 对 一个或多个自变量(特征值)和因变量(目标值)之间 关系进行建模的一种分析方式。

特点:只有一个自变量的情况称为单变量回归,多于一个自变量情况的叫做多元回归。 

 上面两个例子, 我们看到特征值与目标值之间建立了一个关系,这个关系可以理解为线性模型 

✏️这里我们又提到了模型,那么我们来简述一下:线性回归当中主要有两种模型, 一种是线性关系,另一种是非线性关系。在这里我们只能画一个平面更好去理解,所以都用单个特征或两个特征举例子。

线性关系:

  • 单变量线性关系 

  • 多变量线性关系 

  • 非线性关系 

1.2线性回归API 

sklearn中, 线性回归的API在linear_model模块中

sklearn.linear_model.LinearRegression()

  • LinearRegression.coef_:回归系数

代码实现:

  1. LinearRegression.fit 表示模型训练函数

  2. LinearRegression.predict 表示模型预测函数  

from sklearn.linear_model import LinearRegression
# 加载数据
x = [[80, 86],
     [82, 80],
     [85, 78],
     [90, 90],
     [86, 82],
     [82, 90],
     [78, 80],
     [92, 94]]

y = [84.2, 80.6, 80.1, 90, 83.2, 87.6, 79.4, 93.4]

# 实例化API
estimator = LinearRegression()
# 使用fit方法进行训练
estimator.fit(x,y)
print(estimator.coef_)
# 对未知样本预测
estimator.predict([[100, 80]])

 2.损失函数和正规方程

2.1损失函数的概念 

损失函数的概念:

  • 用来衡量机器学习模型性能的函数
  • 损失函数可以计算预测值与真实值之间的误差(用一个实数来表示),误差越小说明模型性能越好

损失函数的作用:

  • 确定损失函数之后, 我们通过求解损失函数的极小值来确定机器学习模型中的参数

📌在衡量回归损失的时候,不能简单地将每个预测误差相加 ,接下来我们介绍回归函数的损失函数--平方损失

2.2平方损失 

回归问题的损失函数通常用下面的函数表示: 

 

  1. yi 为第i个训练样本的真实值
  2. h(xi) 为第i个训练样本特征值组合预测函数又称最小二乘法

我们的目标是: 找到该损失函数最小时对应的 w、b(这里的w,b指y = wx+b中的系数).

  • 接下来我们开始对平方损失求解最优解

 2.3正规方程

 正规方程公式:

 公式就是上面的损失函数推导得到,具体推到公式不再赘述,我们来看示例代码:

import numpy as np
from sklearn.linear_model import LinearRegression


if __name__ == '__main__':

    # 特征值
    x = np.mat([[80, 86],
                [82, 80],
                [85, 78],
                [90, 90],
                [86, 82],
                [82, 90],
                [78, 80],
                [92, 94]])

    # 目标值
    y = np.mat([84.2, 80.6, 80.1, 90, 83.2, 87.6, 79.4, 93.4]).transpose()

    # 给特征值增加一列1
    ones_array = np.ones([len(x), 1])
    x = np.hstack([ones_array, x])

    # 使用正规方程公式计算 w、b
    w = (x.transpose() * x) ** -1 * x.transpose() * y
    print('[%.1f %.1f %.1f]' % (w[0][0], w[1][0], w[2][0]))

    # 使用 LinearRegression 求解
    estimator = LinearRegression(fit_intercept=True)
    estimator.fit(x, y)
    print(estimator.coef_[0])

    # 输出结果
    # [0.0 0.3 0.7]
    # [0.  0.3 0.7]

3.小结

  1. 损失函数在训练阶段能够指导模型的优化方向,在测试阶段能够用于评估模型的优劣。
  2. 线性回归使用平方损失
  3. 正规方程是线性回归的一种优化方法 

❤️‍🔥❤️‍🔥下期我们介绍损失函数的优化方法及回归问题的评估,也会通过案例带大家更好的理解线性回归❤️‍🔥❤️‍🔥

  • 22
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值