当前位置: 首页 > news >正文

第2篇 机器学习基础 —(2)分类和回归

前言:Hello大家好,我是小哥谈。机器学习中的分类和回归都是监督学习的问题。分类问题的目标是将输入数据分为不同的类别,而回归问题的目标是预测一个连续的数值。分类问题输出的是物体所属的类别,而回归问题输出的是数值。本节课就简单介绍下分类和回归的基本概念以及常见的分类算法和回归算法!~🌈  

前期回顾:

          第2篇 机器学习基础 —(1)机器学习概念和方式

          目录

🚀1.基本概念

🚀2.常见的分类算法

🚀3.常见的回归算法

🚀4.分类回归术语表

🚀5.参考文章 

🚀1.基本概念

分类回归是机器学习中两个重要的问题类型。回归问题通常是用来预测一个值,例如根据房屋的面积、位置等特征预测房价。而分类问题则是将输入数据分为不同的类别,例如根据肿瘤的大小、形状等特征将其分为恶性或良性。分类问题通常建立在回归之上,分类的最后一层通常要使用softmax函数进行判断其所属类别。分类并没有逼近的概念,最终正确结果只有一个,错误的就是错误的,不会有相近的概念。而回归问题则可以有相近的概念,例如预测房价时,预测值可以与实际值相差一定的范围。离散与连续的差别是分类与回归的不同的表象,而非本质,本质在于损失函数的形式不同,结果也不同,回归问题的结果是一个连续的值,而分类问题的结果是一个离散的类别。

机器学习中的分类和回归,本质都是对输入做出预测,并且都是监督学习,简单来说就是,分析输入的内容,判断其类别或者预测其值。💯

分类和回归的区别:

A.预测种类不同

🍀(1)分类预测的是物体所属的种类,而回顾预测的是物体的具体数值。例如,最近北京天气变化大,为了能够对明天适宜的衣服以及是否携带雨伞做判断,我们需要根据过去已有的天气情况进行预测。天气可以分为:晴、阴、雨 三类,我们现在已知的是今天及以前的天气情况,预测明天及以后几天的天气情况,如明天阴,后天晴,就是分类。根据今天及前几天的温度,通过之前的气温来预测以后的气温,这就是回归。

🍀(2)分类输出的是离散值,回归输出的是连续值。离散就是规定好有有限个类别,而这些类别是离散的;连续就是理论上可以取某一范围内的任意数值。

🍀(3)分类输出的值是定性的,回归输出的值是定量的。定性是指确定某种东西的确切的组成有什么或者某种物质是什么,不需要测定该物质的各种确切的数值量。定量是指确定一种成分(某种物质)的确切的数值量,这种测定一般不需要关注测定的物质是什么。例如:这是一杯水,这是定性;这杯水有10毫升,这是定量。

B.目的不同

分类的目的是寻找决策边界,用于对数据集中的数据进行分类;回归的目的是找到最优拟合线,这条线可以最优的接近数据集中的各个点。

C.结果不同

