人工智能与机器学习:Python从零实现性回归模型

article/2025/8/17 11:40:07

🧠 向所有学习者致敬!

“学习不是装满一桶水,而是点燃一把火。” —— 叶芝


我的博客主页: https://lizheng.blog.csdn.net

🌐 欢迎点击加入AI人工智能社区!

🚀 让我们一起努力,共创AI未来! 🚀


前言

在 AI 的热潮中,很容易忽视那些让它得以实现的基础数学和技术。作为一名专业人士,通过不使用机器学习库(比如 sklearn、TensorFlow、PyTorch 等)来编写模型,可以显著提升你对这些基础技术的理解。因为有时候,用现成的工具就像吃别人嚼过的糖,没劲!自己动手,那才叫真本事,不仅能搞懂背后的原理,还能在朋友面前炫耀一番:“看我这代码,多牛!”所以,咱们这就开始,一起踏上这个充满挑战和乐趣的旅程吧!🚀

本系列我们会深入探讨各种机器学习模型,并从零搭建它们。在每篇文章结束时,我希望读者能够对这些我们每天作为数据专业人士使用的模型有极其深入和基础的理解。咱们就从多元线性回归开始吧!

多元线性回归

多元线性回归可以用来模拟两个或多个自变量与一个数值型因变量之间的关系。日常用例包括根据房屋的卧室数量、浴室数量、面积等信息预测房价。咱们先来聊聊多元线性回归的一些关键假设。

  • 自变量与因变量的线性关系:具体来说,任何一个自变量(或特征)变化 1 个单位时,因变量应该以恒定的速率变化。
  • 没有多重共线性:这意味着特征之间需要相互独立。以房价为例,如果卧室数量和浴室数量之间存在某种相关性,这可能会影响模型的性能。确保没有或最小化多重共线性,也能让你更高效地利用给定的数据。
  • 同方差性:这意味着在任何自变量水平下,误差都是恒定的。如果咱们的房价预测模型显示,随着预测价格的上升,误差也在增加,那咱们就不能说这个模型满足同方差性了。可能需要对特征数据进行一些变换,以满足这个假设。

数学原理

还记得 (y = mx + b) 吗?大多数人在公立学校的时候都学过这个公式。而多元线性回归则可以用下面的公式表示:

y = B 0 + B 1 x 1 + B 2 x 2 + ⋯ + B n x n + E y = B_0 + B_1x_1 + B_2x_2 + \dots + B_nx_n + E y=B0+B1x1+B2x2++Bnxn+E

  • y y y:因变量或目标变量,也就是咱们要预测的东西。
  • B 0 , B 1 , … , B n B_0, B_1, \dots, B_n B0,B1,,Bn:“Beta” 或自变量的系数。 B 0 B_0 B0 是截距,类似于 y = m x + b y = mx + b y=mx+b 中的 b b b。剩下的系数分别代表剩下的自变量或特征的系数。
  • x 1 , x 2 , … , x n x_1, x_2, \dots, x_n x1,x2,,xn:自变量或特征。
  • E E E:“Epsilon”,更实际地说是误差项,也就是咱们的预测值与实际 y y y 之间的差距。

你也可以用矩阵表示法来表示多元线性回归方程。我个人更喜欢这种方法,因为它让我不得不从向量和矩阵的角度去思考,而这些正是几乎所有机器学习模型背后的数学核心。

Y = X B + E \mathbf{Y} = \mathbf{X} \mathbf{B} + \mathbf{E} Y=XB+E

咱们来更直观地看看这些变量里都有啥。先从 X \mathbf{X} X 开始,它代表了咱们所有的特征数据,是一个矩阵。注意,这个矩阵的第一列全是 1。为啥呢?这代表了截距项 B 0 B_0 B0 的占位符。

从数据角度来看,咱们有啥呢?咱们有所有的特征数据、目标变量 Y Y Y,误差项理论上是未知的,但它只是预测值 y y y 与实际值 y y y 之间的差距。换句话说,它只是用来补全方程的。所以,咱们需要求解的是 B \mathbf{B} B,也就是权重。

None### 最小化代价函数

要找到 B \mathbf{B} B,请注意,咱们并不是直接求解它。相反,咱们想找到向量 B \mathbf{B} B 中的值,使得预测值与实际值之间的误差最小化。这是通过最小化关于 B \mathbf{B} B 的代价函数来实现的,这个代价函数也被称为均方误差

MSE = 1 n ∑ i = 1 n ( y i − y ^ i ) 2 \text{MSE} = \frac{1}{n} \sum_{i=1}^{n} (y_i - \hat{y}_i)^2 MSE=n1i=1


http://www.hkcw.cn/article/YXjdQqOEit.shtml

相关文章

【Pytorch安装】深度学习环境配置详细教程!(Pytorch GPU和CPU版本 Python,Anaconda3 和 Pycharm 的安装)

目录 一、前言 1、简介 2、准备 二、Python安装 1、下载安装包 (1)搜索官网 (2)下载最新版本 (3)选择其他版本下载 2、安装 (1)双击进入安装 (2)查…

【Python实战】——Python+Opencv是实现车牌自动识别

🍉CSDN小墨&晓末:https://blog.csdn.net/jd1813346972 个人介绍: 研一|统计学|干货分享          擅长Python、Matlab、R等主流编程软件          累计十余项国家级比赛奖项,参与研究经费10w、40w级横向 文…

PyCharm 创建第一个 Python 项目

PyCharm 启动的时候其实已经提供了很多快捷方式: 我们点击"新建脚本"这个按钮,PyCharm 就会帮我们创建一个 script.py 文件,并自动初始化代码和环境: 我们可以尝试修改脚本文件,并运行查看输出结果&#xff…

五子棋Python源代码

图形化界面 库:numpy,pygame 效果: 源代码: #调用pygame库 import pygame import sys #调用常用关键字常量 from pygame.locals import QUIT,KEYDOWN import numpy as np #初始化pygame pygame.init() #获取对显示系统的访问&a…

Ubantu 20.04 安装 Mujoco210、mujoco-py、gym及报错解决

1. 安装Mujoco 1.1 官网下载Mujoco210安装包 Mujoco2.1.0下载链接 选第一个 1.2 创建文件夹并解压安装包 mkdir ~/.mujoco创建好后,点击显示隐藏文件可以找到 找到刚刚下载的压缩包所在位置(一般在下载目录下),右键选择 在终…

CUDA重大更新:原生Python可直接编写高性能GPU程序

NVIDIA 在2025年GTC大会上宣布了一项具有里程碑意义的技术更新:CUDA并行计算平台正式支持原生Python编程。这一突破性进展将消除Python开发者进入GPU加速计算领域的主要技术壁垒,无需再依赖C/C语言作为中介。 此次更新意味着数千万Python开发者现在可以…

Python的pandas库基础知识(超详细教学)

目录 一、配置环境 二、序列和数据表 2.1 初始化 2.2 获取数值 2.3 获取索引 2.4 索引取内容 2.5 索引改变取值 2.6 字典生成序列 2.7 计算取值出现次数 2.8 数据表 2.9 数据表添加新变量 2.10 获取列名 2.11 根据列名获取数据 2.12 输出固定行 2.13 输出多行…

男子把矿泉水带到高原一觉醒来大变样 当地的水就没事

男子把矿泉水带到高原,一觉醒来大变样,当地的水就没事!矿泉水被带到高原后出现的物理变化主要与高原环境的气压和温度条件有关,具体表现如下:1.瓶体膨胀现象高原地区平均气压仅为平地的60%-70%,密封瓶装水在运输过程中因外部气压骤降,内部气体体积膨胀导致瓶身变形,可能…

年轻人,花1000多亿干这个!押注谷子经济

年轻人,花1000多亿干这个!押注谷子经济。“六一”前夕,义乌国际商贸城一区内,印着动漫主人公的巨幅海报已经换上,最新的盲盒、徽章以及各种周边好物被摆在了最显眼的位置。2000多家玩具批发商户汇聚于此,谷子浓度越来越高。“谷子”由英文“Goods”音译而来,这个词囊括了…

“端午躲好午,不愁没好运”怎么躲午? 五种方法保平安

“端午躲好午,不愁没好运”怎么躲午? 五种方法保平安!艾旗迎百福,蒲剑斩千邪。今年的端午节比往年早一些,大街小巷已经有很多售卖艾蒿的商贩。端午节是中国传统的四大佳节之一,有着悠久的历史和丰富的文化习俗。进入农历五月后,阳光变得炙热,雨水增多,这个时节是各种毒…

