type
Page
status
Invisible
date
Feb 9, 2026
slug
summary
第三篇略读论文
tags
车联网
机器学习
category
icon
password

An Ensemble-Based Hybrid Model for the Detection of Attacks in the Internet of Vehicular Things

期刊:TITS(CCF-B) 年份:2025 链接:https://ieeexplore.ieee.org/abstract/document/10931828

1. 研究背景

  • IoV(Internet of Vehicular Things)中车辆、RSU、基础设施高度互联,攻击面大、节点多、实时性要求高
  • 传统安全机制(规则、签名)难以应对:
    • 攻击类型多样
    • 数据分布高度不平衡
    • 未知攻击检测能力弱
  • 单一 ML 模型在 泛化能力、稳定性 上存在明显不足
引出:是否可以通过集成学习构建更鲁棒的 IDS?

2. 核心思想

通过 “特征工程 + 数据重采样 + 多模型集成(Stacking)” 构建一个高性能 IoV 入侵检测框架,在多个公开数据集上显著优于单模型和其他集成策略。

3. 整体技术框架

notion image

数据集

  • CIC-IDS2017(多分类、强不平衡)
  • UNSW-NB15(二分类为主)
按8:2划分训练集和测试集

数据预处理

  • K-means 聚类采样
    • 减少数据规模
    • 保留整体分布特性
  • Z-score 标准化
    • 解决特征量纲不一致问题

特征工程

使用 Information Gain (IG) 信息增益
  • 去除冗余与噪声特征
  • 仅保留对攻击分类贡献大的特征

不平衡类处理

  • 采用 SMOTE
    • 合成少数类样本
    • 提升对低频攻击的召回率与 F1

4. 模型设计

基学习器选择

最终选取了4个树模型:XGBoost、Random Forest、Decision Tree、Gradient Boosting。这是作者根据下表中各类算法实验结果的表现来选择的表现最好的算法。
XGBoost 本质上属于 Gradient Boosting 家族,是对传统 GB 的工程化和正则化增强版本。二者在思想上完全一致,均通过逐步拟合残差来提升整体性能,但 XGBoost 通过引入二阶梯度信息、显式正则项和并行计算机制,在收敛速度、泛化能力和大规模数据处理方面具有显著优势。
notion image

集成策略选择

论文对比了voting、bagging和stacking三种方法。其中voting就是同样的数据集训练的模型进行投票,bagging则是采用不同的 bootstrap 子集(有放回抽样)来训练模型,这就使得模型可以学到不同的决策边界。stacking则是先使用基学习器,然后把基学习器的输出输入到元学习器中,最后输出判断。 对比结果如下,最后选择了stacking作为本文的集成方法
notion image

元分类器选择

论文直接就说用随机森林(Random Forest,RF)作为元分类器,没有说选择理由。代码也没有。

5. 实验结果

CIC-IDS2017

  • Accuracy ≈ 99.75%
  • F1 ≈ 99.74%
  • 几乎所有攻击类型都被正确分类

UNSW-NB15

  • 二分类任务:
    • Accuracy / Precision / Recall / F1 = 100%
  • Confusion Matrix 中无明显误判

对比实验

  • 与已有 IDS 方法相比:
    • 准确率、F1 均为最高或并列最高
    • 特别是在不平衡数据场景下优势明显

6. 论文主要贡献

  • 提出一个完整、可复用的 IoV IDS集成框架
  • 系统比较Stacking / Bagging / Voting,而不是只报一个最优结果
  • 结合IG + SMOTE,有效缓解IoV数据常见的不平衡问题
  • 在两个权威数据集上验证,结果稳定、指标接近饱和

7. 思考总结

这篇文章我感觉没啥创新,采用的相关技术方法跟我之前看的这一篇论文差不多,工作量感觉还不如那一篇:https://ieeexplore.ieee.org/abstract/document/9443234
不过我感觉他论文里提到的hybrid方法还是有可取之处的。
此外,这篇文章的内容也有问题,如下两图
notion image
notion image
算法二和算法三的标题写反了,根据他给的内容,算法二的标题应该是stacking,而算法三的标题应该是bagging。
还有就是这两列的数据感觉是编的,不太真
notion image
Loading...