分类的结果没有逼近,只有对错,什么类别就是什么类别,最终结果只有一个。回归是对真实值的一种逼近预测,值不确定,当预测值与真实值相近时,即误差较小时,我们认为这是一个好的回归。(例如一个产品的实际价格为5000元,通过回归分析预测值为4999元,我们认为这是一个比较好的回归分析。


🚀2.常见的分类算法

常用的分类算法有决策树分类法基于规则的分类算法神经网络支持向量机朴素贝叶斯分类法

下面主要介绍各个算法的一些特点:

🍀(1)决策树

  1. 决策树归纳是一种构建分类模型的非参数方法。换句话说,它不要求任何先验假设,不假定类和其他的属性服从一定的概率分布。
  2. 找到最佳的决策树是NP问题。许多决策苏算法采取启发式的方法指导对假设空间的搜索。
  3. 即使训练集很大,构建决策树的代价也较小。
  4. 决策树相对容易解释。
  5. 决策树算法对于噪声的干扰具有相当好的鲁棒性。
  6. 冗余属性不会对决策树的准确率造成不利的影响。
  7. 由于大多数的决策树算法都采用自顶向下的递归划分方法,因此沿着树向下,记录会越来越小。在叶节点,记录可能更少,对于叶节点代表的类,不能做出具有统计意义的判决,产生所谓的数据碎片。
  8. 子树可能在决策树中重复多次,使得决策树过于复杂,并且更难解释。

🍀(2)基于规则的分类算法

  1. 规则集的表达能力几乎等价于决策树,因为决策树可以用互斥和穷觉的规则集表示。基于规则的分类器和决策树分类器都对属性空间进行直线划分,并将类指派到每个划分。
  2. 基于规则的分类器通常用来产生更易于解释的描述性模型,而模型的性能却可与决策树分类器相媲美。
  3. 被很多基于规则的分类器(如RIPPER)所采用的基于类的规则排序方法非常适用于处理类分布不均衡的数据集。

🍀(3)最近邻分类器

  1. 最近邻分类器是一种基于实例的学习技术,它使用具体的训练实例进行预测,而不必维护源自数据的抽象。
  2. 最近邻分类器是一种消极学习方法,它不需要建立模型,然而测试样例的开销很大,因为需要逐个计算测试样例和训练样例之间的相似度。相反,积极学习方法通过花费大量计算资源来建立模型,模型一旦建立,分类测试样例就会非常快。
  3. 最近邻分类器对噪声非常敏感。因为,最近邻分类器基于局部信息进行预测,而决策树和基于规则的分类器则是在拟合在整个输入空间上的全局模型。
  4. 最近邻分类器的可以生成任意形状的决策边界,这样的决策边界与决策树和基于规则的分类器通常局限的直线决策边界相比,能够提供更加灵活的模型表示。
  5. 除非采用适当的邻近性度量和数据预处理,否则最近邻分类可能做出错误的预测。

🍀(4)朴素贝叶斯分类器

  1. 面对孤立的噪声点,朴素贝叶斯分类器是健壮的。因为在从数据中估计条件概率时,这些点被平均。通过在建模和分类时忽略样例,朴素贝叶斯分类器也可以处理属性值遗漏问题。
  2. 面对无关属性,该分类器是健壮的。
  3. 相关属性可能会降低朴素贝叶斯分类器的性能。

🍀(5)贝叶斯信念网络(BBN)

  1. BBN提供了一种用图形模型来捕获特定领域的先验知识的方法。
  2. 构造网络可能既费时又费力,然而,一旦网络结构确定下来,添加新变量就十分容易。
  3. 贝叶斯网络很适合处理不完整的数据。对有属性遗漏的实例可以通过对该属性的所有可能取值的概率求和或求积分来加以处理。
  4. 因为数据和先验知识以概率的方式结合起来了,所以该方法对模型的过分拟合问题是非常鲁棒的。

🍀(6)人工网络

  1. 至少含有一个隐藏层的多层神经网络是一种普适近似,即可以用来近似任何目标函数。
  2. ANN可以处理冗余特征,因为权值在训练过程中自动学习。
  3. 神经网络对训练数据中的噪声非常敏感。
  4. ANN权值学习使用的梯度下降方法经常会收敛到局部极小值。避免局部极小值的方法是在权值更新公式中加上一个动量项。
  5. 训练ANN是一个很耗时的过程,特别是当隐藏结点数量很大时。然而,测试样例分类时非常快

🍀(7)支持向量机的特征(SVM)

  1. SVM学习问题可以表示为凸优化问题,因此可以利用已知的有效算法发现目标函数的全局最小值。而其他的分类方法都采用一种基于贪心学习的策略来搜索假设空间,这种方法一般只能获得局部最优解。
  2. SVM通过最大化决策边界边缘来控制模型能力。
  3. 通过对数据中每个分类属性引入一个哑变量,SVM可以应用于分类数据。

🚀3.常见的回归算法

根据不同的特点和应用场景,回归算法可以分为多个类型,下面介绍一些常见的回归算法的分类。

🍀(1)线性回归

  1. 线性回归是最基本的回归算法之一,其目标是拟合一个线性函数来预测连续的数值型输出。
  2. 常见的线性回归包括简单线性回归和多元线性回归。

🍀(2)决策树回归

  1. 决策树回归是一个基于决策树的回归算法。
  2. 其目标是构建一颗决策树来预测连续的数值型输出。

🍀(3)支持向量回归

  1. 支持向量回归是一种基于支持向量机的回归算法。
  2. 其目标是找到一个最大化预测精度的边界,以预测连续的数值型输出。

🍀(4)随机森林回归

  1. 随机森林回归是一种基于随机森林的回归算法。
  2. 其目标是使用多个随机树来预测连续的数值型输出。

🍀(5)神经网络回归

  1. 神经网络回归是一种基于神经网络的回归算法。
  2. 其目标是通过多个神经元来预测连续的数值型输出。

以上是常见的回归算法分类,除此之外,还有一些其他的回归算法,如岭回归、lasso回归、弹性网络回归等等,每种算法都有其适用的场景和特点。在实际应用中,需要根据具体的问题和数据特征来选择最合适的回归算法。📚


🚀4.分类回归术语表

样本(sample)或输入(input):进入模型的数据点。

预测(prediction)或输出(output):从模型出来的结果

目标(target):真实值。对外部数据源,理想情况下,模型应该能够预测出目标。

预测误差(perdiction error)或损失值(loss value):模型预测与目标之间的距离。

类别(class):分类问题中供选择的一组标签。例如,对猫狗图像进行分类时,“狗”和“猫”就是两个类别。

标签(label):分类问题中类别标注的具体例子。比如,如果1,2,3,4号图像被标注为包含类别”狗”,那么“”狗”就是1,2,3,4号图像的标签。

真值(ground-truth)或标注(annotation):数据集的所有目标,通常由人工收集。

二分类(binary calssification):一种分类任务,每个输入样本都应该被划分到两个互斥的类别中。

多分类(multiclass classification): 一种分类任务,每个输入样本都应该划分到两个以上的类别中,比如手写数字分类。

多标签分类(multilabel calssiication):一种分类任务,每个输入样本都可以分配多个标签。举个例子,如果一幅图像里可能既有猫又有狗,那么应该同时标注“猫”标签和“狗”标签。每幅图像的标签个数通常是可变的。

标量回归(scalar regression):目标是连续标量值的任务。预测房价就是一个很好的例子,不同的目标价格形成一个连续的空间。

向量回归(vector reression):目标是一组连续值(比如一个连续向量)的任务。如果对多个值(比如图像边界框的坐标)进行回归,那就是向量回归。

小批量(mini-batch)或批量(batch):模型同时处理的一小部分样本(样本数通常为8-128)。样本数通常取2的幂,这样便于GPU上的内存分配。训练时,小批量用来为模型权重计算一次梯度下降更新。

优化(optimization):指调节模型以在训练数据上得到最佳性能(即机器学习中的学习)。

泛化(generalization):指训练好的模型在前所未见的数据上的性能好坏。机器学习的目的就是得到更好的泛化。


🚀5.参考文章

作者:水亦心;文章:【机器学习小常识】“分类” 与 “回归”的概念及区别详解

相关文章:

第2篇 机器学习基础 —(2)分类和回归

前言:Hello大家好,我是小哥谈。机器学习中的分类和回归都是监督学习的问题。分类问题的目标是将输入数据分为不同的类别,而回归问题的目标是预测一个连续的数值。分类问题输出的是物体所属的类别,而回归问题输出的是数值。本节课就…...

Java游戏修炼手册:2023 最新学习线路图

前言 有没有一种令人兴奋的学习方法?当然有!绝对有!而且我要告诉你,学习的快乐可以媲美游戏的刺激。 小学时代,我曾深陷于一款名为"八百万勇士的梦"的游戏。每当放学,我总是迫不及待地打开电脑&a…...

前端访问geoserver服务发生跨域的解决办法,以及利用html2canvas下载绘制的地图

我的业务场景: 需要利用html2canvas下载Openlayers绘制的地图。 预期:可以下载成图片甚至其他格式(svg)文件。 结果:下载下来是个空白图片。 排查错误:请求数据正常回显到页面上,利用html2canvas截取的时候会发生跨域,导致无法绘制。 首先处理tomcat跨域问题 第一步…...

Word docx转html和markdown

Pypandoc使用pandoc来进行各种文本格式的转换。 安装 # 不带pandoc执行库 pip install pypandoc# 自带pandoc pip install pypandoc_binary使用 import pypandoc# convert all markdown files in a chapters/ subdirectory. pypandoc.convert_file(chapters/*.md, docx, out…...

API商品数据接口调用爬虫实战

随着互联网的发展,越来越多的商家开始将自己的商品数据通过API接口对外开放,以供其他开发者使用。这些API接口可以提供丰富的商品数据,包括商品名称、价格、库存、图片等信息。对于爬虫开发者来说,通过调用这些API接口&#xff0c…...

【Python机器学习】零基础掌握GaussianProcessClassifier高斯过程

如何准确预测股票走势,从而在股市中获取更高的收益? 股市波动无常,预测股票走势对于投资者来说总是一个巨大的挑战。通常,人们会使用各种各样的方法和工具,但准确性始终是个问题。那么,有没有一种算法可以帮助解决这个问题呢? “高斯过程分类器(Gaussian Process Cla…...

SQL-正则表达式和约束

文章目录 主要内容一.正则表达式1.操作1代码如下(示例): 2.操作2代码如下(示例): 3.操作3代码如下(示例): 4.操作4代码如下(示例): 二.约束1.主键约束 2.自增长约束3.非空约束4.唯一…...

“人类高质量数据”如何训练计算机视觉模型?

人类的视觉系统可以复制吗? 答案是肯定的。 计算机视觉 (Computer Vision) 技术的不断普及,让机器识别和处理图像就像人的大脑一样,且速度更快、更准确。 机器像人类一样去“思考” 计算机视觉 (Computer Vision) 是近年来人工智能增长最快…...

ListenableFuture和countdownlatch使用example

ListenableFuture可以允许你注册回调方法(callbacks),在运算(多线程执行)完成的时候进行调用, 或者在运算(多线程执行)完成后立即执行 import com.google.common.util.concurrent.*;import java.util.concurrent.Call…...

C- strtok() strtok_r()

strtok() strtok 是 C 语言库中的一个函数,用于在字符串上执行分词操作。这意味着它可以用于将字符串分解成多个标记或段,这些标记之间由指定的分隔符分隔。 以下是 strtok 函数的原型: char *strtok(char *str, const char *delim);参数&…...

order by数据过多引起的cpu飙升

测试环境 1.目前数据库类型为pg数据库2.目前数据库业务为共享数据库,为减少其他业务对本次测试的影响,故选在业务空闲时间执行3.服务器性能为8C 32GB 500GB硬盘 原程序测试结果 优化后程序结果 出现原因 当数据量大时,order by排序操作会消耗大量的CPU资源&#…...

namespace命名空间

namespace命名空间 什么是命名空间? namespace命名空间 同一个名称在不同的命名空间中所指向的对象是不同的 为什么要使用命名空间? 防止标识符的命名发生冲突 你写的代码中定义了个fun()函数 所使用的类库中也包含了一个fun()函数 当你的代码中调用fun()函数时 程序:?…...

golang中如何配置 sql.DB 以获得更好的性能

有很多很好的教程讨论 Go 的sql.DB类型以及如何使用它来执行 SQL 数据库查询和语句。但它们中的大多数都掩盖了SetMaxOpenConns()、SetMaxIdleConns()和SetConnMaxLifetime()方法——您可以使用它们来配置 的行为sql.DB并改变其性能。 在这篇文章中,我想准确解释这…...

JAVA同城服务智慧养老小程序怎么开发?

随着人口老龄化的加剧,智慧养老成为了社会关注的焦点。智慧养老小程序作为一种便捷、高效的服务工具,为老年人提供了更全面、个性化的服务。本文将介绍如何使用JAVA编程语言开发一款同城服务智慧养老小程序。 一、设计思路 界面设计:小程序…...

Linux防火墙:Firewalld 常用命令

Linux防火墙:Firewalld 常用命令 CentOS 和 Fedora 中默认的防火墙是 Firewalld 查看防火墙状态 firewall-cmd --state 启动防火墙 systemctl start firewalld 重启防火墙 systemctl restart firewalld 暂时关闭防火墙 systemctl stop firewalld 永久关闭防火墙…...

Java BigInteger比Long更大的整数自增转字符串存储

文章目录 前言BigInteger自增BigInteger转化为StringBigInteger阶乘 前言 BigInteger类在Java中可以表示任意大小的整数,没有固定的范围限制。它使用内部的数组来存储整数的位数,并提供了各种方法来执行算术运算和其他操作。 BigInteger类的大小只受限…...

BigDecimal应用——计算费用场景中用到Integer,Double,BigDecimal三种类型出现的意外情况 结合BigDecimal源码分析

引出 在一个计算费用的场景中,用到了Integer,Double,BigDecimal三种类型,在转换为bigdecimal的时候遇到的问题,结合源码进行了分析。 1.在new bigdecimal的时候,最好传入的是字符串;2.double类…...

数据抓取可以应用到哪些行业

随着互联网的发展,数据已经成为人们生活中不可或缺的一部分。数据抓取作为获取数据的重要手段之一,也被广泛应用于各个行业。本文将探讨数据抓取在各个行业中的应用。 首先,让我们来了解一下数据抓取的基本概念。数据抓取是指通过一定的技术…...

目标检测YOLO实战应用案例100讲-面向小目标检测的多尺度特征融合(续)

目录 3.3 实验结果及分析 3.3.1 实验设置 3.3.2 消融实验 3.3.3 在PASCAL VOC2007上的结果...

如何选择适合的美颜SDK?

美摄美颜SDK是一款专门为企业提供美颜技术支持的SDK,可以帮助企业开发出具有高品质美颜效果的移动应用。本文将介绍美摄美颜SDK的技术特点和面向企业提供的技术支持。 一、技术特点 美摄美颜SDK采用了先进的图像处理技术和人工智能算法,能够快速准确地…...

Spring-底层架构核心概念

Spring底层核心组件 BeanDefinition BeanDefinition表示Bean定义,有很多属性用来描述Bean的特点: class,表示Bean类型 scope,表示Bean作用域,单例或原型等 lazyInit:表示Bean是否是懒加载 initMethod…...

RabbitMQ初入门

1、RabbitMQ是什么 RabbitMQ是“实现了高级消息队列协议(AMQP)的开源消息代理软件(亦称面向消息的中间件)。RabbitMQ服务器是用Erlang语言编写的,而集群和故障转移是构建在开放电信平台框架上的。所有主要的编程语言均…...

电脑定时关机

电脑定时关机 1.右键 管理 2. 3. 4. 5. shutdown.exe/s /f /t 06.点击完成就好了 7.这里面可以 看到定时任务和启动 右键有运行 结束 禁用...

【算法】滑动窗口题单——4.不定长滑动窗口(求子数组个数)

文章目录 前言2799. 统计完全子数组的数目解法1——枚举右端点,移动左端点解法2——枚举左端点,扩展右端点 713. 乘积小于 K 的子数组1358. 包含所有三种字符的子字符串数目2302. 统计得分小于 K 的子数组数目2537. 统计好子数组的数目2762. 不间断子数组…...

CMake aux_source_directory 学习

如下&#xff0c;prj是空文件夹&#xff1b; add.h; #include <iostream>using namespace std;int add1(int a, int b); num.h; int num1100; int num2301; add.cpp&#xff1b; #include "add.h"int add1(int i, int j) {return i j; } main.cpp&#x…...

Mybatis中延迟加载~

延迟加载&#xff1a; 等一会加载&#xff0c;在多表关联查询操作的时候可以使用到的一种方案&#xff0c;如果是单表操作就完全没有延迟加载的概念。 多表查询例如&#xff0c;查询用户和部门信息&#xff0c;如果我们仅仅只是需要用户的信息&#xff0c;而不需要用户对应的…...

【C语言】memmove()函数(拷贝重叠内存块函数详解)

&#x1f984;个人主页:修修修也 &#x1f38f;所属专栏:C语言 ⚙️操作环境:Visual Studio 2022 目录 一.memmove()函数简介 1.函数功能 2.函数参数 1>.void * destination 2>.onst void * source 3>.size_t num 3.函数返回值 4.函数头文件 二.memmove()函数…...

04-流媒体-ffmpeg.c源码分析

ffmpeg.c是一个使用ffmpeg库的参考代码,实现了视频格式转换的功能,类似于我们常用的格式工产,源代码的的目录是: ffmpeg-4.2.2/fftools/ffmpeg.c 和前面的ffplay一样,我们分析其源代码,主要只是为了让读者了解ffmpeg.c此文件的大概流程,并且熟悉常用的ffmpeg库的API。 下…...

迭代器 Iterator

迭代器是一种设计模式&#xff0c;它用于遍历集合或容器中的元素&#xff0c;能够访问集合的元素而无需关心集合的内部结构&#xff1a; 特点&#xff1a; 封装集合访问&#xff1a;迭代器封装了对集合元素的访问&#xff0c;通过迭代器访问集合中的元素&#xff0c;而无需了…...

掌握CSS Flexbox,打造完美响应式布局,适配各种设备!

&#x1f3ac; 江城开朗的豌豆&#xff1a;个人主页 &#x1f525; 个人专栏 :《 VUE 》 《 javaScript 》 &#x1f4dd; 个人网站 :《 江城开朗的豌豆&#x1fadb; 》 ⛺️ 生活的理想&#xff0c;就是为了理想的生活 ! ​ 目录 ⭐ 专栏简介 &#x1f4d8; 文章引言 基…...