基于python合成100X100的透明背景图片和图标

一、实现思路 1. 加载图像 使用 Image.open() 加载图标图像。 Image.new() 创建一个新的透明背景图像。 2. 调整大小 使用 resize() 方法调整图标图像的大小,确保它不会超过背景图像的一半大小。这里使用 Image.Resampling.LANCZOS 作为过滤器&…

新能源电池壳冲压车间看板实施

车间漫游 这个厂区就一个车间,面积还好,但是被机器和仓库区的产品塞得满满当当。我观察车间布局,为了出货方便,仓库区就在大门旁,叉车到门口货车的转运很快速方便。到车间后,对接人还没来,我们…

秋招Day10 - JVM - 内存管理

JVM组织架构主要有三个部分:类加载器、运行时数据区和字节码执行引擎 类加载器:负责从文件系统、网络或其他来源加载class文件,将class文件中的二进制数据加载到内存中运行时数据区:运行时的数据存放的区域,分为方法区…

茅台经销商被罚后起诉市监局续:法院重审一审撤销处罚决定

“贵州茅台经销商被罚后起诉市监局”一案近日有了最新进展。澎湃新闻从当事人及其代理律师处了解到,贵州省都匀市人民法院日前对该案作出重审一审判决,认定案涉处罚决定适用法律错误、程序违法,决定撤销黔南州市场监督管理局此前作出的行政处罚决定。澎湃新闻此前报道,郭亮…

花生壳里塞冰淇淋卖28一个 真果壳制成引争议

花生壳里塞冰淇淋卖28一个 真果壳制成引争议!近日,一位女子发布视频称,在苏州一家餐厅遇到了价格高昂的冰淇淋。她提到,一份装在花生壳里的冰淇淋售价28元,分量却少得惊人。尽管服务员会帮忙切开,仪式感十足,但她认为并不值这个价格。记者随后走访了位于苏州市姑苏区美罗…

严重或可能导致死亡!不要空腹吃荔枝 了解“荔枝病”真相

最近,话题#荔枝病突然成为热门话题。广东一名女子因过量食用荔枝后,次日出现头晕不适、持续性鼻出血等症状,最终被诊断为“荔枝病”。科普博主表示,此病严重时会引发休克甚至死亡。荔枝病也称为低血糖急性脑炎综合征,发病人群以4至11岁的儿童较为多见。一旦发生,会导致人…

工信部曝光:“腾讯支付”有诈!冒名诈骗需警惕

工信部反诈专班近日发布消息称,有用户举报发现了一款名为“腾讯支付”的理财APP。经与腾讯官方核实,这款APP并非大众熟知的“微信支付”。实际上,微信支付仅支持在微信应用内使用,并没有独立的APP。所谓的“腾讯支付”APP冒充腾讯集团名义,恶意使用腾讯名称,虚构腾讯股权…

郑州最长寿奶奶根本闲不住:我115岁,成大人了

5月28日河南新密,“我115岁,成大人了!”郑州最长寿奶奶根本闲不住,推车散步,眼神好,能爬4楼,还爱洗碗。70岁小女儿:每次回家喊一声妈,很幸福。责任编辑:zx0002

男子家暴被捕后与弟弟弟媳造假借条起诉妻子追债 三人因虚假诉讼被判刑

被丈夫殴打导致4根肋骨骨折后,刘颖报了警,并向法院起诉离婚。而丈夫的弟弟也起诉了她——要她偿还三百多万“债务”。几年下来,刘颖和丈夫的“夫妻官司”牵涉了离婚案、故意伤害案、民间借贷案。其后,刘颖的丈夫李某涛,以及他的弟弟、弟媳三人,均被湖南邵阳的一审法院以虚…

HTML 计算网页的PPI

HTML 计算网页的PPI vscode上安装live server插件&#xff0c;可以实时看网页预览 有个疑问&#xff1a; 鸿蒙density是按照类别写死的吗&#xff0c;手机520dpi 折叠屏426dpi 平板360dpi <html lang"en" data - overlayscrollbars - initialize><header&…