从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

相关推荐
泯泷16 分钟前
像项目经理一样指挥 AI 团队:管理者模式
人工智能·llm·agent
京东云开发者26 分钟前
双11囤Token火了:京东搜索量暴涨7倍,AI生产力成新刚需
人工智能
ahccqw43 分钟前
OpenCV 车辆数量统计
人工智能·opencv·计算机视觉
人工智能AI技术1 小时前
LangGraph 本地 build 频频翻车,最终在服务器跑通流式对话
人工智能
Flynn Liang1 小时前
同一需求三套写法:用 Spring AI、LangChain4j、AgentScope Java 各实现一个带工具调用的 RAG 助手(实战对比)
java·人工智能·大模型·架构设计·spring ai·langchain4j·agentscope
汤姆宝库2 小时前
构建一个能用的RAG系统:切块、嵌入、混合检索与融合排序
人工智能
Dawson Zhu2 小时前
【LLM推理与Serving⑪】MoE推理与MLA:DeepSeek-V3架构下的显存与通信权衡
人工智能·语言模型·架构·aigc·agi
github_is_geeksKai2 小时前
50 个 AI 与开源工具怎么选:从实际用途到实现边界
人工智能
IT_陈寒2 小时前
Vite的HMR把我整不会了:一个生产环境的热更新坑
前端·人工智能·后端
github_is_geeksKai2 小时前
浏览器 AI 小工具怎么选?40 个项目与 5 类商业任务的参考指南
人工智能