五月:异常检测(task01,task02,task03)

Datawhale_五月:异常检测

2021.05.10 数据挖掘方向 异常检测
目标:希望不要半途而废

资料下载:【五月:异常检测.pdf
下半部文章:【五月:异常检测(task04,task05)

-------------------------------------


<--------感谢评论区指正,内容已更新!--------->

【task01】异常识别介绍

1 什么是异常检测

异常检测(Outlier Detection),顾名思义,是识别与正常数据不同的数据,与预期行为差异大的数据。

1.1 异常的类别

  • 本来就是异常
  • 本来是正常的 ,但个体联系上下文是异常的
  • 本来是正常的,但子集联系群体是异常的
  • 点异常(point anomalies) 指的是少数个体实例是异常的,大多数个体实例是正常的,例如正常人与病人的健康指标;
  • 条件异常(conditional anomalies) 又称上下文异常,指的是在特定情境下个体实例是异常的,在其
    他情境下都是正常的,例如在特定时间下的温度突然上升或下降,在特定场景中的快速信用卡交易;
  • 群体异常(group anomalies) 指的是在群体集合中的个体实例出现异常的情况,而该个体实例自身可
    能不是异常,在入侵或欺诈检测等应用中,离群点对应于多个数据点的序列,而不是单个数据点。例如
    社交网络中虚假账号形成的集合作为群体异常子集,但子集中的个体节点可能与真实账号一样正常。

1.2 异常检测任务分类

  • 有监督: 训练集的正例和反例均有标签
  • 无监督: 训练集无标签
  • 半监督: 在训练集中只有正例,异常实例不参与训练

1.3 特点

  • 数据量少
    异常检测任务通常情况下负样本(异常样本)是比较少的,有时候依赖于人工标签,属于
    样本不平衡问题。
  • 噪音
    异常和噪音有时候很难分清,如下图,图a的A点位于数据的稀疏区域,与其他数据非常不同,
    因此可以断定为异常,但是像图b的A点,周围有也有很多点分布,我们很难把A点识别出来。

2 异常检测方法简介

2.1 基础方法

2.1.1 基于统计学的方法

它们假定正常的数据对象由一个统计模型产生,而不遵守该模型的数据是异常点。

思想是: 学习一个拟合给定数据集的生成模型,然后识别该模型低概率区域中的对象,把它们作为异常点。

说人话就是,用个基本上都符合已知样本的模型,那么不符合这个样本的数据都是异常点

2.1.2 线性模型

通过PCA方法,对相应场景的数据进行主成分分析,降维获得特征?

典型的如PCA方法,Principle Component Analysis是主成分分析,简称PCA。它的应用场景是对数据集进行降维。降维后的数据能够最大程度地保留原始数据的特征(以数据协方差为衡量标准)。

其原理是
通过构造一个新的特征空间,把原数据映射到这个新的低维空间里。PCA可以提高数据的计算性能,并且缓解"高维灾难"。

2.1.3 基于邻近度的方法

这类算法适用于数据点的聚集程度高、离群点较少的情况。同时,因为相似度算法通常需要对每一个数据分别进行相应计算,所以这类算法通常计算量大,不太适用于数据量大、维度高的数据。

适用范围:聚集程度高、离群点较少的情况
要对每一个数据分别进行计算,不适合数据量大高维度数据。

