解密人工智能:线性回归 | 逻辑回归 | SVM

在这里插入图片描述

文章目录

  • 1、机器学习算法简介
    • 1.1 机器学习算法包含的两个步骤
    • 1.2 机器学习算法的分类
  • 2、线性回归算法
    • 2.1 线性回归的假设是什么?
    • 2.2 如何确定线性回归模型的拟合优度?
    • 2.3 如何处理线性回归中的异常值?
  • 3、逻辑回归算法
    • 3.1 什么是逻辑函数?
    • 3.2 逻辑回归可以用于多类分类吗?
    • 3.3 如何解释逻辑回归中的系数?
  • 4、支持向量机(SVM)算法
    • 4.1 优点
    • 4.2 缺点
  • 5、结语

1、机器学习算法简介

机器学习算法是一种基于数据和经验的算法,通过对大量数据的学习和分析,自动发现数据中的模式、规律和关联,并利用这些模式和规律来进行预测、分类或优化等任务。机器学习算法的目标是从数据中提取有用的信息和知识,并将其应用于新的未知数据中。
在这里插入图片描述

1.1 机器学习算法包含的两个步骤

机器学习算法通常包括两个主要步骤:训练和预测。在训练阶段,算法使用一部分已知数据(训练数据集)来学习模型或函数的参数,以使其能够对未知数据做出准确的预测或分类。在预测阶段,算法将学习到的模型应用于新的数据,通过模型对数据进行预测、分类或其他任务。

1.2 机器学习算法的分类

机器学习算法可以是基于统计学原理、优化方法、神经网络等等。根据学习的方式不同,机器学习算法可以分为监督学习、无监督学习和强化学习等几种类型。不同的机器学习算法适用于不同的问题和数据类型,选择合适的算法可以提高机器学习的任务效果。

  1. 监督学习算法:监督学习算法需要训练数据集中包含输入和对应的输出(或标签)信息。常用的监督学习算法包括:线性回归、逻辑回归、决策树、支持向量机、朴素贝叶斯、人工神经网络等。

  2. 无监督学习算法:无监督学习算法不需要训练数据集中的输出信息,主要用于数据的聚类和降维等问题。常用的无监督学习算法包括:K均值聚类、层次聚类、主成分分析、关联规则挖掘等。

  3. 强化学习算法:强化学习算法通过与环境进行交互,试图找到最优策略来最大化奖励。常用的强化学习算法包括:Q学习、深度强化学习算法等。

此外,还有一些常用的机器学习算法和技术,如集成学习、降维方法、深度学习、迁移学习、半监督学习等,它们通过不同的方式和建模方法来解决不同的问题。选择合适的机器学习算法需要考虑问题的性质、数据的特点、算法的可解释性和计算效率等因素。

2、线性回归算法

线性回归是一种统计方法,用于检查两个连续变量之间的关系:一个自变量和一个因变量。线性回归的目标是通过一组数据点找到最佳拟合线,然后可用于对未来的观察进行预测。

在这里插入图片描述
简单线性回归模型的方程为:

y = b 0 + b 1 ∗ x y = b0 + b1*x y=b0+b1x
其中 y 是因变量,x 是自变量,b0 是 y 截距(直线与 y 轴的交点),b1 是直线的斜率。斜率表示给定 x 变化时 y 的变化。

为了确定最佳拟合线,我们使用最小二乘法,该方法找到使预测 y 值与实际 y 值之间的平方差之和最小化的线。线性回归也可以扩展到多个自变量,称为多元线性回归。多元线性回归模型的方程为: y = b 0 + b 1 x 1 + b 2 x 2 + … + b n ∗ x n y = b0 + b1x1 + b2x2 + … + bn*xn y=b0+b1x1+b2x2++bnxn。其中 x1, x2, …, xn 是自变量,b1, b2, …, bn 是相应的系数。

线性回归可用于简单线性回归和多元线性回归问题。系数 b0 和 b1, …, bn 使用最小二乘法估计。一旦估计了系数,它们就可以用于对因变量进行预测。线性回归可用于对未来进行预测,例如预测股票的价格或将出售的产品的单位数量。然而,线性回归是一种相对简单的方法,可能并不适合所有问题。它假设自变量和因变量之间的关系是线性的,但情况可能并非总是如此。此外,线性回归对异常值高度敏感,这意味着如果存在任何不遵循数据总体趋势的极值,将会显着影响模型的准确性。

总之,线性回归是一种强大且广泛使用的统计方法,可用于检查两个连续变量之间的关系。它是一个简单但功能强大的工具,可用于预测未来。但是,请务必记住,线性回归假设变量之间存在线性关系,并且对异常值敏感,这可能会影响模型的准确性。

2.1 线性回归的假设是什么?

  • 线性:自变量和因变量之间的关系是线性的。

  • 独立性:观察结果彼此独立。

  • 同方差性:误差项的方差在自变量的所有水平上都是恒定的。

  • 正态性:误差项呈正态分布。

  • 无多重共线性:自变量彼此不高度相关。

  • 无自相关:误差项与其自身不自相关。

2.2 如何确定线性回归模型的拟合优度?

有多种方法可以确定线性回归模型的拟合优度:

  • R 平方:R 平方是一种统计度量,表示因变量中的方差由模型中的自变量解释的比例。R 平方值为 1 表示模型解释了因变量中的所有方差,值为 0 表示模型没有解释任何方差。

  • 调整 R 平方:调整 R 平方是 R 平方的修改版本,它考虑了模型中自变量的数量。在比较具有不同数量自变量的模型时,它可以更好地指示模型的拟合优度。

  • 均方根误差 (RMSE):RMSE 衡量预测值与实际值之间的差异。RMSE 较低表明模型与数据的拟合效果更好。

  • 平均绝对误差 (MAE):MAE 测量预测值与实际值之间的平均差异。MAE 越低表明模型与数据的拟合效果越好。

在这里插入图片描述

2.3 如何处理线性回归中的异常值?

线性回归中的异常值可能会对模型的预测产生重大影响,因为它们可能会扭曲回归线。处理线性回归中的异常值有多种方法,包括以下几点:

  • 删除异常值:一种选择是在训练模型之前简单地从数据集中删除异常值。然而,这可能会导致重要信息的丢失。

  • 转换数据:应用转换(例如记录数据日志)有助于减少异常值的影响。

  • 使用稳健回归方法:稳健回归方法(例如 RANSAC 或 Theil-Sen)对异常值的敏感度低于传统线性回归。

  • 使用正则化:正则化可以通过在成本函数中添加惩罚项来帮助防止由异常值引起的过度拟合。

总之,采用什么方法将取决于特定的数据集和分析的目标。

3、逻辑回归算法

逻辑回归是一种统计方法,用于根据一个或多个自变量预测二元结果,例如成功或失败。它是机器学习中的一种流行技术,通常用于分类任务,例如确定电子邮件是否是垃圾邮件,或预测客户是否会流失。

在这里插入图片描述

逻辑回归模型基于逻辑函数,逻辑函数是一个sigmoid函数,它将输入变量映射到 0 到 1 之间的概率。然后使用该概率对结果进行预测。

逻辑回归模型由以下方程表示:

P ( y = 1 ∣ x ) = 1 / ( 1 + e − ( b 0 + b 1 x 1 + b 2 x 2 + … + b n ∗ x n ) ) P(y=1|x) = 1/(1+e^-(b0 + b1x1 + b2x2 + … + bn*xn)) P(y=1∣x)=1/(1+e(b0+b1x1+b2x2++bnxn))

