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:基于线性模型的异常检测相关推荐

  1. Datawhale第五期组队学习团队成员

    第五期组队学习团队成员 组队学习 负责人 评优助教 星球星主 初级算法梳理 Danny 梁乾明 黑桃 高级算法梳理 居居 路建飞 黑桃 编程 LeoLRH 鲁力 黑桃 统计学 谷勇杰 ben 黑桃 L ...

  2. Datawhale第四期组队学习团队成员

    第四期组队学习团队成员 集训 负责人 评优助教 基础算法梳理 Sm1les 钱令武 高级算法梳理 于鸿飞 小雪 ML项目实践 杨冰楠 孙涛 编程 孙超 小熊 统计学 李奇锋 蓝昔 Leetcode 老 ...

  3. 转发:Datawhale第七期组队学习计划

    编者注:Datawhale是一个公益组织,也是AiUnion的四个成员之一,所有学习计划是免费的. 第7期Datawhale组队学习计划 马上就要开始啦 这次共组织15个组队学习 涵盖了AI领域从理论 ...

  4. DataWhale第21期组队学习自然语言处理实践(知识图谱)task4— 用户输入->知识库的查询语句

    参考来源:https://github.com/datawhalechina/team-learning-nlp/blob/master/KnowledgeGraph_Basic/task04.md# ...

  5. Datawhale第23期组队学习—深度学习推荐系统—task5 DIN

    DIN 1. 背景 2. 模型原理 2.1 特征表示 2.2 模型原理 3. 代码实现 参考来源: https://github.com/datawhalechina/team-learning-rs ...

  6. Datawhale第13期组队学习笔记Task3

    CNN CNN是一种层次模型,输入的是原始的像素数据.CNN通过卷积(convolution).池化(pooling).非线性激活函数(non-linear activation function)和 ...

  7. Datawhale第32期组队学习——task0:新闻推荐系统项目搭建:centos下前端配置

    文章目录 0.解决npm命令语法不正确问题 0.1 powershell报错 0.2 win10家庭版升级 nodejs 1.1 centos安装nodejs 1.2 win10安装nodejs 2. ...

  8. Data Whale第20期组队学习 Pandas学习—缺失数据

    Data Whale第20期组队学习 Pandas学习-缺失数据 一.缺失值的统计和删除 1.1 统计缺失信息 1.2 删除缺失信息 二.缺失值的填充和插值 2.1 利用fillna进行填充 2.2 ...

  9. Data Whale第20期组队学习 Pandas学习—时序数据

    Data Whale第20期组队学习 Pandas学习-时序数据 一.时序中的基本对象 二.时间戳 2.1 Timestamp的构造与属性 2.2 Datetime序列的生成 2.3 dt对象 2.4 ...

最新文章

  1. php中mysql_PHP中MySQL操作
  2. String类中的intern()方法详解
  3. 开源与自由 | 商业自由:从边缘到核心贡献
  4. P4011 孤岛营救问题
  5. 分享网页到微信朋友圈的官方接口
  6. GitHub 在 “tar” 和 npm CLI 中发现7个高危的代码执行漏洞
  7. Python 网络数据采集
  8. 例2.5 统计同成绩学生人数 - 九度教程第10题(Hash的应用)
  9. 京东商品价格查询易语言代码
  10. 【重拾FPGA】三段式状态机的路口红绿灯
  11. Landsat 8 数据获取
  12. java毕业设计_景区旅游信息管理系统
  13. mysql 1032 1062_mysql slave频繁报1032_1062错误
  14. 头条App项目测试实战(二)App手工测试流程以及需求分析与评审
  15. 适用于数据中心和边缘应用的液冷技术
  16. ajax 提交间隔,jQuery+Ajax实现限制查询间隔的方法
  17. 程序员前辈归纳整理Python中的控制流语句的知识点(要记得收藏)
  18. 易推影视推手系统,支持苹果v8 v10影视系统
  19. SpringBoot集成微信支付微信退款
  20. 操作系统-移动操作系统-百科: iOS(苹果公司的移动操作系统)

热门文章

  1. 测试人员常见面试题(持续更新)
  2. 微软面试程序题100道
  3. OAI EPC RRH-gw + PicoRRU 搭建LTE测试网络
  4. Ardunio开发实例-红外避障传感器
  5. 如何解决WPS中文章段落格式设置失效
  6. LaTeX 常用宏包(转载)
  7. python发微信朋友圈_python实现微信每日一句自动发送给喜欢的人
  8. 1.3 网络操作系统与Linux
  9. 渝粤题库 陕西师范大学 电子商务安全作业
  10. 如何白嫖微软云Azure12个月及避坑指南