【Datawhale第25期组队学习】Task03:基于线性模型的异常检测
Taks03 基于线性模型的异常检测
文章目录
- Taks03 基于线性模型的异常检测
- 0 写在前面
- 1 概述
- 2 线性回归
- 2.1 基于自变量与因变量的线性回归
- 2.1.1梯度下降法优化目标函数
- 2.1.2最小二乘法的正规方程法优化目标函数
- 2.1.3 两种方法的比较
- 2.2 基于异常检测的线性回归
- 3 主成分分析1
- 3.1 原理推导
- 3.2 归一化问题
- 3.3 PCA算法实现
- 4 总结
- 5 参考资料
0 写在前面
上一个博客中,我们讨论了基于统计学的异常检测算法,其中还通过pyod库展示了两个demo,分别是一元正态分布的例子和HBOS的例子。在这篇博客中,我们将会讨论另一个类别的异常检测算法–基于线性模型的异常检测。
1 概述
在基于线性模型的异常检测中,常常可以通过训练出一个线性分类器来检测新的样本点是否为异常样本。如下图:
在这个图片中,通过输入训练样本集的特征矩阵X,学习一个分类器c(x)c(x)c(x),等到新的样本来临时,通过将c(x)c(x)c(x)的值与阈值λ\lambdaλ进行比较。
熟悉机器学习的同学们,是不是觉得上述模型很像 用逻辑回归做二分类问题呢?
真实数据集中不同维度的数据通常具有高度的相关性,这是因为不同的属性往往是由相同的基础过程以密切相关的方式产生的。在古典统计学中,这被称为——回归建模,一种参数化的相关性分析。
一类相关性分析试图通过其他变量预测单独的属性值,另一类方法用一些潜在变量来代表整个数据。前者的代表是 线性回归,后者一个典型的例子是 主成分分析。本文将会用这两种典型的线性相关分析方法进行异常检测。
需要明确的是,这里有两个重要的假设:
假设一:近似线性相关假设。线性相关假设是使用两种模型进行异常检测的重要理论基础。
假设二:子空间假设。子空间假设认为数据是镶嵌在低维子空间中的,线性方法的目的是找到合适的低维子空间使得异常点(o)在其中区别于正常点(n)。
基于这两点假设,在异常检测的第一阶段,为了确定特定的模型是否适合特定的数据集,对数据进行探索性和可视化分析是非常关键的。
2 线性回归
在线性回归中,我们假设不同维度的变量具有一定的相关性,并可以通过一个相关系数矩阵进行衡量。因此对于特定的观测值,可以通过线性方程组来建模。在实际应用中,观测值的数量往往远大于数据的维度,导致线性方程组是一个超定方程,不能直接求解。因此需要通过优化的方法,最小化模型预测值与真实数据点的误差。
这里先回顾一下线性回归模型,这里参考一下吴恩达老师的机器学习,感谢中科院黄海广博士对吴恩达老师机器学习课程的学习笔记。
让我们通过一个例子来开始:这个例子是预测住房价格的,我们要使用一个数据集,数 据集包含俄勒冈州波特兰市的住房价格。在这里,我要根据不同房屋尺寸所售出的价格,画 出我的数据集。比方说,如果你朋友的房子是 1250 平方尺大小,你要告诉他们这房子能卖 多少钱。那么,你可以做的一件事就是构建一个模型,也许是条直线,从这个数据模型上来 看,也许你可以告诉你的朋友,他能以大约 220000(美元)左右的价格卖掉这个房子。这就是回归算法的一个例子。
再形式化一些:
以之前的房屋交易问题为例,假使我们回归问题的训练集(Training Set)如下表所示:
我们可以看到这里有我们的训练集里房屋价格 我们把它喂给我们的学习算法,学习算法的工作了,然后输出一个函数,通常表示为小写 ℎ 表示。ℎ 代表 hypothesis(假设),ℎ表示一个函数,输入是房屋尺寸大小,就像你朋友想出售 的房屋,因此 ℎ 根据输入的
【Datawhale第25期组队学习】Task03:基于线性模型的异常检测相关推荐
- Datawhale第五期组队学习团队成员
第五期组队学习团队成员 组队学习 负责人 评优助教 星球星主 初级算法梳理 Danny 梁乾明 黑桃 高级算法梳理 居居 路建飞 黑桃 编程 LeoLRH 鲁力 黑桃 统计学 谷勇杰 ben 黑桃 L ...
- Datawhale第四期组队学习团队成员
第四期组队学习团队成员 集训 负责人 评优助教 基础算法梳理 Sm1les 钱令武 高级算法梳理 于鸿飞 小雪 ML项目实践 杨冰楠 孙涛 编程 孙超 小熊 统计学 李奇锋 蓝昔 Leetcode 老 ...
- 转发:Datawhale第七期组队学习计划
编者注:Datawhale是一个公益组织,也是AiUnion的四个成员之一,所有学习计划是免费的. 第7期Datawhale组队学习计划 马上就要开始啦 这次共组织15个组队学习 涵盖了AI领域从理论 ...
- DataWhale第21期组队学习自然语言处理实践(知识图谱)task4— 用户输入->知识库的查询语句
参考来源:https://github.com/datawhalechina/team-learning-nlp/blob/master/KnowledgeGraph_Basic/task04.md# ...
- Datawhale第23期组队学习—深度学习推荐系统—task5 DIN
DIN 1. 背景 2. 模型原理 2.1 特征表示 2.2 模型原理 3. 代码实现 参考来源: https://github.com/datawhalechina/team-learning-rs ...
- Datawhale第13期组队学习笔记Task3
CNN CNN是一种层次模型,输入的是原始的像素数据.CNN通过卷积(convolution).池化(pooling).非线性激活函数(non-linear activation function)和 ...
- Datawhale第32期组队学习——task0:新闻推荐系统项目搭建:centos下前端配置
文章目录 0.解决npm命令语法不正确问题 0.1 powershell报错 0.2 win10家庭版升级 nodejs 1.1 centos安装nodejs 1.2 win10安装nodejs 2. ...
- Data Whale第20期组队学习 Pandas学习—缺失数据
Data Whale第20期组队学习 Pandas学习-缺失数据 一.缺失值的统计和删除 1.1 统计缺失信息 1.2 删除缺失信息 二.缺失值的填充和插值 2.1 利用fillna进行填充 2.2 ...
- Data Whale第20期组队学习 Pandas学习—时序数据
Data Whale第20期组队学习 Pandas学习-时序数据 一.时序中的基本对象 二.时间戳 2.1 Timestamp的构造与属性 2.2 Datetime序列的生成 2.3 dt对象 2.4 ...
最新文章
- DiscuzNT改造-远程内容自动采集-DNT2.5(定时采集、源码下载)
- 多生产者多消费者问题
- pandas处理大数据的一些小技巧
- Pyhton 一行代码求Fibonacci第N项
- UWP x:bind
- 我的编程能力从什么时候开始突飞猛进
- javascript --- vue中简单的模板渲染
- lm opencv 算法_OpenCV进行图像相似度对比的几种办法
- 如何在XSLT中将字符串转换为大写或小写形式
- vue获取接口数据_c#中HttpWebRequest调用接口获取数据
- c语言链表的数据结构,c语言实现通用数据结构(一):通用链表
- wps纸张大小设置成A4_pdf两页合并一页a4,只需这招轻松搞定
- TwinCAT3安装教程-EtherCAT学习
- 机顶盒及编解码器的音视频质量评价测试
- Qcom平台添加一款新的sensor (msm8953)
- win7抓取计算机窗口存于位图文件,电脑按printscreen截屏后 图片会保存在哪里?-win7截图,win7电脑自带的截图快捷键...
- Xcode 8.0 Beta发布,详解Swift语言的重大变化
- 联想win10触摸板失灵
- 【微电网优化】基于粒子群算法求解热电联供型微电网经济运行优化问题含Matlab源码
- 单射、满射和双射图解