大数据-205 数据挖掘 机器学习理论 - 线性回归 最小二乘法 多元线性

点一下关注吧!!!非常感谢!!持续更新!!!

目前已经更新到了:

  • Hadoop(已更完)
  • HDFS(已更完)
  • MapReduce(已更完)
  • Hive(已更完)
  • Flume(已更完)
  • Sqoop(已更完)
  • Zookeeper(已更完)
  • HBase(已更完)
  • Redis (已更完)
  • Kafka(已更完)
  • Spark(已更完)
  • Flink(已更完)
  • ClickHouse(已更完)
  • Kudu(已更完)
  • Druid(已更完)
  • Kylin(已更完)
  • Elasticsearch(已更完)
  • DataX(已更完)
  • Tez(已更完)
  • 数据挖掘(正在更新…)

章节内容

上节我们完成了如下的内容:

  • 机器学习理论 - 混淆矩阵 sklearn
  • 机器学习理论 - 决策树算法评价

在这里插入图片描述

概述

在正式进入到回归分析的相关算法讨论之前,我们需要对监督学习算法中的回归问题进一步进行分析和理解。虽然回归问题同属于有监督的学习范畴,但实际上,回归问题要远比分类问题更加复杂。
首先关于输出结果的对比,分类模型最终输出结果为离散变量,而离散变量本身包含信息量较少,其本身并不具备代数运算性质,因此其评价指标体系也较为简单,最常用的就是混淆矩阵以及ROC 曲线。
而回归问题最终输出的是连续变量,其本身不仅能够代表运算,且还具有更精致的方法,希望对事物运行的更底层原理进行挖掘。即回归问题的模型更加全面、完善的描绘了事物客观规律,从而能够得到更加细粒度的结论。因此,回归问题的模型往往更加复杂,建模所需要数据所提供的信息量也越多,进而在建模过程中可能遇到的问题也越多。

线性回归与机器学习

线性回归问题是解决回归类问题最常用使用的算法模型,其算法思想和基本原理都是由多元统计分析发展而来,但在数据挖掘和机器学习领域中,也是不可多得的行之有效的算法模型。一方面,线性回归蕴藏的机器学习思想非常值得借鉴和学习,并且随着时间发展,在线性回归的基础上还诞生了许多强大的非线性模型。
因此,我们在进行机器学习算法学习过程中,仍然需要对线性回归这个统计分析算法进行系统深入的学习。但这需要说明的是,线性回归的建模思想有很多理解的角度,此处我们并不需要从统计学的角度上理解、掌握和应用线性回归算法,很多时候,利用机器学习的思维来理解线性回归,会是一种更好的理解方法,这也将是我们这部分内容讲解线性回归的切入角度。

线性回归的机器学习表示方法

核心逻辑

任何机器学习算法首先都有一个最底层的核心逻辑,当我们利用机器学习思维理解线性回归的时候,首先也是要探究其底层逻辑。值得庆幸的是,虽然线性回归源于统计分析,但其算法底层逻辑和机器学习算法高度契合。
在给定的 n 个属性描述的客观事物 X = (x1,x2,x3…)中,每个 xi 都用于描述某一次观测时事物在某个维度表现出来的数值属性值。
当我们建立机器学习模型捕捉事物运行的客观规律时,本质上是希望能够综合这些维度的属性来描述事物最终运行结果,而最简单的综合这些属性的方法就是对其进行加权求和汇总,这即是线性回归的方程式表达形式:
在这里插入图片描述
W 被统称为模型的参数,其中 W0 被称为截距(intercept),W1-Wn 被称为回归系数(regression conefficient),有时也是使用 β 或者 θ 来表示,其实就和我们小学时就无比熟悉的 y = ax + b 是同样的性质。其中 y 是我们的目标变量,也就是标签。Xi1 是样本 i 上的特征不同特征。
如果考虑我们有 m 个样本,则回归结果可以被写作:

