【机器学习】四大类监督学习_模型选择与模型原理和场景应用_第03课

监督学习中模型选择原理及场景应用

监督学习应用场景

在这里插入图片描述

  1. 文本分类场景:
    o 邮件过滤:训练模型识别垃圾邮件和非垃圾邮件。
    o 情感分析:根据评论或社交媒体内容的情感倾向将其分类为正面、负面或中性评价。
    o 新闻分类:将新闻文章自动分类到预定义的类别(如体育、科技、娱乐等)。
  2. 图像识别与分类场景:
    o 图像物体识别:使用标注好的数据集训练模型,使其能够识别图片中的特定对象,例如猫、狗、汽车等。
    o 医学影像诊断:在医疗领域,对X光片、CT扫描或MRI图像进行分类以判断是否存在某种疾病。
    o 车牌识别:通过摄像头捕获的车牌图像,训练模型识别车牌号码并进行分类。
  3. 生物医学应用场景:
    o 基因序列分类:预测DNA或蛋白质序列的功能属性或结构类型。
    o 疾病诊断:基于患者的生理指标、基因表达数据等特征,预测患者是否患有某种疾病。
  4. 金融风控场景:
    o 信贷风险评估:通过对用户提交的贷款申请信息进行分类,判断用户的信用等级或违约可能性。
  5. 用户推荐系统场景:
    o 用户行为分类:基于用户历史行为数据,将用户分类为不同的群体,以便推送个性化推荐内容。
  6. 语音识别场景:
    o 语音命令分类:将音频片段转换为文字指令,并进一步分类为不同的操作命令。
  7. 社交网络分析场景:
    o 用户兴趣分类:通过分析用户在社交平台上的活动,对其兴趣爱好进行分类,以便推送相关广告或内容。
    这些场景下的分类任务都是通过构建一个基于标签数据训练出的模型来完成的,模型可以基于统计学习理论、神经网络或其他机器学习算法。
    为分类问题选择特定合适的算法,就像如何选择一双适合脚的鞋一样,我们需要知道脚的大小,和脚穿什么鞋会感到舒服,这时需要我们来理解算法,以下是一些算法的原理:
    监督学习中对模型进行2个大类划分,一个是分类 (Classification)模型,另一个是回归(Regression)模型:
    • 分类模型:如逻辑回归(Logistic Regression, LR)、支持向量机(Support Vector Machines, SVM)、朴素贝叶斯(Naive Bayes)、决策树(Decision Trees)、随机森林(Random Forest)、K近邻(K-Nearest Neighbors, KNN)、神经网络(Artificial Neural Networks, ANNs)等。
    • 回归模型:线性回归(Linear Regression)、多项式回归(Polynomial Regression)、岭回归(Ridge Regression)、拉索回归(Lasso Regression)、Elastic Net回归等。

算法种类与原理

在这里插入图片描述

