51Testing软件测试论坛
标题:
使用Python+Pycaret进行异常检测(上)
[打印本页]
作者:
lsekfe
时间:
2021-8-31 09:55
标题:
使用Python+Pycaret进行异常检测(上)
异常检测提供了在数据中发现模式、偏差和异常的途径,这些模式、偏差和异常不限于模型的标准行为。随着数据呈指数级增长,分析数据并得出形成重要业务决策基础的见解已成为一种普遍趋势。我们不仅需要分析数据,还需要准确地解释数据。找出异常并确定异常行为可以让我们找到最佳解决方案。
为什么是 PyCaret?
PyCaret是一个开源、低代码的 Python 机器学习库,支持多种功能,例如在几行代码中就可以为部署建模的数据准备。
PyCaret 提供了一些的功能包括:
它是一个灵活的低代码库,可以提高生产力,从而节省时间和精力。
PyCaret 是一个简单易用的机器学习库,使我们能够在几分钟内执行 ML 任务。
PyCaret 库允许自动化机器学习步骤,例如数据转换、准备、超参数调整和标准模型比较。
PyCaret 安装
在你的 jupyter notebook 中安装最新版本的 Pycaret 并开始使用!
pip3 install pycaret
复制代码
导入必要的库
首先,导入整个项目所需的必要库。
import matplotlib.pyplot as plt
import seaborn as sns
import pandas as pd
import numpy as np
复制代码
导入数据集
from pycaret.datasets import get_data
all_datasets = get_data(‘index’)
现在我们可以看到所有列出的具有默认机器学习任务的数据集。
[attach]134138[/attach]
我们只需要访问通过get_data()函数可以获得的异常数据。
df = get_data(‘anomaly’)
df.head()
复制代码
[attach]134139[/attach]
探索和描述此数据集以查找缺失值并获得统计分布。
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图:
[attach]134140[/attach]
箱形图
通过箱形图可视化数据集,这让我们清楚地了解大部分数据所在的位置。
sns.boxplot(x="variable", y="value", data=pd.melt(df))
plt.show()
复制代码
这些图将帮助我们感知我们的模型是否能够跟踪它们。
[attach]134141[/attach]
散点图
我们可以通过散点图确定两个特征之间的线性关系。此处明确定义了Col1和Col2之间的关系。
sns.scatterplot(data=df, x="Col1", y='Col2')
复制代码
[attach]134142[/attach]
我们也可以尝试不同的特征。探索各种特征如何相互关联。
sns.scatterplot(data=df, x="Col3", y='Col4')
复制代码
[attach]134143[/attach]
这些图表明数据之间没有线性关系。现在让我们使用 Seaborn 成对分析所有特征之间的关系。
sns.pairplot(df)
复制代码
[attach]134144[/attach]
该成对图确定了不同列之间的关系以及它们如何与直方图一起以多种方式区分值。
通过这种方式,我们可以为我们的模型解释多个维度的边界。
df1 = df.melt(‘Col1’, var_name=’cols’, value_name=’vals’)
g = sns.factorplot(x=”Col1", y=”vals”, hue=’cols’, data=df1)
复制代码
[attach]134145[/attach]
欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/)
Powered by Discuz! X3.2