深度学习入门(五):有监督学习

news2024/12/24 10:22:31

一、逻辑回归

逻辑回归(Logistic Regression)是一种广泛使用的分类算法,以作者的理解,它是在线性回归【线性回归:拟合一条最接近自变量X与因变量Y关系的直线,线性回归可预测连续值】的基础上添加了一个逻辑转换函数(通常是Sigmoid函数),以将输出值映射到[0,1]区间,然后根据一个阈值(通常是0.5)来进行分类。

通过这种方式,逻辑回归将线性回归的输出转换为一个介于0和1之间的概率值,再通过阈值判断来实现分类任务。

优点和应用

  • 简单易用:逻辑回归是一个非常简单但非常强大的分类算法,特别适用于二分类问题。
  • 概率输出:逻辑回归不仅给出类别标签,还能提供类别的概率,这在很多应用中非常有用。
  • 广泛应用:逻辑回归广泛应用于医学、社会科学、金融等领域,用于疾病预测、用户行为分析、信用评分等任务。

二、分类回归树

分类回归树(Classification and Regression Tree, CART)是一种决策树模型,用于处理分类和回归问题。决策树通过一系列的决策节点将数据分割成更小的部分,直到达到叶子节点。每个决策节点基于某个特征的特定值来划分数据,叶子节点则代表最终的输出值(类别或连续值)。

决策树的基本组成部分

  1. 根节点(Root Node)

    • 决策树的顶端节点,是树的起点。
    • 它包含了整个数据集,并根据某个特征的特定值进行第一次划分
  2. 内部节点(Internal Node)

    • 位于树的中间,连接根节点和叶子节点。
    • 每个内部节点基于某个特征的特定值继续划分数据。
  3. 叶子节点(Leaf Node)

    • 决策树的终端节点,不再进行进一步的划分。
    • 代表最终的输出值,在分类问题中是类别标签,在回归问题中是一个连续值。

分类回归树的构建过程

  1. 选择最佳分裂点

    • 对每个特征进行尝试,根据某个准则(如信息增益、基尼指数或方差)选择最佳分裂点。
    • 信息增益:通常用于ID3和C4.5算法,度量特征对数据集的纯度提升。
    • 基尼指数:用于CART算法,度量数据集的不纯度。
    • 方差:用于回归树,度量连续变量的分散程度。
  2. 数据集划分

    • 根据选择的最佳分裂点,将数据集划分成两个或多个子集。
    • 对每个子集重复上述过程,直到满足停止条件(如叶子节点中的样本数小于某个阈值,或者达到最大树深度)。
  3. 构建子树

    • 对每个子集递归地构建子树,直到所有数据都被正确分类或达到停止条件。

让我们理解一下决策树的分裂。

        在决策树的背景中,“分裂”是一个过程,通过这个过程,数据会被根据某个特定的标准(如某个特征的值)划分为两个或更多的子集

        想象一下,你有一篮子水果,里面既有苹果又有香蕉。你的目标是将苹果和香蕉分开。一种简单的方法是根据“水果类型”进行“分裂”:所有的苹果放在一个篮子里,所有的香蕉放在另一个篮子里。

        在决策树中,我们也做同样的事情,但不是与水果,而是与数据。我们查看数据的特征(例如年龄、性别、收入等)并选择一个特征来“分裂”数据,以使结果更“纯”。纯度意味着尽可能减少每个子集中类别的混合。例如,假设我们有以下数据,并想知道谁会在雨中打伞:

名字是否带伞
Alice
Bob
Carol

        如果我们知道每个人都是因为他们不想淋湿而带伞的,我们可以使用“不想淋湿”这一特征进行“分裂”:那些不想淋湿的人会带伞,而其他人则不会。在这里,“分裂”是一个决策点,它告诉我们如何将数据分为两部分:带伞的人和不带伞的人。当我们在决策树中进行“分裂”时,我们试图找到最佳的方式(即哪个特征)来区分数据,使每个子集尽可能地纯净。

        在决策树中,每次节点分裂的目的是找到一个特征,使得其分裂可以最大程度地增加信息增益(或者其他定义的纯度增益)。对于常规的决策树,这一步会考虑数据集中的所有特征,并选择其中的最佳特征进行分裂。

分类回归树的例子

假设我们有一个决策树,根据一个人的年龄和婚姻状况进行分类,以决定他们是否会购买跑车或小型货车。

  • 问题描述
    • 目标:根据年龄和婚姻状况预测某人是否会购买跑车或小型货车
    • 特征:年龄、婚姻状况。
    • 类别标签:购买跑车、购买小型货车。
                         是否超过30岁?
                        /             \
                     是                 否
                   /                      \
                已婚?                  购买跑车
               /     \
           是          否
         /              \