逻辑回归(Logistic Regression)算法
o 核心数学公式:逻辑回归使用sigmoid函数将线性组合映射到(0,1)区间内,从而得到一个概率值。最终通过设定阈值进行类别预测。
o 预测公式:( P(Y=1|X) = \frac{1}{1 + e^{-(\beta_0 + \beta_1X_1 + \cdots + \beta_pX_p)}} )
o 损失函数(最大似然估计): 交叉熵损失函数 ( J(\theta) = -\sum_{i=1}^{n} [y_i \log(p(x_i|\theta)) + (1-y_i)\log(1-p(x_i|\theta))] )
支持向量机(Support Vector Machines, SVM)
o 核心思想:寻找最大化间隔的超平面来分割不同类别的样本,同时可能通过核函数处理非线性问题。
o 最优化问题:找到最优分类超平面使得边际上的点距离超平面最远(最大化间隔),用拉格朗日乘子法求解。
K近邻(K-Nearest Neighbors, KNN)
o 核心思想:根据新样本在特征空间中与已知类别样本的距离,选取最近的k个邻居,以这k个邻居的多数类别作为新样本的预测类别。
决策树(Decision Trees)
o 核心思想:构建一个树形结构模型,通过一系列规则划分数据集,每个内部节点表示一个特征测试,每个分支代表一个测试输出,而叶节点则表示类别或数值输出。
朴素贝叶斯(Naive Bayes)
o 核心公式:基于贝叶斯定理和特征条件独立假设,计算后验概率最大的类别。
o 分类公式:( P(C_k|X) = \frac{P(X|C_k)P(C_k)}{P(X)} ),其中选择使后验概率最大的类别 ( C_k ) 作为预测结果。
随机森林(Random Forests)
o 核心思想:集成多个决策树的预测结果,每个决策树都是在随机抽取的特征子集上训练得到的。
神经网络(Artificial Neural Networks, ANNs)
o 核心数学公式:多层感知器(Multilayer Perceptron, MLP)等前馈神经网络通过反向传播算法更新权重,最小化损失函数,如交叉熵损失函数。
o 前向传播和反向传播涉及矩阵运算和激活函数的应用。
每种算法都有其特定的数学基础和适用场景,实际应用时需要根据数据特点和需求选择合适的模型。

算法选择条件和依据

在选择合适的机器学习算法时,需要考虑数据的特性、问题类型、计算资源以及模型解释性等因素。以下是一些关于如何结合算法适用场景和理由的系统说明:

  1. 数据量与特征维度或(数据的特性,例如数据的规模、维度和分布):
    o 小数据集模型选择:对于小样本数据集,简单模型如逻辑回归、决策树或K近邻等可能更为合适,因为它们不易过拟合且易于理解。
    o 大数据集模型选择:在大数据背景下,可以利用深度学习模型(如神经网络)或集成方法(如随机森林、梯度提升机等),这些模型能处理高维特征空间并从大量数据中挖掘复杂模式。
  2. 数据分布与线性可分性:
    o 线性分割问题模型选择:当类别可以通过一个超平面清晰地划分时,线性分类器如逻辑回归、支持向量机(线性核),另外支持向量机更适合具有高维度特征的数据集。
    o 非线性问题模型选择:如果数据分布具有非线性特征,则需采用非线性模型,一般分类问题,如核SVM(使用非线性核函数)、神经网络或多层感知器、决策树(能够构建非线性决策边界)。
    o 上两条中提到线性和非线性问题,是根据超平面来决定的,当数据集可以清晰的通过一个超平面进行分割时,我们就采用线性方法解决,当数据集中无法用一个超平面进行数据的分割时,就要采用非线性的方法解决了。
    o 超平面的特点:那么对于分类问题,到底是线性的还是非线性的呢?还是需要找到前面说到的分割的超平面,只要在二维环境中把数据能用线分割两部分,三维中能用一个平面分割两部分, 我们就称之为超平面。
  3. 计算资源限制:
    o 计算能力弱环境选择模型:如果计算资源有限,轻量级模型如逻辑回归、朴素贝叶斯或小规模的决策树更优。
    o 计算能力强环境选择模型:若拥有充足的计算资源,可以尝试训练复杂的深度学习模型或者大规模集成模型,如深度神经网络、XGBoost、LightGBM等。
  4. 实时预测需求:
    o 实时或快速响应模型选择:对于需要实时响应的应用场景,例如推荐系统中的在线学习或流式数据处理,要求模型有较高的推理速度。此时,简单的模型或优化过的树模型(如基于树的梯度提升模型)更加适合。
    o 实时性不高离线任务模型选择:对实时性要求不高的离线任务,可以选择训练时间较长但性能优秀的模型,如深度神经网络。
  5. 模型解释性:
    o 高解释性模型选择:在法律、医疗,人脸识别等领域,模型的决策过程需要高度透明,这时可以优先选用可解释性强的模型,如决策树、规则学习或LIME解释工具辅助的其他模型,这样更容易发现潜在的偏见或歧视问题。
    o 低解释性模型选择:在金融领域我们只关心结果和能否准确的对交易盈亏预测的模型,类似这种追求极致准确性能而不强调模型解释性时,可以选择神经网络或支持向量机等黑盒模型。
  6. 数据类型:
    o 结构化数据模型选择:对于数值型和离散型特征为主的数据,大多数监督学习算法都能处理,关键是看数据的具体结构和分布特点。
    o 文本数据模型选择:通常会采用NLP领域的特定模型,如词袋模型、TF-IDF加朴素贝叶斯或深度学习模型(如卷积神经网络、循环神经网络等)进行文本分类。
    o 图像数据模型选择:图像分类主要依赖于卷积神经网络(CNNs)和其他视觉模型。

