线性模型

真实数据集中不同维度的数据通常具有⾼度的相关性,这是因为不同的属性往往是由相同的基础过程以密切相关的⽅式产⽣的。在古典统计学中,这被称为——回归建模,⼀种参数化的相关性分析。⼀类相关性分析试图通过其他变量预测单独的属性值,另⼀类⽅法⽤⼀些潜在变量来代表整个数据。前者的代表是 线性回归,后者⼀个典型的例⼦是 主成分分析。本⽂将会⽤这两种典型的线性相关分析⽅法进⾏异常检测。需要明确的是,这⾥有两个重要的假设:

假设⼀:近似线性相关假设。线性相关假设是使⽤两种模型进⾏异常检测的重要理论基础。

假设⼆:⼦空间假设。⼦空间假设认为数据是镶嵌在低维⼦空间中的,线性⽅法的⽬的是找到合适的低维⼦空间使得异常点(o)在其中区别于正常点(n)。






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

pairplot主要的参数及其用法 https://zhuanlan.zhihu.com/p/98729226

kind:用于控制非对角线上的图的类型,可选"scatter"与"reg"

diag_kind:控制对角线上的图的类型,可选"hist"与"kde"

https://blog.csdn.net/weixin_42398658/article/details/82960379

https://www.cnblogs.com/bonelee/p/7849867.html

https://blog.csdn.net/qq_23534759/article/details/80457557

https://blog.csdn.net/qiu931110/article/details/68130199



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

线性回归是统计学中⼀个重要的应⽤,这个重要的应⽤往往是指通过⼀系列⾃变量去预测⼀个特殊因变量的值。在这种情况下,异常值是根据其他⾃变量对因变量的影响来定义的,而⾃变量之间相互关系中的异常则不那么重要。这⾥的异常点检测主要⽤于数据降噪,避免异常点的出现对模型性能的影响,因而这⾥关注的兴趣点主要是正常值(n)。而我们通常所说的异常检测中并不会对任何变量给与特殊对待,异常值的定义是基于基础数据点的整体分布,这⾥我们关注的兴趣点主要是异常值(o)。⼴义的回归建模只是⼀种⼯具,这种⼯具既可以⽤来进⾏数据降噪也可以进⾏异常点检测。

基于⾃变量与因变量的线性回归

最小⼆乘法

梯度下降法

监督学习⼀般靠数据驱动。我们通常收集⼀系列的真实数据,例如多栋房屋的真实售出价格和它们

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

损失函数

如果把线性回归看作是⼀个优化问题,那么我们要优化的⽬标就是损失函数。损失函数是⽤来衡量

样本误差的函数,我们的优化⽬标是要求得在误差最小的情况下模型参数的值。这⾥强调⼀下损失函数和代价函数的区别:

注意:

Loss Function(损失函数):the error for single training example;

Cost Function(代价函数):the average of the loss functions of the entire training set;

当模型和损失函数形式较为简单时,上⾯的误差最小化问题的解可以直接⽤公式表达出来。这类解

叫作解析解(analytical solution)。本节使⽤的线性回归和平⽅误差刚好属于这个范畴。然而,⼤多数深度学习模型并没有解析解,只能通过优化算法有限次迭代模型参数来尽可能降低损失函数的值。这类解叫作数值解(numerical solution)。

在求数值解的优化算法中,小批量随机梯度下降(mini-batch stochastic gradient descent)被⼴泛使⽤。它的算法很简单:先选取⼀组模型参数的初始值,如随机选取;接下来对参数进⾏多次迭代,使每次迭代都可能降低损失函数的值。在每次迭代中,先随机均匀采样⼀个由固定数⽬训练数据样本所组成的小批量(mini-batch),然后求小批量中数据样本的平均损失和有关模型参数的导数(梯度),最后⽤此结果与预先设定的学习率的乘积作为模型参数在本次迭代的减小量。

基于异常检测的线性回归

前⼀节讨论了这样⼀种情况:即⼀个特定的变量被认为是特殊的,最优平⾯是通过最小化该特殊变量的均⽅误差而确定的。而我们通常所说的异常检测中并不会对任何变量给与特殊对待,异常值的定义是基于基础数据点的整体分布,因此需要采⽤⼀种更⼀般的回归建模:即以相似的⽅式对待所有变量,通过最小化数据对该平⾯的投影误差确定最佳回归平⾯。

主成分分析

归⼀化问题

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

回归分析的局限性

回归分析作为检测离群值的⼯具有⼀些局限性。这些缺点中最重要的是在本章的⼀开始就讨论了,

其中探讨了回归分析的数据特定性质。特别是,为了使回归分析技术有效,数据需要⾼度相关,并沿着低维⼦空间对⻬。当数据不相关,但在某些区域⾼度聚集时,这种⽅法可能不会有效。另⼀个相关的问题是,数据中的相关性在本质上可能不是全局性的。最近的⼀些分析观察[1]表明,⼦空间相关性是特定于数据的特定位置的。在这种情况下,由主成分分析发现的全局⼦空间对于异常检测是次优的。因此,为了创建更⼀般的局部⼦空间模型,有时将线性模型与邻近模型(在后续章节中讨论)结合起来是有⽤的。这将是⾼维和⼦空间异常检测的主题

使⽤pyod库⽣成example并使⽤该库的pca模块进⾏检测



你可能感兴趣的:(线性模型)