前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >线性回归及原理

线性回归及原理

作者头像
用户10950404
发布2024-07-30 13:25:11
860
发布2024-07-30 13:25:11
举报
文章被收录于专栏:人工智能

前言

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

1.线性回归的原理 

1.1什么是线性回归 

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

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

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

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

线性关系:

  • 单变量线性关系 
  • 多变量线性关系 
  • 非线性关系 

1.2线性回归API 

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

sklearn.linear_model.LinearRegression()

  • LinearRegression.coef_:回归系数

代码实现:

  1. LinearRegression.fit 表示模型训练函数
  2. LinearRegression.predict 表示模型预测函数  
代码语言:javascript
复制
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正规方程

 正规方程公式:

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

代码语言:javascript
复制
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. 正规方程是线性回归的一种优化方法 

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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-03-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 1.线性回归的原理 
    • 1.1什么是线性回归 
      • 1.2线性回归API 
      •  2.损失函数和正规方程
        • 2.1损失函数的概念 
          • 2.2平方损失 
            •  2.3正规方程
            • 3.小结
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档