51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 2094|回复: 0
打印 上一主题 下一主题

使用Python+Pycaret进行异常检测(上)

[复制链接]
  • TA的每日心情
    无聊
    12 小时前
  • 签到天数: 1050 天

    连续签到: 1 天

    [LV.10]测试总司令

    跳转到指定楼层
    1#
    发表于 2021-8-31 09:55:54 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
     异常检测提供了在数据中发现模式、偏差和异常的途径,这些模式、偏差和异常不限于模型的标准行为。随着数据呈指数级增长,分析数据并得出形成重要业务决策基础的见解已成为一种普遍趋势。我们不仅需要分析数据,还需要准确地解释数据。找出异常并确定异常行为可以让我们找到最佳解决方案。
      为什么是 PyCaret?
      PyCaret是一个开源、低代码的 Python 机器学习库,支持多种功能,例如在几行代码中就可以为部署建模的数据准备。
      PyCaret 提供了一些的功能包括:
      它是一个灵活的低代码库,可以提高生产力,从而节省时间和精力。
      PyCaret 是一个简单易用的机器学习库,使我们能够在几分钟内执行 ML 任务。
      PyCaret 库允许自动化机器学习步骤,例如数据转换、准备、超参数调整和标准模型比较。
      PyCaret 安装
      在你的 jupyter notebook 中安装最新版本的 Pycaret 并开始使用!
    1.  pip3 install pycaret
    复制代码
    导入必要的库
      首先,导入整个项目所需的必要库。
    1. import matplotlib.pyplot as plt
    2.   import seaborn as sns
    3.   import pandas as pd
    4.   import numpy as np
    复制代码
    导入数据集

    from pycaret.datasets import get_data
      all_datasets = get_data(‘index’)

    现在我们可以看到所有列出的具有默认机器学习任务的数据集。


    我们只需要访问通过get_data()函数可以获得的异常数据。
    1. df = get_data(‘anomaly’)
    2.   df.head()
    复制代码

    探索和描述此数据集以查找缺失值并获得统计分布。
    1.  df.describe()
    2.   df.info()
    复制代码
    探索性异常检测分析:
      现在我们可以使用各种可视化方法来解释数据集中的异常值和异常。
      Swarm 图
      使用melt()函数获取数据集的Swarm图。
    1.  plt.rcParams["figure.figsize"] = (10,8)
    2.   sns.swarmplot(x="variable", y="value", data=pd.melt(df))
    3.   plt.show()
    复制代码
    这是我们所有列的Swarm图:


    箱形图
      通过箱形图可视化数据集,这让我们清楚地了解大部分数据所在的位置。
    1.  sns.boxplot(x="variable", y="value", data=pd.melt(df))
    2.   plt.show()
    复制代码
    这些图将帮助我们感知我们的模型是否能够跟踪它们。

    散点图
      我们可以通过散点图确定两个特征之间的线性关系。此处明确定义了Col1和Col2之间的关系。
    1. sns.scatterplot(data=df, x="Col1", y='Col2')
    复制代码

    我们也可以尝试不同的特征。探索各种特征如何相互关联。
    1. sns.scatterplot(data=df, x="Col3", y='Col4')
    复制代码

    这些图表明数据之间没有线性关系。现在让我们使用 Seaborn 成对分析所有特征之间的关系。
    1. sns.pairplot(df)
    复制代码

    该成对图确定了不同列之间的关系以及它们如何与直方图一起以多种方式区分值。
      通过这种方式,我们可以为我们的模型解释多个维度的边界。
    1. df1 = df.melt(‘Col1’, var_name=’cols’, value_name=’vals’)
    2.   g = sns.factorplot(x=”Col1", y=”vals”, hue=’cols’, data=df1)
    复制代码







    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

    x
    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏1
    回复

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-11-21 21:42 , Processed in 0.059141 second(s), 24 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表