其中 P(y=1|x) 是给定输入变量 x 时结果 y 为 1 的概率,b0 是截距,b1, b2, …, bn 是输入变量 x1, x2, … 的系数, xn。通过在数据集上训练模型并使用优化算法(例如梯度下降)来最小化成本函数(通常是对数损失)来确定系数。模型训练完成后,就可以通过输入新数据并计算结果为 1 的概率来进行预测。将结果分类为 1 或 0 的阈值通常设置为 0.5,但这可以根据情况进行调整具体任务以及误报和漏报之间所需的权衡。

3.1 什么是逻辑函数?

逻辑函数,也称为 s i g m o i d sigmoid sigmoid函数,是一条 S 形曲线,将任何实数值映射到 0 到 1 之间的值。它的定义为 f ( x ) = 1 / ( 1 + e − x ) f(x) = 1 / (1 + e^-x ) f(x)=1/(1+ex)其中 e 是自然对数的底。逻辑函数在逻辑回归中用于对二元结果的概率进行建模。

在这里插入图片描述

3.2 逻辑回归可以用于多类分类吗?

逻辑回归可用于多类分类,方法是为每个类创建单独的二元逻辑回归模型并选择预测概率最高的类。这被称为一对一或一对一的方法。或者,我们可以使用 s o f t m a x softmax softmax回归,它是逻辑回归的推广,可以直接处理多个类。

3.3 如何解释逻辑回归中的系数?

逻辑回归中的系数表示在保持所有其他预测变量不变的情况下,预测变量发生一个单位变化时结果的对数几率的变化。优势比可用于解释系数的大小。优势比大于 1 表示预测变量增加一个单位会增加结果的可能性,而优势比小于 1 表示预测变量增加一个单位会降低结果的可能性。

4、支持向量机(SVM)算法

支持向量机 (SVM) 是一种监督学习算法,可用于分类或回归问题。SVM 背后的主要思想是通过最大化间隔(边界与每个类最近的数据点之间的距离)来找到分隔数据中不同类的边界。这些最接近的数据点称为支持向量。

在这里插入图片描述
当数据不可线性分离(这意味着数据不能用直线分离)时,SVM 特别有用。在这些情况下,SVM 可以使用称为核技巧的技术将数据转换为更高维的空间,其中可以找到非线性边界。SVM 中使用的一些常见核函数包括多项式、径向基函数 (RBF) 和 s i g m o i d sigmoid sigmoid

SVM 的主要优点之一是它们在高维空间中非常有效,并且即使在特征数量大于样本数量时也具有良好的性能。此外,SVM 内存效率高,因为它们只需要存储支持向量,而不是整个数据集。另一方面,SVM 对核函数和算法参数的选择很敏感。还需要注意的是,SVM 不适合大型数据集,因为训练时间可能相当长。总之,支持向量机(SVM)是一种强大的监督学习算法,可用于分类和回归问题,特别是当数据不可线性分离时。该算法以其在高维空间中的良好性能以及发现非线性边界的能力而闻名。然而,它对核函数和参数的选择很敏感,也不适合大型数据集。

4.1 优点

  • 在高维空间中有效:即使当特征数量大于样本数量时,SVM 也具有良好的性能。

  • 内存效率高:SVM 只需要存储支持向量,而不需要存储整个数据集,因此内存效率高。

  • 通用性:SVM 可用于分类和回归问题,并且可以使用核技巧处理非线性可分离数据。

  • 对噪声和异常值具有鲁棒性:SVM 对数据中的噪声和异常值具有鲁棒性,因为它们仅依赖于支持向量。

4.2 缺点

  • 对核函数和参数的选择敏感:SVM 的性能高度依赖于核函数的选择和算法参数。

  • 不适合大型数据集:对于大型数据集,SVM 的训练时间可能会相当长。

  • 解释结果困难:解释 SVM 的结果可能很困难,特别是在使用非线性核时。

  • 不适用于重叠类:当类有明显重叠时,SVM 可能会遇到困难。

总之,SVM 是一种强大且通用的机器学习算法,可用于分类和回归问题,特别是当数据不可线性分离时。然而,它们可能对核函数和参数的选择敏感,不适合大型数据集,并且难以解释结果。


