一文介绍回归和分类的本质区别 !!

文章目录

前言

1、回归和分类的本质

(1)回归(Regression)的本质

(2)分类(Classification)的本质

2、回归和分类的原理

(1)回归(Regression)的原理

(2)分类(Classification)的原理

3、回归和分类的算法

(1)回归(Regression)的算法

(2)分类(Classification)的算法


前言

本文将从回归和分类的本质、回归和分类的原理、回归和分类的算法三个方面,详细介绍回归和分类 (Regression And Classification)。


1、回归和分类的本质

回归和分类是机器学习中两种基本的预测方法,它们的本质区别在于输出变量的类型。回归问题输出的是连续的数值,分类问题输出的是有限的、离散的类别标签。两者都是监督学习的一部分,都依赖于带有标签的训练数据来学习模型。

(1)回归(Regression)的本质

回归的目的是预测数值型的目标值,本质是寻找自变量和因变量之间的关系,以便能够预测新的、未知的数据点的输出值。例如,根据房屋的面积、位置等特征预测其价格(房价预测、股票价价格预测、温度预测等)。

回归的本质

  • 自变量个数:

        一元回归:只涉及一个自变量和一个因变量的回归分析。

        多元回归:涉及两个或更多个自变量和一个因变量的回归分析。

  • 自变量与因变量的关系:

        线性回归:自变量与因变量之间的关系被假定为线性的,即因变量是自变量的线性组合。

        非线性回归:自变量与因变量之间的关系是非线性的,这通常需要通过非线性模型来描述。

  • 因变量个数:

        简单回归:只有一个因变量的回归分析,无论自变量的数量如何。

        多重回归:涉及多个因变量的回归分析。在这种情况下,模型试图同时预测多个因变量的值。

(2)分类(Classification)的本质

分类的目的是预测标签型的目标值,本质是根据输入数据的特征将其划分到预定义的类别中。例如,根据图片的内容判断其所属的类别(猫、狗、花等)(邮件是否为垃圾邮件、疾病诊断的患病与否)。

分类的本质

  • 二分类(Binary Classification):

        表示分类任务中有两个类别。在二分类中,我们通常使用一些常见的算法来进行分类,如逻辑回归、支持向量机等。例如,我们想要识别一些图片是不是猫,这就是一个二分类问题,因为答案只有是或不是两种可能。

  • 多分类(Multi-Class Classification):

        表示分类任务中有多个类别。多分类是假设每个样本都被设置了一个且仅有一个标签:一个水果可以是苹果或者梨,但是同时不可能是两者。在多分类中,我们可以使用一些常见的算法来进行分类,如决策树、随机森林等。例如,对一堆水果图片进行分类,它们可能是橘子、苹果、梨等,这就是一个多分类问题。

  • 多标签分类(Multi-Label Classification):

        给每个样本一系列的目标标签,可以想象成一个数据点的各属性不是相互排斥的。多标签分类的方法分为两种,一种是将问题转化为传统的分类问题,二是调整现有的算法来适应多标签的分类。例如,一个文本可能被同时认为是宗教、政治、金融或者教育相关的话题,这就是一个多标签分类问题,因为一个文本可以同时有多个标签。

2、回归和分类的原理

线性回归 vs 逻辑回归

(1)回归(Regression)的原理

通过建立自变量和因变量之间的数字模型来探究它们之间的关系。

线性回归

线性回归(Linear Regression):求解权重(w)和偏置(b)的主要步骤。

求解权重(w)和偏置(b)

  • 初始化权重和偏置:为权重w和偏置b选择初始值,并准备训练数据x和标签y
  • 定义损失函数:选择一个损失函数(如均方误差)来衡量模型预测与实际值之间的差距。
  • 应用梯度下降算法:使用梯度下降算法迭代更新wb,以最小化损失函数,直到满足停止条件。

梯度下降算法迭代更新 w 和 b

  • 获取并验证最终参数:当算法收敛时,得到wb,并在验证集上检查模型性能。
  • 构建最终模型:使用最终的wb构建线性回归模型,用于新数据预测。

新数据预测

(2)分类(Classification)的原理

根据事物或概念的共同特征将其划分为同一类别,而将具有不同特征的事物或概念划分为不同类别。

逻辑回归

逻辑回归(Logistic Regression):通过sigmoid函数将线性回归结果映射为概率的二分类算法。

  • 特征工程:转换和增强原始特征以更好地表示问题。
  • 模型建立:构建逻辑回归模型,使用sigmoid函数将线性组合映射为概率。
  • 模型训练:通过优化算法(如梯度下降)最小化损失函数来训练模型。
  • 模型评估:使用验证集或测试集评估模型的性能。
  • 预测:应用训练好的模型对新数据进行分类预测。

猫狗识别

3、回归和分类的算法