在这里插入图片描述
其中 y 是包含了 m 个全部的样本回归结果的列向量(结构为(m,1),由于只有一列,以列的形式表示,所以叫做列向量)。注意,我们通常使用粗体的小写字母来表示向量,粗体的大写字母表示矩阵或者行列式。
我们可以使用矩阵来表示这个方程,其中 w 可以被看作是一个结构为(n+1,1)的列矩阵,X 是一个结构为(m,n+1)的特征矩阵,则有:

在这里插入图片描述
线性回归的任务,就是构造一个预测函数来映射输入的特征矩阵 X 和标签值 y 的线性关系,这个预测函数在不同的教材上写法不同,可能写作 f(x),y我(x),或者 h(x)等等形式,但无论如何,这个预测函数的本质就是我们需要构建的模型。

优化目标

对于线性回归而言,预测函数 y = Xw 就是我们的模型,在机器学习我们也称作“决策函数”。其中只有 w 是未知的,所以线性回归原理的核心就是找到模型的参数向量 w。但我们怎么才能求解呢?我们需要依赖一个概念叫:损失函数。

在之前的算法学习中,我们提到过两种模型表现:在训练集上的表现,和在测试集上的表现。我们建模,是追求模型在测试集上的表现最优,因此模型的评估指标往往是用来衡量模型在测试集上的表现的。然而,线性回归有着基于训练数据求解参数 w 的需求,并且希望训练出来模型尽可能的拟合训练数据,即模型在训练集上的预测准确率靠近 100% 越好。
因此,我们使用损失函数这个评估指标,来衡量系数为 w 的模型拟合训练集时产生的信息损失的大小,并以此衡量参数 w 的优劣。如果用一组参数建模后,模型在训练集上表现良好,那我们就说模型拟合过程中的损失很小,损失函数的值很小,这一组参数就优秀。相反,如果模型在训练集上表现糟糕,损失函数就会很大,模型就训练不足,效果较差,这一组参数也就比较差。
即使说,我们在求解参数 w 时,追求损失函数最小,让模型在训练数据上拟合效果最优,即预测准确率尽量靠近 100%。

对于有监督的学习算法而言,建模都是依据有标签的数据集,回归类问题则是对客观事物的一个定量判别。这里以 yi 作为第 i 行数据的标签,且 yi 为连续变量,xi 为第 i 行特征所组成的向量,则线性回归建模优化方向就是希望模型判别的 yi^ 尽可能接近实际的 yi。而对于连续型变量而言,领近度度量方法可采用 SSE 来进行计算,SSE 称做【残差平方和】,也称做【误差平方和】或者【离差平方和】,因此我们优化目标可以用下述方程来表示:
在这里插入图片描述
来看一个简单的例子,假设现在 w 为 [1,2] 这样的一个向量,求解出的模型:y = x1 + 2x2;

在这里插入图片描述
则我们的损失函数的值就是:
在这里插入图片描述

最小二乘法

现在问题转换成了求解让 SSE 最小化的参数向量 w,这种通过最小化真实值和预测值之间的 SSE来求解参数的方法叫做最小二乘法。

回顾一元线性回归的求解过程:

在这里插入图片描述
对上述的数据进行拟合,可以得到:
在这里插入图片描述
假设该拟合直线为 y^ = w0 + w1x,现在我们的目标是使得该拟合直线的总的残差和达到最小,也就是最小化 SSE。
我们令该直线是以均值为核心的【均值回归】,即散点的 x 平均和 y 平均必然经过这条直线:

在这里插入图片描述
对于真实值 y 来说,我们可以得到:
在这里插入图片描述
这里 ε 为【残差】,对其进行变形,则残差平方和 SSE 为:

在这里插入图片描述
要求残差平方和最小值,我们通过微积分求偏导算其极值来解决。
这里我们计算残差最小对应的参数 w1:

在这里插入图片描述

多元线性回归求解参数

