云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

CDN_上杭网站建设_安全稳定

小七 141 0

在一些单独的博客文章中,我们讨论了使用一类分类、聚类(DBSCAN)和统计测试等技术在具有多个特征的数据集中进行异常检测的问题。然而,当感兴趣的数据集是高维的(即包含许多特征),或者正常点和异常点之间的边界是复杂的时,上述技术就变得不太适用了。在这种情况下,更好的方法是手动标记数据集中的异常点,然后训练有监督的机器学习模型来分类正常点和异常,并通过Python机器学习客户机SAP-HANA(HANA\u-ml)使用SAP-HANA预测分析库(PAL)中的决策树算法构建异常检测的分类模型。同时,为了提高训练模型在不同角度上的性能,还涉及了几种重采样技术。

引言

使用标记数据集将异常与正常异常分离似乎与常规分类问题一样简单。然而,正态数据点和异常数据点之间的高度偏斜分布对于建立有效的分类模型是一个很大的挑战,因为在数据集中,异常通常很少被观察到,而正态性是压倒性的。例如,web云服务器,我们考虑一种患病率为0.1%的疾病,如果我们使用一个天真的模型来预测所有人都是该疾病的非患者,那么这个模型的"高"准确率为99.9%,看起来不错。然而,如果我们乐于采用这种天真的模式来检测这种疾病,云服务器设备,那么对于所有真正的患者来说,这将是一场灾难。正态和异常标签之间的分布不平衡是异常检测问题的一个典型特征,特别是当正态点和异常纠缠在数据集的特征空间中时。例如,如果我们未能发现银行账户之间的欺诈性交易,那么我们可能会有巨大的资金损失;然而,如果我们怀疑一项交易是欺诈性的,而事实证明不是真实的,我们只需支付一些实际便宜的手动验证程序。异常案例比正常案例更重要是异常检测的另一个典型特征

在这篇博文中,我们将对使用标记数据集的异常检测进行案例研究,我们的讨论将包括以下内容:

案例研究:分类检测甲状腺功能亢进

本文关注的问题是甲状腺疾病的识别。原始完整数据集可在UCI机器学习库中获得[1]。原始数据集包含21个属性,其中15个是分类属性,6个是数字属性。数据集分为3类:正态、次正态和超函数。机能亢进是这个数据集中的少数类别,但它也是我们最感兴趣的情况,因为一旦获得,它可能会加速身体的新陈代谢,带来一些症状,如无意体重减轻、心跳加快或不规则、紧张、焦虑和易怒,等

我们在这篇博文中指定的任务是区分功能亢进和非功能亢进(即正常和亚正常)的情况,只使用6个数字属性。这个目标数据集的简化版本可在赔率库[2]中找到,其中所有属性值都被缩放到范围[0,1] 使用最小-最大标量。此外,此数据集中的label列的值为0s和1s,其中1表示超函数,0表示非超函数。

让我们检查相应的数据集以便进一步分析。我们假设数据已存储在SAP HANA平台数据库中名为"PAL\u THYROID\u data\u TBL"的表中。然后可以通过使用hana\ U ml建立与数据库的连接来访问数据集,如下图所示:

然后,使用hana\ U_ml.数据帧包含数据集信息的,对该数据集的简要描述如下:

由类型列的平均值显示,功能亢进病例不到数据集中所有病例的3%,因此,数据集是高度倾斜的w.r.t.甲状腺功能类型。

现在我们分别检查功能亢进病例和非功能亢进病例。

对数据的仔细检查告诉我们,功能亢进病例和非功能亢进病例的分布在V1、V2、V3和V5等属性上有很大的不同(分位数)。因此,这些数值属性有可能区分甲状腺功能亢进和非功能亢进。

数据集的可视化是评估分类问题难度的另一种方法。由于数据集的特征空间是6维的,因此数据集的降维是必不可少的。这里采用主成分分析法将数据集从6D转换为2D,绘制数据集的散点图(不涉及类型列)。

从上图中可以看出,如何租用服务器,超功能案例的分布不同于非超功能案例(在约简属性空间中),

在建立异常检测的分类模型之前,我们首先使用hana\U ml中的train\u test\u val\u split()方法将整个数据集划分为训练和测试部分,其中训练百分比设置为0.7,测试百分比设置为0.3(无验证数据)。

测试数据集上训练模型的评估度量值在score()函数返回结果的第二个元素中可用,并且它可以收集到python客户端如下:

一些值得一提的关键统计值:

经过训练的模型的性能已经相当好了。然而,由于类在训练数据集中是不平衡的,因此平衡类计数的重采样技术有可能进一步提高分类模型的性能。我们将在随后的小节中验证这一理由。我们的第一个尝试是对少数类进行过采样,以实现训练数据中的类平衡。