购买小型货车          购买跑车
  • 决策过程
    1. 从根节点开始,根据"是否超过30岁"进行第一次划分。
      • 如果是,则继续到内部节点。
      • 如果否,则分类为"购买跑车"。
    2. 在内部节点,根据"已婚?"进行第二次划分。
      • 如果是,则分类为"购买小型货车"。
      • 如果否,则分类为"购买跑车"。

三、朴素贝叶斯

朴素贝叶斯(Naive Bayes)是一类基于贝叶斯定理的简单但强大的分类算法。它之所以被称为“朴素”,是因为它假设所有特征(变量)之间相互独立,这在很多现实应用中并不完全正确,但这种假设使得算法计算量大大减少,并且在很多实际问题中仍然表现良好。

贝叶斯定理

贝叶斯定理是朴素贝叶斯算法的基础,它用于计算某一事件在给定另一事件发生的前提下的概率。贝叶斯定理的公式如下:

  • P(h∣d):后验概率,是在给定数据 d 的前提下,假设 h 为真的概率。
  • P(d∣h):似然(可能性),是在假设 h 为真的前提下,数据 d 出现的概率。
  • P(h):先验概率,是假设 h 为真时的概率(与数据无关)。
  • P(d):边缘概率,是数据 d 出现的概率(与假设无关)。

朴素贝叶斯的优缺点

优点

  • 简单高效,计算量小。
  • 对小规模数据集有效,适用于文本分类、垃圾邮件过滤等问题。
  • 能够处理高维数据。

缺点

  • 条件独立性假设在实际中往往不成立,可能影响分类性能。
  • 对数据中的噪声和相关性较敏感。

实际应用示例

假设我们要预测一个人是否会购买某种产品。我们有以下特征:年龄、收入、是否有房子、信用等级。类别标签是是否购买(是/否)。

训练数据:

年龄收入有房子信用等级购买
<30
30-40
>40
<30

如果我们要预测的人的情况为:年龄=<30,收入=高,有房子=否,信用等级=好,那么使用朴素贝叶斯预测的步骤如下: 

通过这种方式,朴素贝叶斯可以对新数据进行分类预测,即使在特征相互独立的假设不完全成立的情况下,也能提供合理的结果。


KNN算法

K近邻算法(K-Nearest Neighbors,简称KNN)是一种简单而有效的分类和回归算法。其核心思想是,对于一个新的输入实例,通过比较其与训练集中所有实例的距离,找到距离最近的 k 个实例,并根据这 k 个实例的标签来预测新实例的标签。

KNN算法的基本步骤

  1. 计算距离:对于新的输入实例 x,计算它与训练集中每个实例之间的距离。常用的距离度量方法包括欧氏距离、曼哈顿距离等。

  2. 选择最近的 k 个邻居:根据计算的距离,选择距离 x 最近的 k 个训练实例。

  3. 分类或回归

    • 分类:对 k 个最近邻的标签进行投票,选择出现次数最多的标签作为新实例的预测标签。
    • 回归:对 k 个最近邻的标签进行平均,作为新实例的预测值。它就是通过机器学习方法预测来填充缺失值的典型示例,而非使用线性插值、分段插值等数学方法。

KNN的参数选择

  1. k值的选择:k 的值对算法的性能有很大影响。较小的 k 值使模型更复杂,容易发生过拟合;较大的 k 值使模型更简单,容易发生欠拟合。一般通过交叉验证来选择合适的 k 值

  2. 距离度量:常用的距离度量方法有欧氏距离(适用于连续变量)、曼哈顿距离(适用于稀疏数据)、余弦相似度(适用于文本数据)等。

KNN的优缺点

优点

  • 简单直观,易于理解和实现。
  • 无需显式的训练过程,适合小数据集。
  • 对非线性分类问题有很好的效果。

缺点

  • 计算开销大,对大数据集不适用,因为每次预测都需要计算与所有训练实例的距离。
  • 存储开销大,需要存储整个训练数据集。
  • 对噪声敏感,噪声数据可能会对预测结果产生较大影响。

示例

假设我们有如下数据集,用于预测一个人是否会购买产品:

年龄收入有房子信用等级购买
<30
30-40
>40
<30

我们希望预测一个新的实例:年龄为30-40,收入为高,有房子,信用等级为好。

步骤:

  1. 计算距离:计算新实例与每个训练实例之间的距离。
  2. 选择最近的 k 个邻居:假设 k=3,选择距离最近的3个实例。
  3. 分类:根据这3个最近邻的标签进行投票,确定新实例的预测标签。

