SVM单类异常值检测

SVM是一种广泛使用的分类器,通常用于二分类或多分类问题。然而,在异常点检测的场景中,我们通常会将数据视为一个类别(即正常数据点),并尝试找到那些与正常数据点显著不同的点(即异常点)。这可以通过One-Class SVM(单类支持向量机)来实现。

SVM单类异常值检测代码获取戳此处代码获取戳此处

One-Class SVM的原理是寻找一个超平面,使得正常数据点尽可能地分布在这个超平面的一侧,同时使得超平面与原点(或指定的其他点)之间的距离最大化。这样,那些位于超平面另一侧或远离超平面的点就可以被视为异常点。

具体来说,One-Class SVM会学习一个决策函数,该函数将正常数据点的特征空间映射到一个高维空间中,并在这个高维空间中寻找一个最优超平面。这个超平面会尽可能地将正常数据点与原点分开,同时使得超平面与原点之间的距离最大化。在训练过程中,One-Class SVM会利用核函数(如RBF核、线性核等)将数据映射到高维空间,并在这个空间中寻找最优超平面。

实现步骤

  1. 数据准备:首先,收集并整理好一定量的数据样本,包括各个特征的变量数据。这些数据应该主要是正常数据点,因为我们的目标是找出与这些正常数据点显著不同的异常点。
  2. 数据预处理:对数据进行必要的预处理,如标准化、归一化、降维等。这些步骤可以帮助提高SVM模型的性能,并减少过拟合的风险。
  3. 选择核函数:根据数据的特点和问题的需求,选择一个合适的核函数。常用的核函数包括RBF核、线性核、多项式核等。不同的核函数适用于不同类型的数据和问题。
  4. 训练One-Class SVM模型:使用训练数据来训练One-Class SVM模型。在训练过程中,模型会学习一个决策函数,该函数将正常数据点的特征空间映射到一个高维空间中,并在这个高维空间中寻找一个最优超平面。
  5. 异常检测:将测试数据输入到训练好的One-Class SVM模型中,得到每个测试数据点的决策函数值。根据这些值的大小,可以判断哪些数据点是异常点。通常,那些决策函数值较小的数据点被认为是异常点。

部分代码

%% 导入数据
load('matlab.mat');
X = res(:,1:6); % 特征数据
n = size(X, 1);

%% 划分训练集和测试集
rng(1); % 设置随机数种子,以确保结果可重现
train_ratio = 1; % 训练集占比
idx = randperm(n);
X_train = X(idx(1:round(train_ratio*n)), :);

%% 数据归一化
[~,ps] = mapminmax(X_train', 0, 1); % 对训练数据进行归一化
X_train_normalized = mapminmax('apply', X_train', ps)'; % 归一化训练数据

%% 创建模型
nu = 0.05; % 设置 OCSVM 参数 nu

效果图

相关推荐

  1. ADO.NET封装个异步

    2024-05-04 06:34:02       48 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-05-04 06:34:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-05-04 06:34:02       100 阅读
  3. 在Django里面运行非项目文件

    2024-05-04 06:34:02       82 阅读
  4. Python语言-面向对象

    2024-05-04 06:34:02       91 阅读

热门阅读

  1. IP协议的TTL解析(定义、执行、用途)

    2024-05-04 06:34:02       26 阅读
  2. js请求封装ajax、统一响应

    2024-05-04 06:34:02       33 阅读
  3. mac 安装anaconda

    2024-05-04 06:34:02       29 阅读
  4. 嵌入式物联网系统软硬件基础知识大全(2)

    2024-05-04 06:34:02       32 阅读
  5. 【004_音频开发_基础篇_ALSA插件使用】

    2024-05-04 06:34:02       34 阅读
  6. 什么是gcc-arm-linux-gnueabihf?

    2024-05-04 06:34:02       30 阅读
  7. 39 死锁

    39 死锁

    2024-05-04 06:34:02      35 阅读