更一般情况,如果我们在刚才的例子中有两列特征属性,则损失函数为:

在这里插入图片描述
这样的形式如果矩阵来表达,可以写成:
在这里插入图片描述
矩阵相乘是对应未知元素相乘相加,就会得到和上面的式子一模一样的结果。
我们同时对 w 求偏导:
在这里插入图片描述

最后得到:
在这里插入图片描述

求导后的一阶导数为 0:
在这里插入图片描述
到了这里,我们希望能够将w 留在等式的左边,其他与特征矩阵有关的部分都放到等式的右边,如此就可以求出 W 的最优解了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/8064.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

python包管理工具pip和conda的使用对比

python包管理工具pip和conda的使用对比 总述1. pip使用2. conda注意虚拟环境之间的嵌套,这个会导致安装包后看不到包,实际是安装到了base环境里 未完待续 总述 pip相对于conda,对应包的依赖关系管理不强,坏处是容易造成包冲突,好…

考取无人机“飞手”执照,进入部队、电力、铁路、石油企业抢占优势

考取无人机“飞手”执照,对于希望进入部队、电力、铁路、石油企业等领域的人来说,确实可以抢占一定的职业优势。以下是对这一观点的详细分析: 一、无人机“飞手”执照的考取 1. 考取条件: 年满16周岁,初中以上文化程…

蒙特卡洛方法(MC Exploring Starts算法例子)

本文章中使用的算法和例子来源于bilibili中西湖大学赵世钰老师的【强化学习的数学原理】课程。网址:第5课-蒙特卡洛方法(MC Exploring Starts算法)_哔哩哔哩_bilibili 目录 一、算法简介 二、相关定义 1、策略评估 2、visit定义 3、epis…

【Linux】解锁操作系统潜能,高效线程管理的实战技巧

目录 1. 线程的概念2. 线程的理解3. 地址空间和页表4. 线程的控制4.1. POSIX线程库4.2 线程创建 — pthread_create4.3. 获取线程ID — pthread_self4.4. 线程终止4.5. 线程等待 — pthread_join4.6. 线程分离 — pthread_detach 5. 线程的特点5.1. 优点5.2. 缺点5.3. 线程异常…

166页PDF | 埃森哲-XX集团企业架构数字化整体规划设计方案(限免下载)

一、前言 这份报告是埃森哲为XX集团制定的企业架构数字化整体规划设计方案,涵盖了业务、应用、数据、技术架构设计以及信息化管控体系的构建。报告详细分析了集团的信息化现状、面临的挑战,并提出了相应的战略目标和管理要求。同时,报告还规…

Linux -- 操作系统(软件)