(1)回归(Regression)的算法

主要用于预测数值型数据。

  1. 线性回归(Linear Regression):这是最基本和常见的回归算法,它假设因变量和自变量之间存在线性关系,并通过最小化预测值和实际值之间的平方差来拟合数据。
  2. 多项式回归(Polynomial Regression):当自变量和因变量之间的关系是线性的,可以使用多项式回归。它通过引入自变量的高次项来拟合数据,从而捕捉非线性关系。
  3. 决策树回归(Decision Tree Regression):决策树回归是一种基于树结构的回归方法,它通过构建决策树来划分数据空间,并在每个叶节点上拟合一个简单的模型(如常数或线性模型)。决策树回归易于理解和解释,能够处理非线性关系,并且对特征选择不敏感。
  4. 随机森林回归(Random Forest Regression):随机森林回归是一种集成学习方法,它通过构建多个决策树并将它们的预测结果组合起来来提高回归性能。随机森林回归能够处理高维数据和非线性关系,并且对噪声和异常值具有一定的鲁棒性。

(2)分类(Classification)的算法

主要用于发现类别规则并预测新数据的类别。

  1. 逻辑回归(Logistic Regression):尽管名字中有“回归”,但实际上逻辑回归是一种分类算法,常用于二分类问题。它通过逻辑函数将线性回归的输出映射到(0,1)之间,得到样本点属于某一类别的概率。在回归问题中,有时也使用逻辑回归来处理因变量是二元的情况,此时可以将问题看作是对概率的回归。
  2. 支持向量机(SVM):支持向量机是一种基于统计学习理论的分类算法。它通过寻找一个超平面来最大化不同类别之间的间隔,从而实现分类。SVM在高维空间和有限样本情况下表现出色,并且对于非线性问题也可以使用核函数进行扩展。
  3. K最近邻(KNN):K最近邻是一种基于实例的学习算法,它根据输入样本的K个最近邻样本的类别来确定输入样本的类别。KNN算法简单且无需训练阶段,但在处理大规模数据集时可能效率较低。
  4. 朴素贝叶斯分类器:朴素贝叶斯是一种基于贝叶斯定理的分类算法,它假设特征之间相互独立(即朴素假设)。尽管这个假设在实际应用中往往不成立,但朴素贝叶斯分类器在许多领域仍然表现出色,尤其是在文本分类和垃圾邮件过滤等方面。

参考:架构师带你玩转AI

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

力扣 115. 不同的子序列

题目来源:https://leetcode.cn/problems/distinct-subsequences/description/ C题解:动态规划。 dp[i][j] 表示 t[0] ~ t[i-1] 在 s[0] ~ s[j-1] 中出现的个数。因为 t 短,所以把 t 放在外循环。 当 t[i-1] 不等于 s[j-1] 时,s[…

认识 Redis 与 分布式

Redis 官网页面 Redis官网链接 Redis 的简介 Redis 是一个在内存中存储数据的中间件 一方面用于作为数据库,另一方面用于作为数据缓存,适用于分布式系统中 Redis 基于网络,进行进程间通信,把自己内存中的变量给别的进程&#xf…

深度解析GPT中的Tokenizer

继学习完深度解析大语言模型中的词向量后,让我们继续学习大语言模型中另外几个重要概念:token(词元)、tokenization(词元化)、tokenizer(词元生成器)。 在GPT模型中,toke…

【与C++的邂逅之旅】--- 内联函数 auto关键字 基于范围的for循环 nullptr

关注小庄 顿顿解馋૮(˶ᵔ ᵕ ᵔ˶)ა 博主专栏: 💡 与C的邂逅之旅 💡 数据结构之旅 上篇我们了解了函数重载和引用,我们继续学习有关C的一些小语法— 内联函数,auto关键字,基于范围的for循环以及 nullptr&…

设计模式——建造者模式03

工厂模式注重直接生产一个对象,而建造者模式 注重一个复杂对象是如何组成的(过程),在生产每个组件时,满足单一原则,实现了业务拆分。 设计模式,一定要敲代码理解 组件抽象 public interface …

02---webpack基础用法

01 entry打包的入口文件: 单入口entry是一个字符串:适用于单页面项目module.exports {entry:./src/index.js}多入口entry是一个对象module.exports {entry:{index:./src/index.js,app:./src/app.js}} 02 output打包的出口文件: 单入口配置module.ex…

【opencv】教程代码 —video(3) 视频背景剔除

bg_sub.cpp 这段代码的功能是把视频中的背景和前景分离,提取出前景的运动物体。根据用户选择的不同的模式,可以选择基于MOG2或者基于KNN的方法来进行背景减除。在处理每一帧图像的过程中,首先使用背景减除模型对图像帧进行处理,得…

RabbitMQ3.7.8集群分区(脑裂现象)模拟及恢复处置全场景测试