假设计算结果如下:

  • 新实例与实例2的距离最小,为1
  • 新实例与实例4的距离次之,为2
  • 新实例与实例3的距离再次之,为3

最近的3个邻居分别是实例2、实例4和实例3,标签分别是"是"、"否"和"是"。因此,投票结果为"是",新实例的预测标签为"是"。

KNN是一种非参数算法,适用于对数据分布没有太多先验假设的情况。其效果取决于距离度量方法和 k 值的选择,需要根据具体问题进行调整和优化。

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

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

相关文章

朵拉朵尚:不断探索与尝试 创新营销模式

朵拉朵尚&#xff1a;不断探索与尝试 创新营销模式 如今是传统国货和新锐品牌的崛起,其中以朵拉朵尚为代表的国货美妆品牌,从原料、配方、生产等多个维度发力,提升产品质量与品牌口碑,成为国货品质的代表。随着实体销售逐渐走低,在百年不遇之大变局时代下,朵拉朵尚创始人李海珍…

未来已来:全方位掌握【人工智能】的系统学习路线

目录 前言 第一部分&#xff1a;基础知识 1. 数学基础 1.线性代数 2.微积分 3.概率与统计 4.离散数学 2. 计算机基础 1.编程语言 2.数据结构和算法 3.计算机体系结构 第二部分&#xff1a;核心技术 1. 机器学习 1.监督学习 2.无监督学习 3.强化学习 2. 深度学…

大模型对任务型对话的作用

大模型的多轮&#xff0c;我们一般想到的方案都是比较大胆地把历史记录都交给大模型让大模型来做生成&#xff0c;这个在比较自由、开放的聊天中&#xff0c;肯定是有效的&#xff0c;但是在实际场景中&#xff0c;我们往往希望模型能够在一定程度控制对话的流程&#xff0c;我…

深度学习入门(三):一些需要多加复习的知识

正负样本 在机器学习和特别是在分类任务中&#xff0c;正样本和负样本是相对于某一分类目标而言的&#xff0c;通常在二分类问题&#xff08;yes or no&#xff09;中&#xff0c;分类后想要的类别就是正样本&#xff0c;其他均为负样本&#xff01;&#xff01;&#xff01; …

Java学习笔记(十八):实现多线程、线程同步、阻塞队列基本使用、线程池、多线程综合练习、原子性、并发工具类

目录 一、实现多线程 1.1简单了解多线程【理解】 1.2并发和并行【理解】 1.3进程和线程【理解】 1.4实现多线程方式一&#xff1a;继承Thread类【应用】 1.5实现多线程方式二&#xff1a;实现Runnable接口【应用】 1.6实现多线程方式三: 实现Callable接口【应用】 1.7设…

选择一家正规的指挥中心控制台厂家有多重要?

在当今信息化高速发展的时代&#xff0c;指挥中心作为各类应急响应、调度管理、监控预警的核心枢纽&#xff0c;其高效运行与决策能力直接关系到社会安全、城市管理乃至国家战略的顺利实施。而指挥中心控制台作为这一体系中的关键基础设施&#xff0c;其设计、制造与安装显得尤…

成都跃享未来教育咨询抖音小店成为领域的新锐力量

在数字化浪潮席卷全球的今天&#xff0c;教育行业也迎来了前所未有的变革与机遇。成都&#xff0c;这座历史悠久而又充满活力的城市&#xff0c;正以其独特的魅力和创新的精神&#xff0c;孕育着教育咨询行业的新篇章。其中&#xff0c;成都跃享未来教育咨询凭借其敏锐的洞察力…

密码学基础 -- RSA加密、签名填充模式解析(终极图解版)

目录 1. OAEP 1.1 加密过程 1.2 解密过程 2 PSS 2.1 签名流程 2.2 验签流程 3.小结 1. OAEP 填充模式OAEP(Optimal Asymmetric Encryption Padding)&#xff0c;仅用于加解密。 1.1 加密过程 使用该填充模式进行加密总共分为三大步骤&#xff1a; &#xff08;1&…

21世纪中国思想家姓名学大师颜廷利:世界最具影响力的华人之一

21世纪中国思想家姓名学大师颜廷利&#xff1a;世界最具影响力的华人之一 在2024年的世界姓名学界&#xff0c;颜廷利教授无疑是一颗耀眼的星星。他的名字频繁出现在各大排行榜上&#xff0c;被誉为网上最靠谱的改名大师之一。这位来自山东济南的文化名人&#xff0c;凭借其深…

TVS管(瞬态电压抑制二极管)的了解

