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

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

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

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

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

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

异常检测(Anomaly detection)

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

也就是说,我们需要重新选定训练集、验证集,构建并判断函数,如果是就判断为异常样本,这里的

看具体情况而定。

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

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

相关推荐
江畔柳前堤15 分钟前
云原生 × AI 全景图谱:从 Kubernetes 到 Agent 基础设施的一次认知跃迁
人工智能·分布式·gpt·云原生·kubernetes·原型模式·agi
大模型码小白23 分钟前
Harness Engineering 驾驭工程:从使用到项目实战
大数据·数据库·人工智能·python·spring
学习日记52532 分钟前
第 5 章:自定义 Skill——把重复操作封装成一键命令
人工智能·ai·prompt
云上工程笔记33 分钟前
AstraFlow + React/Vite:如何用自然语言开发并部署一个 AI 咖啡网站原型
前端·人工智能·react.js
醍醐实验室36 分钟前
长文本外推中的 RoPE Base 调优:从 10,000 到 500,000 的数学底数奥秘
人工智能
hansang_IR43 分钟前
【题解】P5364 [SNOI2017] 礼物
c++·线性代数·算法
Tisfy1 小时前
LeetCode 3871.统计范围内的逗号 II:每次算一个逗号
数学·算法·leetcode·题解
搞科研的小刘选手1 小时前
【香港中文大学(深圳)、IEEE主办 | 深圳举办】第六届IEEE能源工程与电力系统国际学术会议(EEPS 2026)
人工智能·电力系统·能源工程·香港中文大学(深圳)·会议推荐
小O的算法实验室1 小时前
IEEE TEVC,基于K-means与DQN辅助元启发式算法的多目标两栖无人艇调度模型
算法·kmeans·启发式算法
weixin_446260851 小时前
面向编码智能体的「先学测试,再用测试提升修复能力」框架
人工智能