基于相似度的检测方法大致可以分为三类

  • 基于集群(簇)的检测
    如DBSCAN等聚类算法。
    .
    聚类算法是将数据点划分为一个个相对密集的“簇”,而那些不能被归为某个簇的点,则被视作离群点。这类算法对簇个数的选择高度敏感,数量选择不当可能造成较多正常值被划为离群点或成小簇的离群点被归为正常。因此对于每一个数据集需要设置特定的参数,才可以保证聚类的效果,在数据集之间的通用性较差。聚类的主要目的通常是为了寻找成簇的数据,而将异常值和噪声一同作为无价值的数据而忽略或丢弃,在专门的异常点检测中使用较少。
    就是将数据集中的地方分几个势力范围,不是在这些范围的点那就算异常点
    .
    聚类算法的优缺点
  • 能够较好发现小簇的异常;
  • 通常⽤于簇的发现,而对异常值采取丢弃处理,对异常值的处理不够友好;
  • 产⽣的离群点集和它们的得分可能⾮常依赖所⽤的簇的个数和数据中离群点的存在性;
  • 聚类算法产⽣的簇的质量对该算法产⽣的离群点的质量影响⾮常⼤。
  • 基于距离的度量
    如k近邻算法。
    .
    k近邻算法的基本思路是对每一个点,计算其与最近k个相邻点的距离,通过距离的大小来判断它是否为离群点。在这里,离群距离大小对k的取值高度敏感。如果k太小(例如1),则少量的邻近离群点可能导致较低的离群点得分;如果k太大,则点数少于k的簇中所有的对象可能都成了离群点。为了使模型更加稳定,距离值的计算通常使用k个最近邻的平均距离。距离差的远不远
    .
  • 简单;
  • 基于邻近度的⽅法需要O(m2)时间,⼤数据集不适⽤;
  • 对参数的选择敏感;
  • 不能处理具有不同密度区域的数据集,因为它使⽤全局阈值,不能考虑这种密度的变化。
  • 基于密度的度量
    如LOF(局部离群因子)算法。
    .
    局部离群因子(LOF)算法与k近邻类似,不同的是它以相对于其邻居的局部密度偏差而不是距离来进行度量。它将相邻点之间的距离进一步转化为“邻域”,从而得到邻域中点的数量(即密度),认为密度远低于其邻居的样本为异常值。密度差的多不多
    .
  • 给出了对离群度的定量度量;
  • 能够很好地处理不同密度区域的数据;
  • 对参数的选择敏感。

2.2 集成方法

集成是提⾼数据挖掘算法精度的常⽤⽅法。
类似混合方法,集各家所长

集成⽅法将多个算法或多个基检测器的输出结合起来。其基 本思想是⼀些算法在某些⼦集上表现很好,⼀些算法在其他⼦集上表现很好,然后集成起来使得输出更 加鲁棒。集成⽅法与基于⼦空间⽅法有着天然的相似性,⼦空间与不同的点集相关,而集成⽅法使⽤基 检测器来探索不同维度的⼦集,将这些基学习器集合起来。 常⽤的集成⽅法有Feature bagging,孤⽴森林等。
feature bagging : 与bagging法类似,只是对象是feature。

孤立森林:

孤⽴森林假设我们⽤⼀个随机超平⾯来切割数据空间,切⼀次可以⽣成两个⼦空间。然后我们继续⽤随 机超平⾯来切割每个⼦空间并循环,直到每个⼦空间只有⼀个数据点为⽌。直观上来讲,那些具有⾼密 度的簇需要被切很多次才会将其分离,而那些低密度的点很快就被单独分配到⼀个⼦空间了。孤⽴森林 认为这些很快被孤⽴的点就是异常点。 ⽤四个样本做简单直观的理解,d是最早被孤⽴出来的,所以d最有可能是异常。

用四个样本做简单直观的理解,d是最早被孤立出来的,所以d最有可能是异常
在这里插入图片描述

2.3 机器学习

在有标签的情况下,可以使用树模型(gbdt,xgboost等)进行分类,缺点是异常检测场景下数据标签是不均衡的,但是利用机器学习算法的好处是可以构造不同特征。


-------------------------------------

【task02】基于统计学方法

1. 概述

统计学方法对数据的正常性做出假定。它们假定正常的数据对象由一个统计模型产生,而不遵守该模型的数据是异常点。 统计学方法的有效性高度依赖于对给定数据所做的统计模型假定是否成立。
.

异常检测的统计学方法的一般思想是:学习一个拟合给定数据集的生成模型,然后识别该模型低概率区域中的对象,把它们作为异常点。即利用统计学方法建立一个模型,然后考虑对象有多大可能符合该模型。

.
分类:

  • 参数方法

参数方法假定正常的数据对象被一个以 为参数的参数分布产生。该参数分布的概率密度函数 给出对象 被该分布产生的概率。该值越小, 越可能是异常点。

  • 非参数方法

非参数方法法并不假定先验统计模型,而是试图从输入数据确定模型。非参数方法通常假定参数的个数和性质都是灵活的,不预先确定(所以非参数方法并不是说模型是完全无参的,完全无参的情况下从数据学习模型是不可能的)

2 参数方法

2.1 基于正态分布的一元异常点检测

【载自】:https://zhuanlan.zhihu.com/p/163771511