5、结语

今天的分享到这里就结束啦!如果觉得文章还不错的话,可以三连支持一下,春人的主页还有很多有趣的文章,欢迎小伙伴们前去点评,您的支持就是春人前进的动力!
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

火山引擎联合Forrester发布《中国云原生安全市场现状及趋势白皮书》,赋能企业构建云原生安全体系

国际权威研究咨询公司Forrester 预测,2023年全球超过40%的企业将会采用云原生优先战略。然而,云原生在改变企业上云及构建新一代基础设施的同时,也带来了一系列的新问题,针对涵盖云原生应用、容器、镜像、编排系统平台以及基础设施…

用栈解决有效的括号匹配问题

//用数组实现栈 typedef char DataType; typedef struct stack {DataType* a;//动态数组int top;//栈顶int capacity; //容量 }ST;void STInit(ST*pst);//初始化void STDestroy(ST* pst);//销毁所有空间void STPush(ST* pst, DataType x);//插入数据到栈中void STPop(ST* pst);…

Kubernetes 调度约束(亲和性、污点、容忍)

目录 一、Pod启动典型创建过程 二、调度流程 三、指定调度节点 1.使用nodeName字段指定调度节点 2.使用nodeSelector指定调度节点 2.1给对应的node节点添加标签 2.2修改为nodeSelector调度方式 3.通过亲和性来指定调度节点 3.1节点亲和性 3.2Pod亲和性与反亲和性 3.2…

Vue CLI创建Vue项目详细步骤

🚀 一、安装Node环境(建议使用LTS版本) 在开始之前,请确保您已经安装了Node.js环境。您可以从Node.js官方网站下载LTS版本,以确保稳定性和兼容性。 中文官网下载 确认已安装 Node.js。可以在终端中运行 node -v 命令…

FastAPI入门

目录 FastAPI FastAPI 是什么 为什么要用 FastAPI FastAPI 入门 安装 用 FastAPI 写个接口 调试接口 创建快捷请求 保存为快捷请求 发送请求 总结 FastAPI FastAPI 是什么 什么是 FastAPI 呢? FastAPI 是 Python 的一个框架,如果要类比的话…

Django的简介安装与配置及两大设计模式

一.Djang的介绍 1.Django是什么 Django 是使用 Python 语言开发的一款免费而且开源的 Web 应用框架。 由于 Python 语言的跨平台性,所以 Django 同样支持 Windows、Linux 和 Mac 系统。 在 Python 语言炽手可热的当下,Django 也迅速的崛起,在…

javaScript:一分钟看懂数组排序以及冒泡排序(重点)

