热门标签 | HotTags
当前位置:  开发笔记 > 人工智能 > 正文

让你惊艳的PCA

我一直误以为自己记述了这个历程,今天翻开博客发现竟然没有任何记录。事情从很早前的一个失眠的夜晚说起,一个数据集假设有d个特征属性,但是我想使用d’<d个特征属性来尽可能的表示

我一直误以为自己记述了这个历程,今天翻开博客发现竟然没有任何记录。事情从很早前的一个失眠的夜晚说起,一个数据集假设有d个特征属性,但是我想使用d’ 2。
如下图所示,这些二维的数据,可以通过两个坐标轴的数值完完全全的反映数据的信息。那么我能不能通过一个数值完完全全反映一个二维数据的信息呢,肯定是不行的。这时候会想到,这些数据在某一个方向上面十分集中,而在另一个方向上十分离散,集中的方向反映了这些数据的共性,离散的方向反映数据的特异性,假如把数据映射到这两个方向上,也就是映射到了一个新的二维空间,新的二维空间中,一个坐标的值代表了特异性,一个坐标代表共性。当然要求这两个坐标是互相垂直的。
使用两条垂直的直线来代表这两个坐标的方向,line1:w1*x = 0,line2: w2 * x = 0,w1 * w2 = 0。从这两个直线的定义可以知道这两条直线全部过原点,我们要找的是直线所在的方向,跟直线没有关系,为了尽可能用少的变量来表示这两条直线,那就找那两条过原点的直线吧。
二维空间中的随机数据集
点x在line1直线上投影距离原点的距离是多少呢,line1的法向量是w1,方向向量肯定是w2了, |w2*x|/||w2||, 当然x到line2直线上投影距离原点的距离就是 |w1 * x|/||w1||, 其实到在直线上的投影到原点的距离也就是在新空间的两个坐标值,假设||w1|| = ||w2|| = 1,这个作为约束项,好求得唯一的一组w1 w2。 不妨假设line1是表示特异性的坐标轴,line2表示的是共性坐标轴,我们的目标是 min( |w1 * x|/||w1|| - ave1)2的同时max (|w2 * x|/||w2|| - ave2)2,ave1表示的是 所有数据在line2上面坐标的均值。其实目标就是在共性上面希望方差最小,在特异性方向上希望方差最大。如果数据集X在各个属性上是经过归一化处理的统一减去均值,那么ave1、ave2就会等于0。此时就变成了
min(w1XX’w1’)且max (w2XX’w2’),||w1|| = ||w2|| = 1。
这时候求得的结果就会是我们想要的结果。但是对于两个目标一个约束条件显得手足无措,如何求解w1和w2呢。
但是无论如何去求,我们得到的w1和w2必定是目标函数对其求偏导并等于0得来的结果。
下面就用笔算代替吧,这样编辑着实在费时间,还不容易描述清楚。一个简单的降维想法,无意中竟然发现与PCA完全吻合,当时的我感到无比惊奇,今天看周志华的机器学习西瓜书的时候,在介绍PCA的过程中回想起了以往的推导,可能PCA出现的一个原因就是这个吧。
这里写图片描述
下面是引入核技巧的Kernel PCA
这里写图片描述
在这个地方,我不太确定,之所以这么写是在台大林轩田教授课程里面讲到当最优化的目标里面包含W二次范式的时候,W就可以用所有样本线性表示,详细原因个人能力有限,尚不清楚。我们最优化的式子里面没有明显的W二次范式,但是有Wi*Wi * Aij的累加,所以在这里假设这种条件下,W也可以用样本的线性组合来表示。(日后会完善这个地方)
这里写图片描述

从上面的结论可以看出,引入和技巧之后,变化不过是原来的解是d*d(样本维度)矩阵的特征值和特征向量,引入核技巧的解释m * m(m是样本数量)矩阵特征值和特征向量的解。(翻开书验证了一下结论,自己得出的结果没错,捏了一把冷汗)。其实学习的过程,不是看了多少,想了多少更重要。