2.1.1 核心思想

正态分布实际上是一个自然现象,很多事件都属于正态分布,比如人的身高,考试成绩,血压等。利用事物自身分布满足正态分布的特点,如果出现小概率事件(概率低于 0.5%),那么该事件被认为异常点
.
阈值是个经验值,可以选择在验证集上使得评估指标值最大(也就是效果最好)的阈值取值作为最终阈值。拿标准的正态分布来说,3个标准差(σ)覆盖的范围内,可以覆盖 99.7% 的数据,那么在 3σ 以外的数据就可以认定为异常点
在这里插入图片描述
.

2.1.2 什么样的数据符合正态分布

面上看,数据的分布直方图符合"钟形图"即是正态分布,比如:
在这里插入图片描述
但是往往我们拿到的数据,可能本身就含有杂质,比如:
在这里插入图片描述

我们仅仅通过图形观察,没有做一定处理的情况下,很难判断一个数据的分布是否属于正态分布。那么正态分布的定义又是什么?

中心极限定理:多个独立统计量的和的平均值,符合正态分布。
根据中心极限定理,如果一个事物受到多种因素的影响,不管每个因素本身是什么分布,加总后的结果的平均值就是正态分布。

这里不同的因素之间是独立,不同因素的事件分布可以不同。
在这里插入图片描述
上图中,随着统计量个数的增加,它们和的平均值越来越符合正态分布。

现实的数据分析中,我们很难从直方图上面观察数据是否符合正态分布,只能从原理上面去理解数据本质是否符合正态分布,再配合白样本进行试验,确认数据是否满足正态分布。

标准正态分布中,样本均值为 0,标准差为 1。当然现实的例子中大部分数据的均值都不是 0,标准差可能也有较大的区别。为了更好的体现不规则的数据分布,需要利用中位数作为分界点。
.

2.1.3 利用箱线图筛选异常点

箱线图小提琴图可以很好的描述数据的分布,箱线图的定义更有利于我们筛选异常点。

  • 小提琴图

在这里插入图片描述

  • 箱线图

在这里插入图片描述
箱线图一共有 6 个要素点,分别是:
.

  • q1: 1/4 分位点,1/4 分位点之前的数据占总样本概率的 25%
  • q3: 3/4 分位点, 3/4 分位点之前的数据占总样本的 75%
  • 中位数:中位数之前的数据占总样本的 50%,也是 q2
  • IQR 是分位点q1、q3 之间的距离,IQR = q3 - q1
  • 上限位:q3 + 1.5 * IQR
  • 下限位:q1 - 1.5 * IQR

标准正态分布下,上下限位外样本所占的比率为 0.7%,这个限制比 3σ 原则宽松(0.3%)。
.
小概率事件的定义是概率小于 0.5%,那么 3σ 限制下,满足。利用箱线图部分事件可能不是小概率事件,具体取多少作为分界线,不同的数据分布,可能有有不同的阈值。
.

2.2 多元异常点检测

2.2.1 各维度的特征相互独立

其核心思想是把多元异常点检测任务转换成一元异常点检测问题。例如基于正态分布的一元异常点检测扩充到多元情形时,可以求出每一维度的均值和标准差。对于第j维:
在这里插入图片描述
.
计算概率时的概率密度函数为:
在这里插入图片描述
.

2.2.2 各维度的特征有相关性:高斯分布

在这里插入图片描述
ps:当多元高斯分布模型的协方差矩阵 为对角矩阵,且对角线上的元素为各自一元高斯分布模型的方差时,二者是等价的。
.

2.3 使用混合参数分布

在许多情况下假定数据是由正态分布产生的。当实际数据很复杂时,这种假定过于简单,可以假定数据是被混合参数分布产生的。

3. 非参数方法

参数检验通常是假设总体服从正态分布,样本统计量服从T分布的基础之上,对总体分布中一些未知的参数,例如总体均值、总体方差和总体标准差等进行统计推断。如果总体的分布情况未知,同时样本容量又小,无法运用中心极限定理实施参数检验,推断总体的集中趋势和离散程度的参数情况。这时,可以用非参数检验,非参数检验对总体分布不做假设,直接从样本的分析入手推断总体的分布。
在这里插入图片描述
https://zhuanlan.zhihu.com/p/49472487
在这里插入图片描述