目录 什么是操作系统? 计算机的层状结构 为什么要有操作系统 操作系统到底层硬件 驱动程序 操作系统如何管理硬件? 操作系统到用户 系统调用接口 库函数 回到问题 什么是操作系统? 操作系统(Operating System&#xf…

python爬虫之JS逆向入门,了解JS逆向的原理及用法(18)

文章目录 1. JS逆向是什么?2、如何分析加密参数并还原其加密方式?2.1 分析JS加密的网页2.2 编写python代码还原JS加密代码3、案例测试4、操作进阶(通过执行第三方js文件实现逆向)4.1 python第三方模块(execjs)4.2 调用第三方js文件完成逆向操作4.3 总结1. JS逆向是什么?…

Spring Boot2(Spring Boot 的Web开发 springMVC 请求处理 参数绑定 常用注解 数据传递 文件上传)

SpringBoot的web开发 静态资源映射规则 总结:只要静态资源放在类路径下: called /static (or /public or /resources or //METAINF/resources 一启动服务器就能访问到静态资源文件 springboot只需要将图片放在 static 下 就可以被访问到了 总结&…

1、Qt6 Quick 简介

一、Qt6 Quick 简介 1、Qt Quick简介 Qt Quick 是 Qt 6 中使用的用户界面技术的总称。它是在 Qt 4 中引入的,现在在 Qt 6 中进行了扩展。Qt Quick 本身是几种技术的集合: QML——用户界面标记语言JavaScript - 动态脚本语言Qt C - 高度可移植的增强型…

element-plus按需引入报错Components is not a function

官网文档:快速开始 | Element Plus webpack配置 // webpack.config.js const AutoImport require(unplugin-auto-import/webpack) const Components require(unplugin-vue-components/webpack) const { ElementPlusResolver } require(unplugin-vue-components…

【AIGC】如何通过ChatGPT轻松制作个性化GPTs应用

博客主页: [小ᶻZ࿆] 本文专栏: AIGC | GPTs应用实例 文章目录 💯前言💯什么是GPTsGPTs的工作原理GPTs的优势GPTs的应用前景总结 💯创建GPTS应用的基本流程进入GPTs创建界面方式一:按照引导完成生成创建GPTs方式二…

uniapp配置消息推送unipush 厂商推送设置配置 FCM 教程

说真的,这个 密钥文件 和 google-services.json 太难找了 现在 Firebase 已经不允许注册Cloud Messaging API (旧版)的密钥,所以下面这个官方的文档教程并不适用,但是大致位置可以参考 UniPush支持谷歌推送FCM配置指南 - DCloud问答 密钥文件 通过这里…

51单片机数字电子钟proteus仿真(数电课设,含时间显示、校准、整点报时、闹钟功能)

51单片机数字电子钟proteus仿真 由于学校实验课要求完成51单片机数字电子钟proteus仿真的实验,下面是经过一段时间的努力完成的学习成果。希望分享给有需要的人。 功能描述: 显示功能:可以显示时、分、秒(基于1602液晶显示屏&…

Java8 新特性 —— Optional API 详解

本文涉及到的知识点有Lambda表达式,函数式接口以及Stream API,有不了解的小伙伴可以先学习前两篇文章: Java8 新特性 —— Lambda 表达式、函数接口以及方法引用详解 Java8 新特性 —— Stream API 详解 前言 Optional类是Java8新引进的一个…

深入理解Python设计模式:工厂模式实践与应用

💝💝💝欢迎莅临我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:「storm…

Windows系统安装部署C++基础开发环境

目录 前言安装MinGW-w64安装VSCode安装CMake完成 前言 这篇文章讨论一下Windows系统怎么安装部署C基础开发环境,你或许在想这还不简单吗,安装vs不就可以了吗,很对,可以在官网下载vs集成开发环境然后进行安装,这也是非…

Cisco ACI Leaf交换机导出show tech

cisco.com 文档描述操作如下: https://www.cisco.com/c/en/us/support/docs/cloud-systems-management/application-policy-infrastructure-controller-apic/214520-guide-to-collect-tech-support-and-tac-re.html#toc-hId–2125674131 Trigger via Switch CLI O…

基于matlab的人眼开度识别

我国已经成为世界汽车生产和制造大国,道路车辆的不断增加道路基础设施不断增强,但是随之而来的问题也日益严重,比如交通事故,噪声大气污染等。汽车行驶的安全性由于关乎人民生命安全,所以日益受到各国政府以及研究机构…

使用 Spring Boot 搭建 WebSocket 服务器实现多客户端连接

在 Web 开发中,WebSocket 为客户端和服务端之间提供了实时双向通信的能力。本篇博客介绍如何使用 Spring Boot 快速搭建一个 WebSocket 服务器,并支持多客户端的连接和消息广播。 1. WebSocket 简介 WebSocket 是 HTML5 的一种协议,提供了客…

详细分析Java8中的Duration时间类基本知识(附Demo)

目录 前言1. 基本知识2. Demo3. 拓展Demo 前言 基本的Java知识推荐阅读: java框架 零基础从入门到精通的学习路线 附开源项目面经等(超全)【Java项目】实战CRUD的功能整理(持续更新) 1. 基本知识 Duration 类是 Ja…