推荐阅读
  •   上一篇博客中我们说到线性回归和逻辑回归之间隐隐约约好像有什么关系,到底是什么关系呢?我们就来探讨一下吧。(这一篇数学推导占了大多数,可能看起来会略有枯燥,但这本身就是一个把之前算法 ... [详细]
  • 数据管理权威指南:《DAMA-DMBOK2 数据管理知识体系》
    本书提供了全面的数据管理职能、术语和最佳实践方法的标准行业解释,构建了数据管理的总体框架,为数据管理的发展奠定了坚实的理论基础。适合各类数据管理专业人士和相关领域的从业人员。 ... [详细]
  • 探索如何使用公共数据集为您的编程项目提供动力。无论您是编程新手还是有经验的开发者,本文将为您提供实用建议和资源,帮助您启动并运行一个创新的数据驱动型项目。 ... [详细]
  • 机器学习核心概念与技术
    本文系统梳理了机器学习的关键知识点,涵盖模型评估、正则化、线性模型、支持向量机、决策树及集成学习等内容,并深入探讨了各算法的原理和应用场景。 ... [详细]
  • 深入解析Android自定义View面试题
    本文探讨了Android Launcher开发中自定义View的重要性,并通过一道经典的面试题,帮助开发者更好地理解自定义View的实现细节。文章不仅涵盖了基础知识,还提供了实际操作建议。 ... [详细]
  • 深入理解C++中的KMP算法:高效字符串匹配的利器
    本文详细介绍C++中实现KMP算法的方法,探讨其在字符串匹配问题上的优势。通过对比暴力匹配(BF)算法,展示KMP算法如何利用前缀表优化匹配过程,显著提升效率。 ... [详细]
  • 机器学习中的相似度度量与模型优化
    本文探讨了机器学习中常见的相似度度量方法,包括余弦相似度、欧氏距离和马氏距离,并详细介绍了如何通过选择合适的模型复杂度和正则化来提高模型的泛化能力。此外,文章还涵盖了模型评估的各种方法和指标,以及不同分类器的工作原理和应用场景。 ... [详细]
  • Google最新推出的嵌入AI技术的便携式相机Clips现已上架,旨在通过人工智能技术自动捕捉用户生活中值得纪念的时刻,帮助人们减少照片数量过多的问题。 ... [详细]
  • 毕业设计:基于机器学习与深度学习的垃圾邮件(短信)分类算法实现
    本文详细介绍了如何使用机器学习和深度学习技术对垃圾邮件和短信进行分类。内容涵盖从数据集介绍、预处理、特征提取到模型训练与评估的完整流程,并提供了具体的代码示例和实验结果。 ... [详细]
  • 尽管深度学习带来了广泛的应用前景,其训练通常需要强大的计算资源。然而,并非所有开发者都能负担得起高性能服务器或专用硬件。本文探讨了如何在有限的硬件条件下(如ARM CPU)高效运行深度神经网络,特别是通过选择合适的工具和框架来加速模型推理。 ... [详细]
  • 本文深入探讨了基于Pairwise和Listwise方法的排序学习,结合PaddlePaddle平台提供的丰富运算组件,详细介绍了如何通过这些方法构建高效、精准的排序模型。文章不仅涵盖了基础理论,还提供了实际应用场景和技术实现细节。 ... [详细]
  • 深入理解K近邻分类算法:机器学习100天系列(26)
    本文详细介绍了K近邻分类算法的理论基础,探讨其工作原理、应用场景以及潜在的局限性。作为机器学习100天系列的一部分,旨在为读者提供全面且深入的理解。 ... [详细]
  • Coursera ML 机器学习
    2019独角兽企业重金招聘Python工程师标准线性回归算法计算过程CostFunction梯度下降算法多变量回归![选择特征](https:static.oschina.n ... [详细]
  • 基于机器学习的人脸识别系统实现
    本文介绍了一种使用机器学习技术构建人脸识别系统的实践案例。通过结合Python编程语言和深度学习框架,详细展示了从数据预处理到模型训练的完整流程,并提供了代码示例。 ... [详细]
  • 随着生活节奏的加快和压力的增加,越来越多的人感到不快乐。本文探讨了现代社会中导致人们幸福感下降的各种因素,并提供了一些改善建议。 ... [详细]
author-avatar
苗淑香哈哈_405_408
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有