例子:使用直方图检测异常点。
直方图是一种频繁使用的非参数统计模型,可以用来检测异常点。该过程包括如下两步:
.
步骤1:构造直方图。 使用输入数据(训练数据)构造一个直方图。该直方图可以是一元的,或者多元的(如果输入数据是多维的)。
尽管非参数方法并不假定任何先验统计模型,但是通常确实要求用户提供参数,以便由数据学习。
.
例如,用户必须指定直方图的类型(等宽的或等深的)和其他参数(直方图中的箱数或每个箱的大小
等)。与参数方法不同,这些参数并不指定数据分布的类型。
.
步骤2:检测异常点。 为了确定一个对象是否是异常点,可以对照直方图检查它。在最简单的方法中,如果该对象落入直方图的一个箱中,则该对象被看作正常的,否则被认为是异常点。
对于更复杂的方法,可以使用直方图赋予每个对象一个异常点得分。例如令对象的异常点得分为该对象落入的箱的容积的倒数。
使用直方图作为异常点检测的非参数模型的一个缺点是,很难选择一个合适的箱尺寸。一方面,如果箱尺寸太小,则许多正常对象都会落入空的或稀疏的箱中,因而被误识别为异常点。另一方面,如果箱尺寸太大,则异常点对象可能渗入某些频繁的箱中,因而“假扮”成正常的。

4 基于角度的方法

基于角度的方法的主要思想是:数据边界上的数据很可能将整个数据包围在一个较小的角度内,而内部的数据点则可能以不同的角度围绕着他们。

如下图所示,其中点A是一个异常点,点B位于数据内部。
在这里插入图片描述
如果数据点与其余点离得较远,则潜在角度可能越小。因此,具有较小角度谱的数据点是异常值,而具有较大角度谱的数据点不是异常值。
A点包含所有点的角度较小,所以极有可能在边缘,那么被认为是异常点。

考虑三个点X,Y,Z。如果对于任意不同的点Y,Z,有:
在这里插入图片描述

其中|| || 代表L2范数 , < , >代表点积。

L0:计算非零个数, 用于产生稀疏性,但是在实际研究中很少用,因为L0范数很难优化求解,是一个NP-hard问题,因此更多情况下我们是使用L1范数
L1:计算绝对值之和, 用以产生稀疏性,因为它是L0范式的一个最优凸近似,容易优化求解
L2:计算平方和再开根号, L2范数更多是防止过拟合,并且让优化求解变得稳定很快速(这是因为加入了L2范式之后,满足了强凸)。
.
https://www.cnblogs.com/raul313/p/7742313.html

这是一个加权余弦,因为分母包含L2-范数,其通过距离的逆加权进一步减小了异常点的加权角,这也对角谱产生了影响。然后,通过改变数据点Y和Z,保持X的值不变计算所有角度的方法。相应地,数据点X的基于角度的异常分数(ABOF)∈ D为:
在这里插入图片描述
杨鸽理解:
Y,Z为数据点,不断在D中取;X也属于数据点,但保持不便,计算所有角度。

5 HBOS

  • HBOS简介

HBOS全名为:Histogram-based Outlier Score。它是一种单变量方法的组合,不能对特征之间的依赖关系进行建模,但是计算速度较快,对大数据集友好。其基本假设是数据集的每个维度相互独立。然后对每个维度进行区间(bin)划分,区间的密度越高,异常评分越低。

  • HBOS算法流程
  1. 为每个数据维度做出数据直方图。 对分类数据统计每个值的频数并计算相对频率。对数值数据根据分 布的不同采用以下两种方法:
    静态宽度直方图:标准的直方图构建方法,在值范围内使用k个等宽箱。样本落入每个桶的频率 (相对数量)作为密度(箱子高度)的估计。时间复杂度:
    .
    动态宽度直方图:首先对所有值进行排序,然后固定数量的 个连续值装进一个箱里,其中N是 总实例数,k是箱个数;直方图中的箱面积表示实例数。因为箱的宽度是由箱中第一个值和最后一个值决定的,所有箱的面积都一样,因此每一个箱的高度都是可计算的。这意味着跨度大的箱的高度低,即密度小,只有一种情况例外,超过k个数相等,此时允许在同一个箱里超过 值。 时间复杂度:O(n * log(n))
    .
  2. .对每个维度都计算了一个独立的直方图,其中每个箱子的高度表示密度的估计。然后为了使得最大高度为1(确保了每个特征与异常值得分的权重相等),对直方图进行归一化处理。最后,每一个实例的HBOS值由以下公式计算:
    在这里插入图片描述
  • 推导过程

