Python中的异常检测算法2025年1月5日 | 阅读 7 分钟 什么是异常?异常是指在其他数据集点中 noticed 的数据点,并且在数据中不具有正常行为。这些数据点与数据集的正常行为模式不同。 在某些情况下,数据点及其特征超出了模型的预期模式,从而在数据集中产生了异常。 异常的分类
Python 中的异常检测异常检测是一种无监督数据处理技术,有助于从数据集中检测异常。异常检测用于检测欺诈交易、疾病检测等。它还处理具有高类别不平衡的案例研究。有几种技术可以检测异常并帮助构建强大的数据科学模型。 异常检测是识别、过滤或转换来自分析管道的异常的过程。在 Python 中有多种检测异常的方法。我们可以训练机器学习模型来实时检测异常。还可以使用统计方法(如均值、中位数和分位数)来检测异常。数据可视化和探索性数据分析技术也可用于检测异常。 为什么需要异常检测?异常检测主要用于垃圾邮件检测、欺诈交易等。在现实生活中,异常检测可用于分类任务,尤其是在训练数据具有高类别不平衡的情况下。它还可以用于预测设备故障、检测 IT 故障、DDoS 攻击和云成本管理。 异常检测也用于网络安全,因为它可以评估大量数据流,从而检测流量模式、访问请求的变化等。它还用于构建大多数用于入侵检测系统、防火墙和安全工具的安全应用程序和服务。 用于异常检测的算法和方法有不同的异常检测算法,包括监督、无监督和半监督算法。
监督异常检测中的算法
无监督异常检测中的算法
半监督异常检测中的算法
无监督异常检测模型通过计算不同点之间的距离来启动数据的基本分布或轮廓,以检测异常。无监督方法可用于未标记的数据集,这减少了大量训练数据的手动标记。 人工神经网络是无监督异常检测技术中最好的算法之一。我们可以对大量未标记数据训练人工神经网络,以找到复杂的模式来分类异常。它可用于检测图像中的异常。 基于密度的噪声应用空间聚类是无监督异常检测技术中的另一种方法。它学习错误的模式并过度拟合数据中的趋势。它首先以无监督的方式检测异常值。它根据高点密度连续区域形成数据簇。 监督异常检测技术需要具有异常或非正常标签的标记数据。这些情况下的训练更加困难。因此,它使用具有不平衡数据的分类任务。主要目标是对数据进行分类,而不是正确搜索异常数据。仅通过对数据进行分类,我们可以获得 98% 的准确率。通常,监督技术不适用于检测异常,因为它们不会将异常与数据集分开。 用于检测异常的半监督算法使用监督和无监督数据。首先,它将在未标记的数据集上进行训练。然后,将对异常数据进行微调训练好的模型,以检测数据分布中的异常。 让我们详细了解其中一些算法。 1. DBSCAN基于密度的噪声应用空间聚类是一种聚类机器学习算法,用于在无监督的情况下对正常数据进行聚类并检测异常值。聚类后的数据点基于高密度连续区域来确定形成的簇。使用这种基于密度的聚类方法可以轻松地发现簇,因为异常值存在于任何簇之外。 并非所有点都被分配到簇。DBSCAN 使用两个参数:minPts(集群中使用的最小数据点数)和 eps(集群中需要保留的点的最小距离)。 当没有点可以访问时,算法会随机选择一个新点。它将递归地检查点以查找 eps 距离内的点。当前点在 eps 距离内的点必须属于同一簇。当获得 minPts 个点时,就会形成一个簇。一旦形成簇,就不能添加其他点,然后算法会选择其他随机的未访问点。 实施 DBSCAN 算法随机选择一个点,并沿指定路径递归移动它。它将检查落在最近邻居的 eps 距离内的点。这些点将被分配到同一簇,它将递归地遵循这些步骤并形成不同的簇。当覆盖所有点时,它将定义异常值,包括不属于任何簇的点。 对于异常检测,数据集必须干净,因为距离是算法最重要的方面。Python 在 sklearn 包下提供了实现 DBSCAN 算法的方法。DBSCAN 是 sklearn.cluster 包的一个模块。 在模型拟合和训练模型之后,检测到的异常值和簇存储在 DBSSCAN.labels 中。DBSCAN.core_sample_indices_ 函数返回分配给簇的样本索引。这些函数可以获取拟合数据中剩余的索引和异常值。 2. 支持向量机它是一种监督机器学习模型,用于分类。通过将数据投影到备用向量空间来创建子平面,从而有效地对数据进行分类。SVM 算法在异常检测方面有两类,它训练模型以最大化向量空间中不同数据组之间的间隔。SVM 也可以使用多类方法。 超出范围的点确定异常。One-class SVM 算法广泛用于检测分布中的异常。它检查数据点是否属于正常类或非二元类。它使用非线性函数,将训练数据投影到更高维空间。超平面可以分隔向量。 Python 在 sklearn 包下提供了实现 SVM 算法的方法。One-class SVM 是 sklearn.svm 包的一个模块。 3. 隔离森林模型这种用于异常检测的算法使用基于树的方法,通过无监督方法在数据上训练模型来隔离异常。它像随机森林一样随机初始化决策树,并将节点分割成不同的分支。为了检测异常,隔离森林模型需要深入到数据中,因为异常是与整个数据不同的数据点。 它跨所有决策树将异常与数据集隔离。Python 在 sklearn 包下提供了实现 Isolation Forest 算法的方法。隔离森林是 sklearn.ensemble 包的一个模块,称为 IsolationForest()。它包含不同的参数,包括 n_estimator,给出树的数量;max_samples,它构建树;以及重要的 contamination factor,它确定训练数据中异常数据的比例。确定 contamination factor 所需的异常数量很困难。这是该算法的一个主要缺点。 4. 使用自动编码器的异常检测自动编码器使用半监督方法来检测数据中的异常。自动编码器有许多需要训练的参数,这些参数需要大量数据进行调整。我们需要预训练自动编码器以教会模型了解数据以检测异常。然后,需要使用标记数据对模型进行微调,以训练模型,该模型将在学习后检测数据中的异常或异常情况。 在训练期间,自动编码器将输入数据编码为低维空间。它从数据中提取重要特征,以学习如何转换数据(以最小的错误解码数据)。自动编码器包含两个部分:编码器和解码器,分别负责降维和重构编码数据。 |
? 本文演示了如何使用 Python、VLC 模块和 Tkinter 创建一个视频媒体播放器。Tkinter 是一个流行的开源视频播放器,支持各种流媒体协议和媒体格式。通过构建一个视频播放器,您可以观看您喜欢的电影,并拥有个性化的主题和样式...
阅读 8 分钟
内存泄漏是在软件开发中一个常见且通常难以捉摸的问题,可能导致性能问题和系统不稳定。Python 通过其自动内存管理(垃圾回收)功能,与 C 或 C++ 等语言相比,通常不易发生内存泄漏。然而,...
阅读 4 分钟
Python 中有许多工具可以使程序员的生活更加轻松。yield 关键字在 Python 中就是这样一种工具。在典型的 Python 进程中,可以使用此关键字代替 return 语句。我们将介绍 yield 关键字,它在生成器函数中的用法,以及...
7 分钟阅读
基于颜色的特征用于物体检测是一种简单的方法,它利用感兴趣物体的独特颜色特性来识别其在图像或视频中的位置。该过程包括图像过滤,使用复制功能掩盖感兴趣的物体...
阅读 8 分钟
矩阵运算本身是大多数科学和工程计算的基础。在 Python 中进行矩阵操作,PYTHON 的内部库中有一个名为 NumPy 的丰富包。然而,在执行线性代数运算时,可能会出现某些错误,这些错误并非由编程错误引起,而是因为...
阅读 4 分钟
在此问题中,我们将得到一个整数数组。该数组将是 k 排序的。k 排序数组是指数组中的每个元素距离最终排序数组(目标排序数组)最多有 k 步的数组...
阅读 6 分钟
自然语言处理是一个领域,其中人类和机器可以以我们日常生活中通常使用的常规人类语言的形式进行交互。早些时候,我们习惯于用高级语言进行交流,该语言被转换为机器语言,以便...
阅读 8 分钟
使用子集的语义映射,Seaborn 库的 seaborn.relplot() 函数用于在 x-y 轴图上绘制数据集中两个变量之间的关系。例如,一个数据集具有性别、身高和年龄等多个特征。让身高和年龄……
5 分钟阅读
Python 是一种动态类型且高度适应性的编程语言。它已成为软件开发领域的中坚力量。Python 以其可读且简洁的语法而闻名,能够进行高效且复杂的编写,使其成为新手和经验丰富的程序员的完美选择。它的...
阅读 4 分钟
多线程是 Python 中的一个重要概念,它允许不同的任务在并行核心或处理器上运行。这样,使用并行 for 循环,Python 可以将工作负载分配给线程,这在执行大量操作时肯定会有所帮助。在这种情况下,...
阅读 10 分钟
我们请求您订阅我们的新闻通讯以获取最新更新。

我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India