ML模型特点以及区别

本文详细对比了线性回归(LR)、支持向量机(SVM)的特点,包括它们的优缺点,如LR的简单快速但对异常值敏感,SVM在处理非线性问题上的优势但计算复杂度高。同时,提到了其他模型如随机森林(RF)和梯度提升决策树(GBDT)的优势和不足,以及Bagging和Boosting的区别。

https://blog.youkuaiyun.com/b285795298/article/details/81977271


线性回归

  • 优点:
    1、简单,运算速度块
    2、可以根据系数对变量做出解释
  • 缺点:
    1、对异常值敏感

LR

  • 优点:
    1、形式简单,可解释性好
    2、模型效果好
    3、训练速度快
    4、资源占用少,尤其是内存
    5、方便输出结果的调整(人工设定阈值)
  • 缺点:
    1、准确率可能并不是很高
    2、很难处理数据不平衡的问题
    3、处理非线性数据麻烦
    4、LR本身无法筛选特征
    5、对异常值敏感

SVM

  • 优点:
    1、svm再中小量样本规模的时候容易得到数据和特征之间的非线性关系,可以避免使用神经网络结构选择和局部极小值问题,可解释性强,可以解决高维问题。
    2、抗噪能力强
  • 缺点:
    1、对缺失数据敏感,对非线性问题没有通用的解决方案,核函数的正确选择不容易,计算复杂度高,不使用于大规模的数据。

LR和SVM的区别:

  • 相同点:
    1.都是分类算法;
    2.都是监督算法;
    3.都是判别式模型;
    4.不考虑核函数,都是线性分类算法;
  • 不同点:
    1、LR采用log损失,SVM采用合页损失,前者基于概率论原理,后者基于几何间隔最大化原理;
    2、LR对异常值敏感,SVM抗噪能力强;r
### Transformer 机器学习模型架构、实现与应用 #### 架构概述 Transformer 是一种基于自注意力机制(self-attention mechanism)的深度学习模型,最初由 Vaswani 等人在 2017 年提出[^1]。其核心特点是摒弃了传统的 RNN 和 CNN 结构,通过多头注意力机制(multi-head attention)和前馈神经网络实现了高效的序列建模能力。 #### 关键组件详解 1. **自注意力机制 (Self-Attention)** 自注意力机制使得模型能够在一次操作中关注输入序列的所有位置,而无需逐个处理。这种特性显著提高了计算效率,并增强了对上下文的理解能力[^1]。 2. **多头注意力 (Multi-Head Attention)** 多头注意力机制扩展了单一的自注意力结构,允许多个独立的注意力头并行工作,从而捕获更丰富的特征表示。每个头部专注于不同的子空间,最终的结果是这些头部输出的拼接[^1]。 3. **堆叠层 (Stacked Layers)** Transformer 的编码器和解码器均由多个相同结构的层堆叠构成。每一层都包含一个多头注意力模块以及一个前馈神经网络,二者均辅以残差连接和层归一化技术,有效缓解了梯度消失问题。 4. **位置编码 (Positional Encoding)** 由于 Transformer 不具备内在的时间/顺序感知能力,因此需要显式地加入位置信息。位置编码向量被加到词嵌入上,帮助模型区分同一词语的不同出现位置。 5. **编码器与解码器 (Encoder & Decoder)** 编码器负责接收输入序列并生成上下文表征;解码器则利用该表征逐步生成目标序列。两者共同构成了完整的端到端框架,广泛应用于诸如机器翻译等任务中[^1]。 #### 实现细节 以下是使用 PyTorch 框架实现 Transformer 的基本代码示例: ```python import torch.nn as nn import torch class PositionalEncoding(nn.Module): def __init__(self, d_model, max_len=5000): super(PositionalEncoding, self).__init__() pe = torch.zeros(max_len, d_model) position = torch.arange(0, max_len).unsqueeze(1) div_term = torch.exp(torch.arange(0, d_model, 2) * -(torch.log(torch.tensor(10000.0)) / d_model)) pe[:, 0::2] = torch.sin(position * div_term) pe[:, 1::2] = torch.cos(position * div_term) pe = pe.unsqueeze(0) self.register_buffer('pe', pe) def forward(self, x): return x + self.pe[:, :x.size(1)] class TransformerModel(nn.Module): def __init__(self, src_vocab_size, tgt_vocab_size, embed_dim, num_heads, num_encoder_layers, num_decoder_layers, dim_feedforward, dropout=0.1): super(TransformerModel, self).__init__() self.src_embedding = nn.Embedding(src_vocab_size, embed_dim) self.tgt_embedding = nn.Embedding(tgt_vocab_size, embed_dim) self.positional_encoding = PositionalEncoding(embed_dim) self.transformer = nn.Transformer( d_model=embed_dim, nhead=num_heads, num_encoder_layers=num_encoder_layers, num_decoder_layers=num_decoder_layers, dim_feedforward=dim_feedforward, dropout=dropout ) self.fc_out = nn.Linear(embed_dim, tgt_vocab_size) def forward(self, src, tgt, src_mask=None, tgt_mask=None): src_emb = self.positional_encoding(self.src_embedding(src)) tgt_emb = self.positional_encoding(self.tgt_embedding(tgt)) output = self.transformer(src_emb, tgt_emb, src_mask=src_mask, tgt_mask=tgt_mask) return self.fc_out(output) ``` 上述代码定义了一个标准的 Transformer 模型,其中包含了位置编码、多头注意力以及其他必要的组件[^3]。 #### 应用场景 Transformer 已经成为众多 NLP 领域的标准工具,特别是在以下方面表现突出: - **机器翻译**:作为经典的 sequence-to-sequence 学习范式,Transformer 提供了高效且高质量的解决方案[^1]。 - **文本摘要**:通过对文档内容的有效压缩,生成简洁明了的总结。 - **问答系统**:借助强大的语义理解能力,能够准确回应复杂查询[^2]。 - **情感分析**:识别文本中的情绪倾向,辅助商业决策和社会研究。 #### 训练优化技巧 为了提升训练稳定性及收敛速度,可以采用如下策略: - 使用全局梯度裁剪防止梯度过大引发数值不稳定现象[^4]。 - 引入批量标准化(Batch Normalization)进一步改善内部协变量偏移问题。 --- 问题
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值