从0开始机器学习--Day28--PCA算法使用建议及初识异常检测

embedded/2024/11/18 6:19:06/

之前说到数据降维的方法是寻找到一个所有样本到其投影误差的投影平面,那么升维其实就是式子里的矩阵移到另一边即可:x_{approx} = U_{reduce}z

,注意这里没有用x表示是因为除非本身所有样本点的投影误差都很小,可以近似认为就在线上,因为这里的升维并不是完全求出原来的数据矩阵,只是将其在投影平面上的对应点近似认为是原来的样本点,还是存在一定误差的。

在实际应用的场景中,并不是说只有没有标签的数据才能应用PCA算法,假如原始数据集是10000维的,我们可以先提取原来的标签y,在对每个数据都降维之后,再把原来的标签加上,也就是说并不局限于一定要用于为无标签的数据进行分类运用,注意,在降维并将数据训练后,预测样本x需要在原来的PCA映射下转换成对应的降维数据z再进行预测,PCA只会运用于训练集,而不会运用在验证集和预测集上;还有就是一般来说二维或三维的数据比较容易可视化,所以我们会为了可视化数据将其降维到二维或三维。

有时候我们会看到在运用PCA算法后,和其他算法相比其过拟合程度降低了,但这并不意味着它就是用于降低过拟合的。我们可以回顾用于防止过拟合的方法:正则化,PCA在降维的过程中有舍弃一些信息,那么在降维后过拟合程度降低很正常,可是它并没有考虑到y值,只是纯粹地为了降低维度,在保证99%方差被保留的情况下进行的,甚至舍弃的信息是重要的也很正常;而正则化是加在有y的代价函数里的,其运行过程的逻辑有判断过哪个参数不重要,舍弃的参数信息对于模型的构建是不重要的。所以有时候可能算法运用的结果显示是好的,但其内在逻辑并没有考虑到,只是运气好,如果这是中间过程的步骤,很容易在优化后期发现需要重新推倒重来。

还有一点比较重要的是不要把应用PCA算法当成是必要的,就跟之前学的一样,解决一个学习问题时,我们最好能先构建一个比较粗糙的模型去尝试,然后再在他的基础上进行优化,要把PCA当成是优化方法的一种,而不是必备步骤。

异常检测(Anomaly detection)

顾名思义,就是对一个样本是否异常的判断。举一个飞机引擎的例子,假设我们构建了一个飞机引擎的模型,那么如果这个新的样本点落在离训练集还有测试集比较远的地方,这是否是一个异常样本,需要我们进一步补充特征来定义它,还是说它只是比较特殊。

也就是说,我们需要重新选定训练集、验证集,构建并判断函数p(x_{test})<\varepsilon,如果是就判断为异常样本,这里的\varepsilon

看具体情况而定。

一般需要我们应用异常检测算法的场景,都是工业生产判断产品是否需要重新加工,或者网站检测是否有用户被异常登录需要被验证身份这种。

视频参考:https://www.bilibili.com/video/BV1By4y1J7A5?spm_id_from=333.788.videopod.episodes&vd_source=867b8ecbd62561f6cb9b4a83a368f691&p=90


http://www.ppmy.cn/embedded/138456.html

相关文章

NVR录像机汇聚管理EasyNVR多品牌NVR管理工具视频汇聚技术在智慧安防监控中的应用与优势

随着信息技术的快速发展和数字化时代的到来&#xff0c;安防监控领域也在不断进行技术创新和突破。NVR管理平台EasyNVR作为视频汇聚技术的领先者&#xff0c;凭借其强大的视频处理、汇聚与融合能力&#xff0c;展现出了在安防监控领域巨大的应用潜力和价值。本文将详细介绍Easy…

小程序-基于java+SpringBoot+Vue的经济新闻资讯设计与实现

项目运行 1.运行环境&#xff1a;最好是java jdk 1.8&#xff0c;我们在这个平台上运行的。其他版本理论上也可以。 2.IDE环境&#xff1a;IDEA&#xff0c;Eclipse,Myeclipse都可以。推荐IDEA; 3.tomcat环境&#xff1a;Tomcat 7.x,8.x,9.x版本均可 4.硬件环境&#xff1a…

【Unity】ScriptableObject的应用:利用配方合成新物体

前一篇已经使用ScriptableObject(SO)类配置可放置物体&#xff0c;本篇探索更多的SO类应用场景。 需求分析 将若干指定物体放在工作台上&#xff0c;可以生成新的物体。 成果展示 Scene部分 准备工作台&#xff0c;放在工作台上的物体全部放在指定PlacedObjects空物体下。 …

Nginx 上安装 SSL 证书并启用 HTTPS 访问

本文将介绍如何在 Nginx 上为你的域名安装 SSL 证书&#xff0c;并配置 Nginx 使用 HTTPS 安全访问。我们将使用 Let’s Encrypt 免费的 SSL 证书&#xff0c;通过 Certbot 生成并管理证书&#xff0c;然后配置 Nginx 实现 HTTPS 加密访问。同时&#xff0c;我们将解决因 SSL 证…

智慧环保平台建设方案

1. 引言 随着环保意识的增强和技术的进步&#xff0c;智慧环保平台建设成为应对环境污染和生态退化的重要手段。本方案旨在通过大数据、云计算、物联网等先进技术&#xff0c;构建高效、智能的环保管理体系。 2. 环保现状与挑战 当前&#xff0c;我国面临大气污染、水体污染、…

ffmpeg 遇见错误

错误&#xff1a;Too many packets buffered for output stream 0:1. 解决&#xff1a;添加命令 -max_muxing_queue_size 1024 错误&#xff1a;"at least 3 arguments were expected, only 1 given in string" 解决: https://unix.stackexchange.com/questions/3…

在AndroidStudio中新建项目时遇到的Gradle下载慢问题,配置错的按我的来,镜像地址不知道哪个网页找的,最主要下载要快

android-studio-2024.2.1.11-windows Android 移动应用开发者工具 – Android 开发者 | Android Developers https://r4---sn-j5o76n7z.gvt1-cn.com/edgedl/android/studio/install/2024.2.1.11/android-studio-2024.2.1.11-windows.exe?cms_redirectyes&met1731775…

03.01、三合一

03.01、[简单] 三合一 1、题目描述 三合一。描述如何只用一个数组来实现三个栈。 你应该实现push(stackNum, value)、pop(stackNum)、isEmpty(stackNum)、peek(stackNum)方法。stackNum表示栈下标&#xff0c;value表示压入的值。 构造函数会传入一个stackSize参数&#xf…