集成学习用于异常检测

深入研究隔离森林模型以检测时间序列数据中的异常异常检测是任何组织必备的功能。通过检测异常和离群值,我们不仅可以识别看似可疑(或可能错误)的数据,还可以确定“正常”数据是什么样子。异常检测可以识别数据错误,从而成为强大数据治理系统的重要功能。对于分析而言,异常值在某些情况下(例如欺诈检测和预测性维护)可能是一个关注点。然而,随着数据的增长,异常检测会变得越来越困难。高维数据带有噪声,难以用于分析和洞察。大型数据集也可能存在错误和/或特殊情况。值得庆幸的是,集成学习带来了速度和效率,帮助我们处理高维数据并检测异常。什么是集成学习?集成学习是一种机器学习技术,它结合了多个单独模型的预测,以获得比任何单个模型更好的预测性能。每个模型都被视为“弱学习器”,并在一小部分数据上进行训练以做出预测。然后进行投票。对每个弱学习器进行调查,多数票将获胜,作为最终预测。图片来自 Wikimedia Commons (https://commons.wikimedia.org/wiki/File:Random_forest_explain.png)集成模型(在高质量数据上训练)稳健、准确、高效,并且

来源:走向数据科学

在时间序列数据中检测异常

让我们使用一个简单的示例使用隔离森林模型来检测时间序列数据中的异常。下面,我们进口了一个销售数据集,其中包含订单的当天,有关产品的信息,有关客户的地理信息以及销售金额。为了使这个示例简单,让我们看看一项功能(销售)随着时间的流逝。

请参阅此处:https://www.kaggle.com/datasets/rohitsahoo/sales-forecasting(gpl 2.0)

请参阅此处的数据: https://www.kaggle.com/datasets/rohitsahoo/sales-forecasting (GPL 2.0)
#packages用于数据manipulationImport pandas作为pdtotime导入dateTime#dateTime#for sklearn.semble incort import import import import import import in simalationforest#for data Visutionization visualizationImport matplotlib.pyppyppyplot as plt
#Import Sales DataSales = pd.read_excel(“ data/sales data data.xlsx”)#子集到日期和salesrevenue = sales = sales [['订单日期','sales']]
作者的图像

您可以在上面看到,我们在特定日期的每个订单中都有总销售金额。由于我们有足够的数据(价值4年),因此让我们尝试检测总销售额明显高于或低于预期的总销售额的月份。

首先,我们需要进行一些预处理,并将每个月的销售量总结。然后,可视化每月销售。

#format the order date to datetime month and yearrevenue['Order Date'] = pd.to_datetime(revenue['Order Date'],format='%Y-%m').dt.to_period('M')#sum sales by month and yearrevenue = revenue.groupby(revenue['Order Date']).sum()#set date as indexrevenue.index = Revenue.Index.Strftime('%m-%y')
#设置Fig sizeplt.figure(figsize =(8,5))#创建线Chartplt.plot(收入['订单日期'],收入['sales'])#添加标签和titleplt.xlabel('moth'moth'' visibilityplt.xticks(旋转= 90)#display the Chartplt.show()
  • n_estimators:集合中的基本估计器数量。
  • n_estimators