综上所述,在实际应用中,选择哪种算法并不是孤立的过程,而是要充分分析项目需求、数据特性以及可用资源,并在此基础上权衡模型的精度、效率、可解释性和泛化能力等多个因素。

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

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

相关文章

中国联通助力吴江元荡生态岸线打造5G+自动驾驶生态长廊

吴江,素有“鱼米之乡”“丝绸之府”的美誉,其地理位置优越,地处太湖之滨。近年来,随着长三角生态绿色一体化发展示范区(以下简称“示范区”)的建立,元荡更是声名大噪,成为众多游客心…

PyTorch各种损失函数解析:深度学习模型优化的关键(1)

目录 详解pytorch中各种Loss functions binary_cross_entropy 用途 用法 参数 数学理论 示例代码 binary_cross_entropy_with_logits 用途 用法 参数 数学理论 示例代码 poisson_nll_loss 用途 用法 参数 数学理论 示例代码 cosine_embedding_loss 用途 …

mac PyCharm 使用conda环境

1 使用conda创建虚拟环境 conda create -n test6 python3.9 -y conda activate test62 选择conda环境 本地 选择已经存在的conda环境 右下角会显示现在的环境。

adb、monkey的下载和安装

adb下载 官网网址:Downloads - ADB Shell 尽量不要下载最新的ADB Kits,因为兼容性可能不太好。 点击下载 ADB Kits 作者下载的版本是1.0.36 解压adb 到指定的目录即可。 然后把adb配置 环境变量。 检查adb是否安装成功

骑砍2霸主MOD开发-作弊模式控制台模式

一.作弊模式开启 config文件路径:C:\Users\Administrator\Documents\Mount and Blade II Bannerlord\Configs\engine_config.txt 修改配置项:cheat_mode 0 → cheat_mode 1 启动游戏后,作弊按键: Ctrl Left Click—传送地图的任意点。Ctrl H—主角满血。CTRL Shift H—主角全…

C语言中的字符串操作函数自定义实现:标准版与限定长度版

目录 1. 标准字符串操作函数自定义实现 (a) 自定义strcpy函数 (b) 自定义strcat函数 (c) 自定义strcmp函数 2. 限定长度字符串操作函数自定义实现 (a) 自定义strncpy函数 (b) 自定义strncat函数 (c) 自定义strncmp函数 对字符串的操作是不可或缺的一部分。标准库提供了…

【.NET Core】 多线程之(Thread)详解

【.NET Core】 多线程之(Thread)详解 文章目录 【.NET Core】 多线程之(Thread)详解一、概述二、线程的创建和使用2.1 ThreadStart用于无返回值,无参数的方法2.2 ParameterizedThreadStart:用于带参数的方法 三、线程的…

REVIT二次开发生成三维轴网

步骤1 确定轴网 步骤2 生成3D轴网 using System; using System.Collections.Generic; using System.Linq; using System.Text;

C#winform上位机开发学习笔记2-串口助手的中文支持功能添加

分为两步: 1.串口接收支持中文显示 1.1.在软件初始化时写入此代码以支持汉字显示 //串口接收支持中文显示serialPort1.Encoding Encoding.GetEncoding("GB2312"); //串口1的解码支持GB2312汉字 2.串口发送支持中文输出 //支持中文输出Encoding Chine…