假设样本p第 i 个特征的概率密度为 p i ( p ) p_i(p) pi(p) ,则p的概率密度可以计算为:
在这里插入图片描述
两边取对数:
在这里插入图片描述
概率密度越大,异常评分越小,为了方便评分,两边乘以“-1”:
在这里插入图片描述
最后可得:
在这里插入图片描述

一个比较好的扩展:【链接https://blog.csdn.net/qsx123432/article/details/114839297?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522162095602616780255246166%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=162095602616780255246166&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~first_rank_v2~rank_v29-6-114839297.pc_search_result_hbase_insert&utm_term=HBOS&spm=1018.2226.3001.4187

6. 总结

1.异常检测的统计学方法由数据学习模型,以区别正常的数据对象和异常点。使用统计学方法的一个优点是,异常检测可以是统计上无可非议的。当然,仅当对数据所做的统计假定满足实际约束时才为真。

2.HBOS在全局异常检测问题上表现良好,但不能检测局部异常值。但是HBOS比标准算法快得多,尤其是在大数据集上。

-------------------------------------

【task03】线性相关方法

Time: 2021.05.16

1. 引言

  • 真实数据集中不同维度的数据通常具有高度的相关性,这是因为不同的属性往往是由相同的基础过程以密切相关的方式产生的。在古典统计学中,这被称为——回归建模,一种参数化的相关性分析。
  • 一类相关性分析试图通过其他变量预测单独的属性值,另一类方法用一些潜在变量来代表整个数据。前者的代表是 线性回归,后者一个典型的例子是 主成分分析。本文将会用这两种典型的线性相关分析方法进行异常检测。

我们知道三件事:

  • 真实数据集不同维度有高度相关性,这叫回归建模
  • 通过相关性来推测单独属性值,叫线性回归
  • 通过一些变量代表整个数据,叫做主成分分析

【两个重要的假设】

假设一 :近似线性相关假设。线性相关假设是使用两种模型进行异常检测的重要理论基础。
.
假设二 :子空间假设。子空间假设认为数据是镶嵌在低维子空间中的,线性方法的目的是找到合适的低维子空间使得异常点(o)在其中区别于正常点(n)。

基于这两点假设,在异常检测的第一阶段,为了确定特定的模型是否适合特定的数据集,对数据进行探索性和可视化分析是非常关键的。

2. 线性回归

  • 我们假设不同维度的变量具有一定的相关性
  • 通过线性方程组来建模
  • 通过优化的方法,最小化模型预测值与真实数据点的误差

在线性回归中,我们假设不同维度的变量具有一定的相关性,并可以通过一个相关系数矩阵进行衡量。因此对于特定的观测值,可以通过线性方程组来建模。在实际应用中,观测值的数量往往远大于数据的维度,导致线性方程组是一个超定方程,不能直接求解。因此需要通过优化的方法,最小化模型预测值与真实数据点的误差。

  • 线性回归是通过一系列自变量去预测一个特殊因变量的值;
  • 异常值是根据其他自变量对因变量的影响来定义的,也就是异常点没有像自变量、因变量那样做相应的变化;

线性回归是统计学中一个重要的应用,这个重要的应用往往是指通过一系列自变量去预测一个特殊因变量的值。在这种情况下,异常值是根据其他自变量对因变量的影响来定义的,而自变量之间相互关系中的异常则不那么重要。这里的异常点检测主要用于数据降噪,避免异常点的出现对模型性能的影响,因而这里关注的兴趣点主要是正常值(n)。

  • 可用来降噪也可用来异常检测;
  • 异常值没有被特殊对待

而我们通常所说的异常检测中并不会对任何变量给与特殊对待,异常值的定义是基于基础数据点的
整体分布,这里我们关注的兴趣点主要是异常值(o)。广义的回归建模只是一种工具,这种工具既可以用来进行数据降噪也可以进行异常点检测。

2.1 基于自变量与因变量的线性回归

2.1.1 最小二乘法

【估计值 Y ^ \hat{Y} Y^

为了简单起见,这里我们一元线性回归为例:

(1) Y = ∑ i = 1 d a i \sum_{i=1}^{d} {a_i} i=1dai. X i X_i Xi + a d + 1 a_{d+1} ad+1

(1)式是多维一元线性回归的一般形式,是个估计值

  • Y 是预测值, 也就是线性回归的 Y ^ \hat{Y} Y^
  • 系数 a 1 , a 2 . . . a d a_1,a_2...a_d a1,a2...ad为要学习的参数
  • ∑ i = 1 d a i \sum_{i=1}^{d} {a_i} i=1dai. X i X_i Xi 是个d维的,类似于 a 1 x 1 + a 2 x 2 + . . . + a d x d a_1x_1+a_2x_2+...+a_dx_d a1x1+a2x2+...+adxd;
  • a d + 1 a_{d+1} ad+1 其实就是y=ax+b中的b,为了统一符号写成了 a d + 1 a_{d+1} ad+1

Y ^ \hat{Y} Y^的矩阵表示

假设数据共包含N个样本;
U代表N x(d+1) 的自变量矩阵,其中第 j 行为( x j 1 . . . . x j d , 1 x_{j1}....x_{jd},1 xj1....xjd,1) ;以 A 代表 (d+1) x 1 的系数矩阵 ( a 1 . . . . a d + 1 ) T (a_{1}....a_{d+1})^T a1....ad+1T。则模型可表示为:

在这里插入图片描述

  • U为d+1 不是d, 是因为 把 a d + 1 a_{d+1} ad+1看成 a d + 1 a_{d+1} ad+1*1了 这时候X多了一维1
  • f ( U , A ) = Y ^ f(U,A) = \hat{Y} f(U,A)=Y^ 和上面一回事,是估计值。

【真实值 Y Y Y

假设数据共包含N个样本,第j个样本包含的数据为 x j 1 . . . x j d x_{j1}...x_{jd} xj1...xjd y i y_i yi ,带入式 (1) 如下式所示:
在这里插入图片描述

  • 这里 ϵ j \epsilon_j ϵj为第 j个样本的误差。表示第 y i y_i yi样本的真实值。
  • Y Y Y代表 N ∗ 1 N * 1 N1的因变量,也就是N个数据的准确值矩阵 ( y 1 . . . . y N ) T (y_{1}....y_{N})^T y1....yNT

【目标函数】

L ( A ) = 1 2 ∣ ∣ Y − Y ^ ∣ ∣ = 1 2 ∣ ∣ Y − U ∗ A ∣ ∣ L(A) = \frac{1}{2} \quad ||Y- \hat{Y}||=\frac{1}{2} \quad ||Y-U*A|| L(A)=21YY^=21YUA

|| ||二阶范数,你可以理解为平方和,x=(x1,…,xn) , y=(y1,…,yn) , ||x-y||2=(y1-x1)2+…+(yn-xn)^2

目标函数是关于 的凸函数,其对 求偏导为:

在这里插入图片描述
最小二乘法要求矩阵 U T ∗ U U^T*U UTU可逆,即 U T ∗ U U^T*U UTU是满秩的。当 U T ∗ U U^T*U UTU不可逆时可以通过两种方法进行参数估计,一种先使用主成分分析等方法来预处理数据,消除不同特征之间的相关性,然后再使用最小二乘法。第二种方法是使用梯度下降法。

2.1.2 梯度下降法

  • 数据集

监督学习一般靠数据驱动。我们通常收集一系列的真实数据,
例如多栋房屋的真实售出价格和它们对应的面积房龄。我们希望在这个数据上面寻找模型参数来使模型的预测价格与真实价格的误差最小。在机器学习术语里,该数据集被称为训练数据集(training data set)或训练集(training set),通常还应该有一个用于防止过拟合的交叉验证集和一个用于评估模型性能的测试集(test set)。一栋房屋被称为一个样本(sample),其真实售出价格叫作标签(label),用来预测标签的两个因素叫作特征(feature)。

在这里插入图片描述

  • 损失函数

如果把线性回归看作是一个优化问题,那么我们要优化的目标就是损失函数。损失函数是用来衡量样本误差的函数,我们的优化目标是要求得在误差最小的情况下模型参数的值。这里强调一下损失函数和代价函数的区别:
损失函数(损失函数):单个训练样本的误差;
成本函数(代价函数):整个训练集损失函数的平均值;