测试环境准备: MQ服务器集群地址,版本号为3.7.8: 管理控制台地址:http://173.101.4.6:15672/#/queues 集群状态 rabbitmqctl cluster_status 集群操作相关命令: 创建一个RabbitMQ集群涉及到如下步骤: 安装RabbitMQ: 在每台要在集…

JVM专题——类文件加载

本文部分内容节选自Java Guide和《深入理解Java虚拟机》, Java Guide地址: https://javaguide.cn/java/jvm/class-loading-process.html 🚀 基础(上) → 🚀 基础(中) → 🚀基础(下&a…

利用AI结合无极低码(免费版)快速实现接口开发教程,会sql即可,不需要编写编译代码

无极低码无代码写服务+AI实践 本次演示最简单的单表无代码增删改查发布服务功能,更复杂的多表操作,安全验证,多接口调用,自自动生成接口服务,生成二开代码,生成调用接口测试,一键生成管理界面多条件检索、修改、删除、查看、通用公共接口调用、通用无限级字典调用等后续…

【Linux】Ubuntu 文件权限管理

Linux 系统对文件的权限有着严格的控制,用于如果相对某个文件执行某种操作,必须具有对应的权限方可执行成功,这也是Linux有别于Windows的机制,也是基于这个权限机制,Linux可以有效防止病毒自我运行。因为运行的条件是必…

第二十三章 Git

一、Git Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。 Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。 Git 与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版…

前端三剑客 —— CSS ( 坐标问题 、定位问题和图片居中 )

前期内容回顾: 1.常见样式 text-shadow x轴 y轴 阴影的模糊程度 阴影的颜色 box-shadow border-radio 实现圆角 margin 内边距 padding 外边距 background 2.特殊样式 媒体查询:media 自定义字体:font-face { font-family:自定义名称&#…

代码随想录算法训练营第四十四天 |卡码网52. 携带研究材料 、518. 零钱兑换 II、377. 组合总和 Ⅳ

代码随想录算法训练营第四十四天 |卡码网52. 携带研究材料 、518. 零钱兑换 II、377. 组合总和 Ⅳ 卡码网52. 携带研究材料题目解法 518. 零钱兑换 II题目解法 377. 组合总和 Ⅳ题目解法 感悟 卡码网52. 携带研究材料 题目 解法 题解链接 1. #include <iostream> #inc…

生成式人工智能与 LangChain(预览)(上)

原文&#xff1a;Generative AI with LangChain 译者&#xff1a;飞龙 协议&#xff1a;CC BY-NC-SA 4.0 一、生成模型是什么&#xff1f; 人工智能&#xff08;AI&#xff09;取得了重大进展&#xff0c;影响着企业、社会和个人。在过去的十年左右&#xff0c;深度学习已经发…

【接口】HTTP(1)|请求|响应

1、概念 Hyper Text Transfer Protocol&#xff08;超文本传输协议&#xff09;用于从万维网&#xff08;就是www&#xff09;服务器传输超文本到本地浏览器的传送协议。 HTTP协议是基于TCP的应用层协议&#xff0c;它不关心数据传输的细节&#xff0c;主要是用来规定客户端和…

单元测试 mockito(二)

1.返回指定值 2.void返回值指定插桩 3.插桩的两种方式 when(obj.someMethod()).thenXxx():其中obj可以是mock对象 doXxx().wien(obj).someMethod():其中obj可以是mock/spy对象 spy对象在没有插桩时是调用真实方法的,写在when中会导致先执行一次原方法,达不到mock的目的&#x…

RobotFramework测试框架(2)-测试用例

创建测试数据 测试数据语法 这里的测试数据就是指的测试用例。 测试文件组织 测试用例的组织层次结构如下&#xff1a; 在测试用例文件&#xff08; test case file &#xff09;中建立测试用例 一个测试文件自动的建成一个包含了这些测试用例的测试集&#xff08; test s…

vulhub中Apache Solr 远程命令执行漏洞复现(CVE-2019-0193)

Apache Solr 是一个开源的搜索服务器。Solr 使用 Java 语言开发&#xff0c;主要基于 HTTP 和 Apache Lucene 实现。此次漏洞出现在Apache Solr的DataImportHandler&#xff0c;该模块是一个可选但常用的模块&#xff0c;用于从数据库和其他源中提取数据。它具有一个功能&#…

【Android Studio】上位机-安卓系统手机-蓝牙调试助手

【Android Studio】上位机-安卓系统手机-蓝牙调试助手 文章目录 前言AS官网一、手机配置二、移植工程三、配置总结 前言 提示&#xff1a;以下是本篇文章正文内容&#xff0c;下面案例可供参考 AS官网 AS官网 一、手机配置 Android Studio 下真机调试 二、移植工程 Anro…