社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  机器学习算法

原创 Paper | 机器学习的线性回归模型

知道创宇404实验室 • 5 天前 • 43 次点击  
者:0x7F@知道创宇404实验室
时间:2025年2月28日



 1. 前言


参考资料

跟随着 ChatGPT 等大语言模型掀起的人工智能的浪潮,在这个时间点学习 AI 技术是一个绝佳的机会;但 AI 技术发展历史悠久,大语言模型也是由更为基础的技术更新、迭代、融合而产生,对于初学者而言,从机器学习开始入门无疑是一个不错的选择。

对于机器学习入门而言,吴恩达老师在 Coursera 平台(https://www.coursera.org/)推出的《机器学习》在线课程(https://www.coursera.org/learn/machine-learning)广受好评;本文将以该课程内容为主体大纲,对机器学习中最基础的线性回归模型进行学习,了解机器学习的概念和线性回归模型的实现,并以个人的理解梳理知识框架,作为学习笔记。

本文实验环境:

Ubuntu 22.04

Anaconda
Jupyter-notebook


 2. 机器学习定义


参考资料

机器学习(Machine Learning)是人工智能的一个分支,机器学习理论主要是设计和分析一些让计算机可以自动“学习”的算法,让机器也能像人类一样,通过观察大量的数据,从而发现事物规律,学习获得某种分析问题、解决问题的能力。

近年来,机器学习已经广泛应用于多个领域比如:识别垃圾邮件、图像识别、语音识别、商品推荐、医疗诊断、无人驾驶、自然语言处理、等等。

目前正火热的大语言模型也属于机器语言领域,其技术发展迭代大致如下:

1.机器学习到大语言模型的技术发展迭代

无论是“传统”的软件编程还是机器学习,其目的都是为了让计算机掌握一种能力;对于软件编程而言,通常由技术人员对需求进行分析,再使用编程语言进行实现它,而对于机器学习,同样先由技术人员对需求进行分析,但随后通过选择或开发相应的模型,并使用大量数据进行训练,使模型拟合出了一种能力;两者的流程对比图如下:

2.软件编程和机器学习的流程对比

对于一些需求场景,软件编程和机器学习都能够良好的完成,但实现的方式完全不同,这意味着前期的投入方向不同,也决定两种方案所能达到的上限不同。

机器学习根据学习方法可以分为四个类型:

  • 监督学习:使用带标签的数据训练模型,机器通过学习输入到输出的映射,通常用于回归、分类;

  • 无监督学习:使用无标签的数据训练模型,机器自己发现数据中的结构或模式,通常用于聚类;

  • 半监督学习:使用少量带标签的训练模型,机器再根据该数据的特征对大量无标签的数据进行标注;

  • 强化学习:机器通过和环境进行交互,根据环境的反馈(奖励或惩罚)来调整自己的行为策略,以取得最大化的预期效果,通常用于游戏AI




 3. 什么是线性回归


参考资料

线性回归是统计学中最基础且广泛使用的回归技术之一,它用于估计实际值(因变量)和一个或多个自变量(或预测变量)之间的线性关系;其核心思想是假设因变量 y 与自变量 x 之间存在线性关系,即可以用一条直线(或超平面)来描述它们之间的关系,目标是找到一条最佳拟合直线,使得预测值与真实值之间的误差最小。

我们使用机器学习中最为经典的「房价预测」例子来进行说明,假设有下面的数据,表示某地区房屋面积(平方英尺)和售价(美元/千)的关系:

房屋面积(平方英尺)售价(美元/千)
2104399900
1600329900
2400369000
1416232000
3000539900

使用 numpy 和 matplotlib 库在二维坐标系中绘制这些数据点:

import numpy as np
import matplotlib.pyplot as plt

plt.xlim(0, 3500)
plt.ylim(0, 600)

X = np.array([[2104, 399.900], [1600, 329.900], [2400, 369.000], [1416, 232.000], [3000, 539.900]])
plt.scatter(X[:,0], X[:,1])
plt.xlabel("size in feet2")
plt.ylabel("price in $1000's")

plt.show()

在 Jupyter-notebook 中运行如下:

3.房价预测数据点二维坐标图

从上图观察不难发现使用一条直线能够最大程度的拟合这些数据点,由于这里只有一个自变量(即房屋面积),所以叫做一元线性回归,其函数表示为:

y=ax+b

根据一元线性函数,我们可以猜测直线如下:

4.房价预测猜测拟合直线

我们可以看到蓝色的直线可以较好的拟合这些数据点,那么如何找出这条蓝色的直线,就是线性回归需要求解的问题。

另外在监督学习中我们可以简单将数据集分为连续的(如身高、年龄)或离散的(如性别、学历),连续的数据集通常对应线性回归模型,主要用于预测,而离散的数据集通常对应逻辑(对数)回归模型,主要用于分类;本文中将主要介绍线性回归模型。

 4. 一元线性回归模型


参考资料

在上文的房价预测案例中,数据集中提供了房屋面积(自变量)和价格(因变量)的对应关系,这是一元线性回归问题,其函数表达为:

y=ax+b

数据集中提供的每组数据即对应 x 和 y 的值,求解一元线性回归问题就是求解函数中 a 和 b 的取值以最好的方式拟合该数据集。在机器学习中,我们通常称之为一元线性回归模型求解,a 和 b 称之为模型参数,其中更为细致的划分是 a 为权重,常用 w 表示, b 为偏置,常用 b 表示。

求解线性回归模型最直接的数学优化方法是最小二乘法,我们可以观察到使用实际值和预测值之间的误差,可以较好的评估线性回归模型(这里为直线)的拟合情况,如下图所示:

5.实际值和预测值的误差

……

由于后文还涉及大量公式,请访问https://paper.seebug.org/3300/ 或点击左下角“阅读原文”查看全文。

l






作者名片




往 期 热 门
(点击图片跳转)


“阅读原文”更多精彩内容!

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/179794
 
43 次点击