【重要拓展】https://blog.csdn.net/wistonty11/article/details/116914393 链接

  • 优化算法 - 随机梯度下降

当模型和损失函数形式较为简单时,上面的误差最小化问题的解可以直接用公式表达出来。这类解叫作解析解(analytical solution)。本节使用的线性回归和平方误差刚好属于这个范畴。然而,大多数深度学习模型并没有解析解,只能通过优化算法有限次迭代模型参数来尽可能降低损失函数的值。这类解叫作数值解(numerical solution)

在求数值解的优化算法中,小批量随机梯度下降(mini-batch stochastic gradient descent)被广泛使用。它的算法很简单:先选取一组模型参数的初始值,如随机选取;接下来对参数进行多次迭代,使每次迭代都可能降低损失函数的值。在每次迭代中,先随机均匀采样一个由固定数目训练数据样本所组成的小批量(mini-batch),然后求小批量中数据样本的平均损失和有关模型参数的导数(梯度),最后用此结果与预先设定的学习率的乘积作为模型参数在本次迭代的减小量。如下式所示:
.在这里插入图片描述
学习率( η \eta η): 代表在每次优化中,能够学习的步长的大小
批量大小( B B B): 是小批量计算中的批量大小batch size

【重要例子】
https://blog.csdn.net/wistonty11/article/details/115719169 链接

2.2 基于异常检测的线性回归

  • UA,应该就是本文2.1.1提到的 Y ^ \hat{Y} Y^的矩阵表示
  • Y ^ \hat{Y} Y^是通过走模型走出来的,跟真实值有偏差所以是个估计值
  • U是自变量矩阵( X 1 . . . X d , 1 X_1...X_d,1 X1...Xd,1),A是系数矩阵( a 1 . . . a d + 1 a_1...a_{d+1} a1...ad+1)

前一节讨论了这样一种情况:即一个特定的变量被认为是特殊的,最优平面是通过最小化该特殊变量的均方误差而确定的。而我们通常所说的异常检测中并不会对任何变量给与特殊对待,异常值的定义是基于基础数据点的整体分布,因此需要采用一种更一般的回归建模:即以相似的方式对待所有变量,通过最小化数据对该平面的投影误差确定最佳回归平面。在这种情况下,假设我们有一组变量 X 1 . . . X d X_1...X_d X1...Xd, 对应的回归平面如下:
.
在这里插入图片描述
为了后续计算的方便,对参数进行如下约束:
在这里插入图片描述
以 范数作为目标函数:
在这里插入图片描述
这样的一个问题可以通过主成分分析方法得到有效解决,我们会单独用一个部分进行讨论。

3. 主要成分分析

上一节的最小二乘法试图找到一个与数据具有最佳匹配 (d-1)维超平面。 主成分分析方法可用于 解决这一问题的广义版本。具体来说,它可以找到任意 k(k < d)维 的最优表示超平面,从而使平方投 影误差最小化。

3.1 原理推导

【主要成分分析文章推荐】
https://www.zhihu.com/question/41120789/answer/481966094 链接
https://zhuanlan.zhihu.com/p/44453206 链接

我认为值得关注的点:

  • 中心化 处理的原因是,这些数字后继会参与统计运算,处理后不会太影响计算结果并且可以减小运算负担;
  • C o v ( X , Y ) Cov(X,Y) Cov(X,Y)3.3 协方差
  • 一维情况

某一点坐标, a = ( x y ) a = \begin{pmatrix} x \\ y \\ \end{pmatrix} a=(xy) 它表示在该坐标轴下标准正交 e 1 , e 2 e_1,e_2 e1,e2 的现象组合:
a = ( x y ) = x e 1 + y e 2 a = \begin{pmatrix} x \\ y \\ \end{pmatrix} =xe_1+ye_2 a=(xy)=xe1+ye2在不同坐标轴下,x,y值会不同,但和坐标原点距离d会不变。 d 2 = x 2 + y 2 d^2= x^2 + y^2 d2=x2+y2
在这里插入图片描述

  • 二维情况