文心一言使用分享

ChatGPT 和文心一言哪个更好用? 一个直接可以用,一个还需要借助一些工具,还有可能账号会消失…… 没有可比性。 通用大模型用于特定功能的时候需要一些引导技巧。 import math import time def calculate_coordinate(c, d, e, f, g, h,…

【Origin绘图系列第3棒】箱型图:

Origin绘制箱型图 箱型图(Boxplots)案例1:基本绘制参考 箱型图(Boxplots) 案例1:基本绘制 选择箱型图后界面如下: 设置分组,如下设置, 图形如下所示: 根…

防火墙部署安全区域实验

目录 实验拓扑web登防火墙配置对象配置安全策略配置NAT配置安全策略测试抓包测试 实验拓扑 安全区域如下图: web登防火墙 按接口划分各区域,GE1/0/1为trust区域,内网是信任区域。 配置如下,可起别名方便操作,区域为t…

C++后端笔记

C后端笔记 资源整理一、高级语言程序设计1.1 进制1.2 程序结构基本知识1.3 数据类型ASCII码命名规则变量间的赋值浮点型变量的作用字符变量常变量 const运算符 二、高级语言程序设计(荣) 资源整理 C后端开发学习路线及推荐学习时间 C基础知识大全 C那…

ICCV2023 | PTUnifier+:通过Soft Prompts(软提示)统一医学视觉语言预训练

论文标题:Towards Unifying Medical Vision-and-Language Pre-training via Soft Prompts 代码:https://github.com/zhjohnchan/ptunifier Fusion-encoder type和Dual-encoder type。前者在多模态任务中具有优势,因为模态之间有充分的相互…

Docker部署Flask项目

Docker部署Flask项目 一、准备项目代码二、编写Dockerfile三、服务器部署 一、准备项目代码 这里写了一个简单的Flask的demo&#xff0c;源代码如下&#xff1a; from flask import Flaskapp Flask(__name__)app.route("/") def index():return "<h1 styl…

解决Windows下VSCode控制台乱码问题

我们在Windows使用VSCode编写C/C程序时&#xff0c;如果代码中的中文字符串使用的是UTF8编码&#xff0c;且代码内没有设置控制台的输出编码&#xff0c;或者编译时没有指定运行时编码&#xff08;GCC可以在编译时使用-fexec-charsetGBK来指定运行时的字符串编码&#xff1b;cl…

解决Uniapp插件市场试用原生插件项目 没有MD5签名安卓无法自定基座打包的情况

Uniapp插件市场中&#xff0c;有些插件是原生插件&#xff0c;必须使用自定义基座才能打包。但是传统keytool命令&#xff0c;已经无法看到安卓证书的MD5签名。现采用Android Studio查询signingReport的办法获取证书的MD5签名&#xff0c;并对插件的示例项目进行打包运行。一、…

c++基础3

一 、构造函数的初始化列表 可以指定成员对象的初始化方式 构造函数的初始化列表是在 C 中用于初始化成员变量的一种机制。它在构造函数的参数列表之后&#xff0c;构造函数的函数体之前使用&#xff0c;并使用冒号 : 分隔。初始化列表可以用于给成员变量赋初值&#xff0c;而不…

ycsb压测mongodb

下载解压 https://github.com/brianfrankcooper/YCSB/releases/download/0.17.0/ycsb-mongodb-binding-0.17.0.tar.gz tar -zxvf ycsb-mongodb-binding-0.17.0.tar.gzycsb提前已经在workload文件夹下准备好了几个压测场景分别对应workload[a:f] workloads/workloada 样例 …

Docker-harbor私有仓库部署与管理

目录 实验前准备部署Docker-compose服务部署Harbor服务修改配置文件创建项目 客户端测试修改客户端配置测试 维护管理Harbor创建项目创建用户查看日志修改Harbor.cfg配置文件补充 实验前准备 Harbor服务器&#xff1a;192.168.188.11 docker-ce、docker-compose、harbor-offli…