龙空技术网

Python 数据分析实例——异常检测

昌华量化 210

前言:

当前同学们对“python信用卡欺诈有几种方法”大概比较讲究,我们都需要了解一些“python信用卡欺诈有几种方法”的相关资讯。那么小编同时在网摘上搜集了一些对于“python信用卡欺诈有几种方法””的相关资讯,希望同学们能喜欢,同学们一起来学习一下吧!

在数据挖掘中,异常检测(Anomaly Detection)是通过与大多数数据显著不同而引起怀疑的稀有项目、事件或观察的识别。通常情况下,异常项目会转化为某种问题,例如银行欺诈、结构缺陷、医疗问题或文本错误。异常也被称为异常值、新奇、噪声和偏差。

1.异常检测

所谓异常检测,就是发现与大部分对象不同的对象,其实就是发现离群点。异常检测有时也称偏差检测。异常对象是相对罕见的。

2.异常检测的应用

数据异常可以转化为各种应用领域中的重要(且常常是关键的)可操作信息。例如,计算机网络中的异常流量模式可能意味着被黑客窃取的计算机正在将敏感数据发送到未经授权的目的地;异常的MRI图像可能表明存在恶性肿瘤;信用卡交易数据的异常可能表明信用卡或身份被盗用;来自航天器传感器的异常读数可能意味着航天器某些部件的故障。

· 欺诈检测:主要通过检测异常行为来检测是否为盗刷他人信用卡。

· 入侵检测:检测入侵计算机系统的行为。

· 医疗领域:检测人的健康是否异常。

异常值检测常用于异常订单识别、风险客户预警、黄牛识别、贷款风险识别、欺诈检测、技术入侵等针对个体的分析场景。

3.常见的异常检测方法

· 基于统计:基于泊松分布、正态分布找到异常分布点。

· 基于距离:K-means。

· 基于密度:KNN、LOF(Local Outlier Factor)、隔离森林。

· 一类支持向量机(One-Class SVM)。

· 隐马尔可夫模型(HMM)。

4.新奇检测和离群检测

异常数据根据原始数据集的不同可以分为离群点检测和新奇检测。

(1)离群点检测(Outlier Detection)

大多数情况下定义的异常数据都属于离群点检测,对这些数据训练完之后,再在新的数据集中寻找异常点。

(2)新奇检测

新奇检测(Novelty Detection)是识别新的或未知数据模式和规律的检测方法,这些规律只是在已有机器学习系统的训练集中没有被发掘出来。新奇检测的前提是已知训练数据集是“纯净”的,未被真正的“噪音”数据或真实的“离群点”污染,然后针对这些数据训练完成之后再对新的数据进行训练,以寻找新奇数据的模式。

新奇检测主要应用于新的模式、主题、趋势的探索和识别,包括信号处理、计算机视觉、模式识别、智能机器人等技术方向,应用领域有潜在疾病的探索、新物种的发现、新传播主题的获取等。

新奇检测和异常检测有关,一开始的新奇点往往都以一种离群的方式出现在数据中,这种离群方式一般会被认为是离群点,因此二者的检测和识别模式非常类似。但是,当经过一段时间之后,新奇数据一旦被证实为正常模式,例如将新的疾病识别为一种普通疾病,那么新奇模式将被合并到正常模式中,就不再属于异常点的范畴。

5.处理高维数据异常检测

· 拓展现有的离群点检测模式。

· 发现子空间中的离群点。

· 对高维数据进行建模。

6.以One-Class SVM算法为例进行异常检测

One-Class SVM是一种无监督的算法,可以用来检查新的样本是否符合以前的数据分布。它有三个主要参数:

(1)Kernel(核函数)和Degree

这两个变量相关,根据经验值Kernel应为rbf,Degree应为3。

(2)Gamma

这是与rbf核相关的参数。建议这个参数设置得越低越好,通常为实例数倒数和变量数倒数之间的最小值。

(3)Nu

它决定模型是必须符合一个精确的分布,还是应该尽量保持某种标准分布而不太注重适应现有数据区间为(0,1],默认值为0.5。但在这里0.5的结果并不好,所以可以由以下公式确定:

nu_estimate=0.95*outliers_fraction+0.05

通常outliers_fraction的范围为0.02~0.1。

【例1】

输出:

异常数据为:9/100

SVM异常检测分析图如图1所示。

图1 One-Class SVM异常检测分析

标签: #python信用卡欺诈有几种方法