目录 一.前言 二.数组排序 sort() 字符串大小的比较原则 字符编码排序规则 如果使用sort从小到大排列 (重点) 函数的返回值 规则: 代码 案例 数组打乱 sort相关代码 三.冒泡排序(重点&#xff…

【RocketMQ】NameServer总结

NameServer是一个注册中心,提供服务注册和服务发现的功能。NameServer可以集群部署,集群中每个节点都是对等的关系(没有像ZooKeeper那样在集群中选举出一个Master节点),节点之间互不通信。 服务注册 Broker启动的时候会…

【通俗易懂】如何使用GitHub上传文件,如何用git在github上传文件

目录 创建 GitHub 仓库 使用 Git 进行操作 步骤 1:初始化本地仓库 步骤 2:切换默认分支 步骤 3:连接到远程仓库 步骤 4:获取远程更改 步骤 5:添加文件到暂存区 步骤 6:提交更改 步骤 7&#xff1a…

RenderDoc 导出Cubemap到UE

找到使用了Cubemap的模型,再Output里会显示该模型使用的所有贴图 ,选中Cubemap导出 选择导出格式为HDR 导出的Cubemap是竖着的,需要再PS里逆时针旋转90度 还有,导出的的Cubemap方向是错的,需要把3,4 跟1,2 对换,6旋转180度 UE 文档里的方向参…

Spring Boot @Validated 验证注解的使用

1、引入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-validation</artifactId> </dependency> 2、使用 2.1、非对象参数 参数如果是非对象格式&#xff0c;需要在controller类上面添…

JVM——HotSpot的算法细节实现

一、根节点枚举 固定可作为GC Roots的节点主要在全局性的引用&#xff08;如常量或类静态属性&#xff09;与执行上下文&#xff08;如栈帧中的本地变量表&#xff09;中&#xff0c;尽管目标明确&#xff0c;但查找要做到高效很难。现在java应用越来越庞大&#xff0c;光方法区…

Code interpreter生成无聊的APP:病理图像切割和提取

一、写在前面 机器学习100步不够分配了&#xff0c;所以开个新专栏&#xff0c;就叫做《Code interpreter生成无聊的APP》&#xff0c;旨在探索GPT-4官方插件Code interpreter的使用心路历程。 主要灵感来源&#xff1a;听户主说&#xff0c;她们在做病理组学图像标注和分割的…

如何用Apipost实现sign签名?

我们平常对外的接口都会用到sign签名&#xff0c;对不同的用户提供不同的apikey ,这样可以提高接口请求的安全性&#xff0c;避免被人抓包后乱请求。 如何用Apipost实现sign签名&#xff1f; 可以在Apipost中通过预执行脚本调用内置的JS库去实现预执行脚本是在发送请求之前自…

Wordcloud | 风中有朵雨做的‘词云‘哦!~

1写在前面 今天可算把key搞好了&#xff0c;不得不说&#x1f3e5;里手握生杀大权的人&#xff0c;都在自己的能力范围内尽可能的难为你。&#x1f602; 我等小大夫也是很无奈&#xff0c;毕竟奔波霸、霸波奔是要去抓唐僧的。 &#x1f910; 好吧&#xff0c;今天是词云&#x…

【C++精华铺】8.C++模板初阶

目录 1. 泛型编程 2. 函数模板 2.1 函数模板的概念及格式 2.2 函数模板的原理 2.3 模板的实例化 2.4 模板参数的匹配原则 3. 类模板 3.1 类模板格式 3.2 类模板的实例化 1. 泛型编程 什么是泛型编程&#xff1f;泛型编程是避免使用某种具体类型而去使用某种通用类型来进行…

带你了解—使用内网穿透,公网远程访问本地硬盘文件

文章目录 前言1. 下载cpolar和Everything软件3. 设定http服务器端口4. 进入cpolar的设置5. 生成公网连到本地内网穿透数据隧道 总结 前言 随着云概念的流行&#xff0c;不少企业采用云存储技术来保存办公文件&#xff0c;同时&#xff0c;很多个人用户也感受到云存储带来的便利…

学习ts(四)联合类型、交叉类型、类型断言

联合类型 使用联合类型定义属性和方法&#xff0c;只要符合其中一种即可 let myPhone: string | number 010-7788 // let myPhone1: string | number true 因为没有包含boolean值 会报错const fn (something: number | boolean): boolean > {return !!something }con…

【CSS动画01--登录】

CSS动画01--登录 介绍代码HTMLCSSJS 介绍 当鼠标不同方向的划过时展示不同效果的登录&#xff0c;以上是一个简单的图片展示 代码 HTML <!DOCTYPE html> <html> <head><meta http-equiv"content-type" content"text/html; charsetutf-8&…

生物笔记——暑期学习笔记(四)

生物笔记——暑期学习笔记&#xff08;四&#xff09; 文章目录 前言一、R篇1. unname()2. duplicated()3. 数据提取4. 分组 二、生信篇1. 文本处理常用命令2. 命令输出1. 重定向2. 多命令执行 3. 文本工具4. 本地hmm鉴定1. hmmer软件安装2. 文件准备3. 基于hmm的鉴定 总结 前言…