在这里插入图片描述
在这里插入图片描述
和一维的一样,当坐标轴开始转动的时候,那么他的 X 1 , X 2 X_1,X_2 X1,X2也转动着
在这里插入图片描述
这 时 候 e 1 也 不 是 ( 1 , 0 ) T , e 2 也 不 是 ( 0 , 1 ) T , 都 变 化 了 。 坐 标 轴 我 们 用 这时候e_1也不是(1,0)^T,e_2也不是(0,1)^T,都变化了。坐标轴我们用 e110T,e201T,
.在这里插入图片描述
那么a,b两点到 e 2 e_2 e2轴坐标分别为 X 1 X_1 X1 X 2 X_2 X2, 此时的表示
在这里插入图片描述
我们目的是降维,方法就是让它落到一个坐标是,此时当e2坐标和最大时,那么e1和就最小,就认为落到了一个坐标上。
我们目标函数
在这里插入图片描述
那么 这个东西就是个二次型,而且这个形式一定能转换成对角矩阵
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
【协方差】在这里插入图片描述

【例子】
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

【奇异值分解SVD】 https://zhuanlan.zhihu.com/p/29846048 链接

【回归本教材PDF】

在许多涉及高维数据集的真实场景中,很大一部分特征值往往非常接近于零。这意味着大多数数据都沿着一个低维的子空间排列。从异常检测的角度来看,这是非常方便的,因为离这些投影方向非常远的观测值可以被假定为离群值。

例如,对于特征值较小(方差较小)的特征向量j,第i条记录的 y i j y_{ij} yij与k的 y k j y_{kj} ykj其他值的偏差较大,说明有离群行为。这是因为当 固定而 变化时, 的值应当变化不大。因此, 值是不常见的。

在不选取任何特定的 维集合的情况下,一种更精确的异常检测建模方法是使用特征值来计算数据点沿每个主分量方向到质心的归一化距离。设 为第 个特征向量, 为沿该方向的方差(特征值)。数据点 相对于对数据质心 的总体归一化异常得分可以由下式给出:

在这里插入图片描述

得注意的是,对异常得分的大部分贡献是由 入 j 入_j j值较小的主成分的偏差提供的,这一点上文中有提及过。主成分分析比因变量回归能更稳定地处理少数异常值的存在。这是因为主成分分析是根据最优超平面来计算误差的,而不是一个特定的变量。当数据中加入更多的离群点时,最优超平面的变化通常不会大到影响离群点的选择。因此,这种方法更有可能选择正确的异常值,因为回归模型一开始就更准确

3.2 归一化问题

当不同维度的尺度差别较大时,使用PCA有时并不能得到直观有效的结果。例如,考虑一个包含年龄和工资等属性的人口统计数据集。工资属性的范围可能是几万,而年龄属性几乎总是小于100,使用主成分分析会导致主成分被高方差属性所控制。对于一个只包含年龄和工资的二维数据集,最大的特征向量几乎与工资轴平行,这会降低异常点检测过程的有效性。因此,一个自然的解决方案是对数据进行均值为0方差为1的标准化处理。这隐含地导致在主成分分析中使用相关矩阵而不是协方差矩阵。当然,这个问题并不是线性建模所独有的,对于大多数异常检测算法,都需要使用这样的预处理。

4. 回归分析的局限性

回归分析作为检测离群值的工具有一些局限性。这些缺点中最重要的是在本章的一开始就讨论了,其中探讨了回归分析的数据特定性质。特别是,为了使回归分析技术有效,数据需要高度相关,并沿着低维子空间对齐。当数据不相关,但在某些区域高度聚集时,这种方法可能不会有效。

另一个相关的问题是,数据中的相关性在本质上可能不是全局性的。子空间相关性可能是特定于数据的特定位置的。在这种情况下,由主成分分析发现的全局子空间对于异常检测是次优的。因此,为了创建更一般的局部子空间模型,有时将线性模型与邻近模型结合起来是有用的。

5 总结

前面查太多后面没劲儿看了:归一化,回归分析的局限性,后面补上

真实数据中,数据不同属性之间往往具有显著的相关性。在这种情况下,线性建模可以提供一种有效的工具来从底层数据中移除异常值或者进行异常检测。对于其他基于因变量回归的应用,线性建模是一种工具,去除异常值对于提高此类应用的性能是非常重要的。在大多数情况下,主成分分析提供了去除异常值和进行异常检测最有效的方法,因为它对存在少数异常值的数据更有鲁棒性。

下半部分文章:https://blog.csdn.net/wistonty11/article/details/115841687

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

羊老羊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值