PCA最小平方误差理论推导

PCA最小平方误差理论推导PCA求解其实是寻找最佳投影方向,即多个方向的标准正交基构成一个超平面。理论思想:在高维空间中,我们实际上是要找到一个d维超平面,使得数据点到这个超平面的距离平方和最小

大家好,又见面了,我是全栈君,今天给大家准备了Idea注册码。

PCA最小平方误差理论推导

PCA求解其实是寻找最佳投影方向,即多个方向的标准正交基构成一个超平面。

理论思想:在高维空间中,我们实际上是要找到一个d维超平面,使得数据点到这个超平面的距离平方和最小

假设\(x_k\)表示p维空间的k个点,\(z_k\)表示\(x_k\)在超平面D上的投影向量,\(W = {w_1,w_2,…,w_d}\)为D维空间的标准正交基,即PCA最小平方误差理论转换为如下优化问题$$z_k = \sum_{i=1}^d (w_i^T x_k)w_i—(1)$$

\[argmin \sum_{i=1}^k||x_k – z_k||_2^2 \]

\[s.t. w_i^Tw_j = p(当i==j时p=1,否则p=0) \]

注:\(w_i^Tx_k\)为x_k在w_i基向量的投影长度,\(w_i^Tx_kw_i\)为w_i基向量的坐标值

求解:

\(L = (x_k – z_k)^T(x_k-z_k)\)

\(L= x_k^Tx_k – x_k^Tz_k – z_k^Tx_k + z_k^Tz_k\)

由于向量内积性质\(x_k^Tz_k = z_k^Tx_k\)

\(L = x_k^Tx_k – 2x_k^Tz_k + z_k^Tz_k\)

将(1)带入得$$x_k^Tz_k = \sum_{i=1}dw_iTx_kx_k^Tw_i$$

\[z_k^Tz_k = \sum_{i=1}^d\sum_{j=1}^d(w_i^Tx_kw_i)^T(w_j^Tx_kw_j) \]

根据约束条件s.t.得$$z_k^Tz_k = \sum_{i=1}dw_iTx_k^Tx_kw_i$$

\[L =x_k^Tx_k – \sum_{i=1}^dw_i^Tx_kx_k^Tw_i \]

根据奇异值分解$$\sum_{i=1}dw_iTx_kx_k^Tw_i = tr(WTx_kTx_kW)$$

\[L =argmin\sum_{i=1}^kx_k^Tx_k – tr(W^Tx_k^Tx_kW) = argmin\sum_{i=1}^k- tr(W^Tx_k^Tx_kW) + C \]

等价于带约束得优化问题:$$argmaxtr(WTXXTW)$$

\[s.t. W^TW = I \]

最佳超平面W与最大方差法求解的最佳投影方向一致,即协方差矩阵的最大特征值所对应的特征向量,差别仅是协方差矩阵\(\xi\)的一个倍数

定理

\[argmin\phi(W,Z|X) = tr((X-W^TZ)^T(X-W^TZ)) = ||X-W^TZ||_F^2 \]

\[s.t.W^TW=I_q \]

注:X为(n,p),Z为(n,q),q < p,w为(p,q)

该定理表达的意思也就是平方差理论,将降维后的矩阵通过W^T投影回去,再与X计算最小平方差,值越小说明信息损失越少

\(\phi\)目标函数最小时,W为X的前q个特征向量矩阵且\(Z=W^TX\)

以上优化可以通过拉格朗日对偶问题求得,最终也会得到$$argmaxtr(WTXXTW)$$

\[s.t. W^TW = I \]

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/120024.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 区分clientHeight、scrollHeight、offsetHeight

    区分clientHeight、scrollHeight、offsetHeight区分clientHeight、scrollHeight、offsetHeightclientHeight:元素的可见高度scrollHeight:元素的整体高度offsetHeight:元素的高度参考文献:[1]搞清clientHeight、offsetHeight、scrollHeight、offsetTop、scrollTop[2]js中offsetHe…

    2022年7月23日
    9
  • 鱼和水的故事

    鱼和水的故事,那两句对白很经典,几乎谁都知道,但却很少人知道故事的全篇。鱼说:“你看不见我眼中的泪,因为我在水中。” 水说:“我能感觉得到你的泪,因为你在我心中。”http://hove

    2021年12月25日
    39
  • js算法初窥02(排序算法02-归并、快速以及堆排序)

    上一篇,我们讲述了一些简单的排序算法,其实说到底,在前端的职业生涯中,不涉及node、不涉及后台的情况下,我目前还真的没想到有哪些地方可以用到这些数据结构和算法,但是我在前面的文章也说过了。或许你用不

    2022年3月25日
    39
  • 一个软件完整的开发流程介绍

    一个软件完整的开发流程介绍刚开始写博文的时候就应该将这个文章更新一下,虽然不是什么大牛,但是对于软件的开发流程还是比较了解的,毕竟大大小小做过了好几个项目了,今天就大概的说一下,用我做过的一个项目来说吧,写的不好的,请多多见谅,毕竟小生不才。开发流程百度的解释是:不是我懒得写,而是觉得写出来也不是自己的,还不如直接告诉你们我是百度的概念…但是下面的我们就不要百度了,因为百度说的太专业,让你看了很烦,最起码我是很烦(都是…

    2022年7月16日
    24
  • vb.net从数据库中取数据

    vb.net从数据库中取数据1.设置从Model中的SubMain启动2.程序结构3.Model14.FormStudentSysMain.vb5.FormSearchStudent.vb6.运行结果

    2022年7月3日
    30
  • oracle的游标 sql语句,sql游标

    oracle的游标 sql语句,sql游标sql游标游标的类型:1、静态游标(不检测数据行的变化)2、动态游标(反映所有数据行的改变)3、仅向前游标(不支持滚动)4、键集游标(能反映修改,但不能准确反映插入、删除)游标使用顺序:1、定义游标2、打开游标3、使用游标4、关闭游标5、释放游标Transact-SQL:declare游标名cursor[LOCAL|GLOBAL][FORWARD_ONLY|SCROLL][STATI…

    2022年7月27日
    5

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号