TVS即Transient Volatge Suppressor&#xff0c;中文名称&#xff1a;瞬态电压抑制二极管&#xff0c;又称雪崩击穿二极管。但在通常情况下&#xff0c;我们称之为TVS二极管。其在电路中的作用主要是保护敏感电路&#xff0c;免受高电压瞬变损坏的组件。其中&#xff0c;大部分…

【python】Django运行报错分析:ImproperlyConfigured 错误解决办法

✨✨ 欢迎大家来到景天科技苑✨✨ &#x1f388;&#x1f388; 养成好习惯&#xff0c;先赞后看哦~&#x1f388;&#x1f388; &#x1f3c6; 作者简介&#xff1a;景天科技苑 &#x1f3c6;《头衔》&#xff1a;大厂架构师&#xff0c;华为云开发者社区专家博主&#xff0c;…

docker安装及使用

一、docker优点及作用 优点&#xff1a; 基础镜像MB级别创建简单隔离性强启动速度秒级移植与分享放便 作用&#xff1a;资源隔离 cpu、memory资源隔离与限制访问设备隔离与限制网络隔离与限制用户、用户组隔离限制 二、docker安装 2.1.配置yum源 yum install -y yum-uti…

sheng的学习笔记-AI-k近邻学习(kNN)

AI目录&#xff1a;sheng的学习笔记-AI目录-CSDN博客 什么是k近邻学习 k近邻&#xff08;k-Nearest Neighbor&#xff0c;简称kNN&#xff09;学习是一种常用的监督学习方法&#xff0c;是一种基本的分类与回归方法。 分类问题&#xff1a;对新的样本&#xff0c;根据其 k 个…

aiOla推出超快 “多头 “语音识别模型,击败OpenAI Whisper

今天&#xff0c;以色列人工智能初创公司 aiOla 宣布推出一种新的开源语音识别模型&#xff0c;其速度比 OpenAI 著名的 Whisper 快 50%。 该模型被正式命名为 Whisper-Medusa&#xff0c;它建立在 Whisper 的基础上&#xff0c;但使用了一种新颖的 "多头关注 "架构…

为什么企业越来越看重懂管理的网络安全人才?

说实话&#xff0c;要是几年前有人跟我说网安人才还得懂管理&#xff0c;我可能会嗤之以鼻。网安不就是搞技术的吗&#xff1f;整天跟漏洞、防火墙、IDS打交道&#xff0c;为啥又扯到管理了&#xff1f; 但是仔细一想&#xff0c;好像时代确实变了。 由于现在的就业局势紧迫&a…

通过高德JS API 实现呼吸点

效果图: 核心代码: <script lang="ts" setup>import { onMounted, onUnmounted, ref } from vue;import AMapLoader from @amap/amap-jsapi-loader;import redImage from @/assets/images/red.png;import orangeImage from @/assets/images/orange.png;impo…

免费的剪辑软件稍微变味了!洞见满分作文:立秋,沉淀自己——早读(逆天打工人爬取热门微信文章解读)

8U&#xff1a;钓鱼调到这玩意怎么办呢&#xff1f; 引言Python 代码第一篇 洞见 立秋&#xff0c;沉淀自己第二篇 免费的剪辑软件稍微变味了结尾 引言 昨天文章的数据一般 还望觉得有用的多点点赞哈 我是觉得 既然我们有理想 那么就应该多聚集有共同理想的人&#xff01; 有主…

数据库表水平分割和垂直分割?

0.数据库表的水平分割和垂直分割是两种常见的数据库优化技术&#xff0c;‌它们分别针对不同的场景和需求进行数据表的拆分。‌ 1. 水平分割&#xff08;‌Horizontal Splitting&#xff09;‌主要是按照记录进行分割&#xff0c;‌即不同的记录被分开保存在不同的表中&#x…

Python面向对象编程之多重继承和MRO深入解析

概要 Python是一种面向对象的编程语言,其类继承机制为开发者提供了强大的工具来构建复杂的系统。多重继承允许一个类从多个基类继承属性和方法,而方法解析顺序(MRO)决定了在多重继承情况下方法的调用顺序。本文将详细介绍Python中的多重继承和方法解析顺序,涵盖基本概念、…

[MRCTF2020]Ezpop

[MRCTF2020]Ezpop 题目是pop&#xff0c;考的其实就是pop链&#xff0c;可以自己先学学&#xff0c;啥也不会QAQ php反序列化之pop链_pop3.phpwelcome-CSDN博客 POP 面向属性编程(Property-Oriented Programing) 常用于上层语言构造特定调用链的方法&#xff0c;与二进制利用…