| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> Python知识库 -> 使用Python+Pycaret进行异常检测 -> 正文阅读 |
|
[Python知识库]使用Python+Pycaret进行异常检测 |
异常检测提供了在数据中发现模式、偏差和异常的途径,这些模式、偏差和异常不限于模型的标准行为。随着数据呈指数级增长,分析数据并得出形成重要业务决策基础的见解已成为一种普遍趋势。我们不仅需要分析数据,还需要准确地解释数据。找出异常并确定异常行为可以让我们找到最佳解决方案。 为什么是 PyCaret? PyCaret是一个开源、低代码的?Python?机器学习库,支持多种功能,例如在几行代码中就可以为部署建模的数据准备。 PyCaret 提供了一些的功能包括: 它是一个灵活的低代码库,可以提高生产力,从而节省时间和精力。 PyCaret 是一个简单易用的机器学习库,使我们能够在几分钟内执行 ML 任务。 PyCaret 库允许自动化机器学习步骤,例如数据转换、准备、超参数调整和标准模型比较。 PyCaret 安装 在你的 jupyter notebook 中安装最新版本的 Pycaret 并开始使用!
导入必要的库 首先,导入整个项目所需的必要库。
? 我们只需要访问通过get_data()函数可以获得的异常数据。
探索和描述此数据集以查找缺失值并获得统计分布。 df.describe() df.info() 探索性异常检测分析: 现在我们可以使用各种可视化方法来解释数据集中的异常值和异常。 Swarm 图 使用melt()函数获取数据集的Swarm图。 plt.rcParams["figure.figsize"] = (10,8) sns.swarmplot(x="variable", y="value", data=pd.melt(df)) plt.show() 这是我们所有列的Swarm图: 箱形图 通过箱形图可视化数据集,这让我们清楚地了解大部分数据所在的位置。 sns.boxplot(x="variable", y="value", data=pd.melt(df)) plt.show() 这些图将帮助我们感知我们的模型是否能够跟踪它们。 散点图 我们可以通过散点图确定两个特征之间的线性关系。此处明确定义了Col1和Col2之间的关系。 ? ? ? 我们也可以尝试不同的特征。探索各种特征如何相互关联。 sns.scatterplot(data=df, x="Col3", y='Col4') ? ? ? 异常检测 为异常检测设置 PyCaret 环境。为此,我们可以使用 Pycaret 的异常检测模块,这是一个无监督的机器学习模块,用于识别数据中可能导致异常情况的异常值。
? 指定会话 id,这会导致执行后进行处理。它会自动解释多种类型的变量,并允许我们通过按ENTER进行确认。观察我们的数据集由 10 个特征组成,每个特征 1000 行。我们可以执行各种插补——数字和分类或归一化数据。但是我们不需要在我们的数据集中进行这样的转换,所以让我们继续! 模型创建 从模型库中选择最佳模型并创建用于异常检测的模型。我们可以使用**model()**函数显示模型列表。 ? 我们可以看到列出了许多流行的算法,例如隔离森林和 k 最近邻。 隔离森林 使用create_model()函数创建隔离森林模型。隔离森林算法通过随机选择一个特征,然后随机选择最大值和最小值之间的分割值来区分观察。 iforest = create_model('iforest') print(iforest) 因此,异常分数被确定为分离给定观察所需的条件数量。 局部异常因子 它是一种无监督异常检测方法的算法,计算数据点相对于其邻居的局部密度偏差。 lof = create_model('lof') print(lof) K最近邻 KNN 是一种非参数惰性学习算法,用于根据相似性和各种距离度量对数据进行分类。它提供了一种简单而可靠的方法来检测异常。 knn = create_model('knn') print(knn)neighbours 比较模型中的异常 继续我们的任务,我们现在可以观察模型确定的异常情况。传统上,我们必须手动设置不同的参数。但是通过使用 PyCaret,我们可以通过分配的模型函数来分配结果。我们将从隔离森林模型开始。 iforest_results = assign_model(iforest) iforest_results.head() assign_model()函数返回一个检测异常的数据帧,异常值的存在标记为 1,非异常值标记为 0,以及异常分数。 ? ?比较上述模型我们可以看到,隔离森林已经将第二行视为异常,但局部异常因子并未将其视为异常。但不同算法的异常得分不同。对于 k 个最近邻,预测分数与隔离森林的预测分数非常相似。 ? ?同样,检查LOF和KNN,我们可以看到它们都考虑了50个异常。必须使用不同的计算方法来查找异常值。 根据以上结果,我们可以得出结论,1000 个异常中最有可能有 50 个。验证的一种方法是分析它们中的哪一个更适合于对模型标记为离群值的数据进行分析,并比较它们对测试数据的影响,或者进行分析,看看它们是否位于决策边界内。 解释和可视化 可视化是以创造性和独立的方式解释手头信息的最便捷方式。让我们首先从 PyCaret 库外部创建视觉效果,这将突出 PyCaret 库的好处,并使我们能够了解plot_model函数如何更具交互性。 ? ? ? ? ?需要的可以关注gzh【清零0】 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/15 22:19:16- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |