Factor_Analysis(因子分析)
Factor Analysis 简书:较好理解的解释,其中公式有一定的推导(仅展现关键步骤,细节大多需要自行补充),基本为结论式。

感性层面理解:首先,明确FA和PCA的区别。PCA做的是对某个样本,试图寻找到一组方差尽量大的线性表示(基向量),以便降维;FA做的是,假想存在一些隐变量,它们影响着我们的观测结果(即我们得到的数据样本),我们试图找到两者的联系:$x = \Lambda z + \mu + \epsilon$,在简书中有说明其MLE函数形式,不难看出它的MLE形式难以求解,故采用EM(机器学习之最大期望(EM)算法,讲得不错)迭代以求最优解。此外,FA通常用于$m<<n$的庆幸

心路历程:首先,我去推了一下EM,发现自己之前学的时候,由于是在GMM求解的时候需要的,所以并没有很仔细地推导,所以就再去推导了一次推了我一页草稿纸。其次,没有找到:$\mu_{x_1|x_2} = \mu_1 + \Sigma_{12} \Sigma_{22}^{-1} (x_2 - \mu_2)$ 以及 $\Sigma_{1|2} = \Sigma_{11} - \Sigma_{12} \Sigma_{22}^{-1} \Sigma_{21}$ 的公式名称,如果看官知晓其名称,望告知不才,感激不尽。最后,还是忘记了矩阵求导,又去查了一下,而我也尚未进行公式回带和化简整合。自闭了,一大堆

疑问:简书作者在开头提到:由于存在隐变量,同时不能由MLE得到close form。(close form:即闭式解,通俗解释就是$\nabla f(x) = 0$的$x$表达式),这里不理解为何没有闭式解,目前推的结果(MLE式子),大概猜测是因为$m<<n$的缘故,这样带来的结果就是$\left| \Sigma \right| = 0$(其实本身$\left| \Sigma \right|$是不等于0的,但是由于$m<<n$,所以它等于0,其实就是由于样本数量不足,或者说难以得到如此高维并且充足的样本)。显然,$\left| \Sigma \right| = 0$会在后续中遇到诸多麻烦,最容易想的就是$\Sigma$是不可逆的,这显然很难进行接下来的计算,虽然我算的不多,但是$\Sigma^{-1}$几乎都是需要的。然而,可以引入伪逆,所以肯定还有我没有想到的原因,或者说伪逆会带来较差的表现等等。

备注:由于博客园写推导公式较为麻烦,所以没有在博客上进行推导,不过建议看官如果并未学习过上述知识,还是手推几次以便加强理解和记忆(当然也有一些少年仅仅看就能得到很好理解,并且运用巧妙)。比如在EM算法中,求解lower_bound之前,分子分母同乘一个量以便之后用Jensen不等式化简(orz)等等(好像其他的操作就比较平凡了)。最近闲来无事的时候,发现很多学习过的算法,特别是需要一定数学式子或者思维来求解的(我竟然想去求LCM解烤鸡??),似乎都忘了需要求解的表达式(嘴上讲讲天花乱坠,手里推推苦思冥想),虽然求解过程都不难,但是对于我来说,其中一些技巧还是需要理解的有些计算量也是大啊

Factor_Analysis的更多相关文章

  1. zoj Simple Equation 数论

    题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=5176 AX+BY = XY  => (X-B)*(Y-A)= ...

  2. Python机器学习笔记 使用scikit-learn工具进行PCA降维

    之前总结过关于PCA的知识:深入学习主成分分析(PCA)算法原理.这里打算再写一篇笔记,总结一下如何使用scikit-learn工具来进行PCA降维. 在数据处理中,经常会遇到特征维度比样本数量多得多 ...

  3. OtterTune源码解析

    为了方便后面对ottertune进行魔(hu)改(gao),需要先搞清楚它的源码结构和pipeline OtterTune分为两大部分: server side: 包括一个MySQL数据库(用于存储调 ...

随机推荐

  1. 使用httpwebrequest发送http请求

    HttpWebRequest request = WebRequest.Create("url") as HttpWebRequest; request.Timeout = * * ...

  2. goroutine并发控制与通信

    转发:https://mp.weixin.qq.com/s/ZlyQHfmoY1lzOoRgFSCOBw 开发go程序的时候,时常需要使用goroutine并发处理任务,有时候这些goroutine是 ...

  3. 互联网项目中mysql推荐(读已提交RC)的事务隔离级别

    [原创]互联网项目中mysql应该选什么事务隔离级别 Mysql为什么不和Oracle一样使用RC,而用RR 使用RC的原因 这个是有历史原因的,当然要从我们的主从复制开始讲起了!主从复制,是基于什么 ...

  4. [#Linux] CentOS 7 配置JDK后,eclipse无法启动,提示jdk路径错误。

    ​​​​ 解决方案:在eclipse的目录下创建一个jre文件夹,在jre文件夹里创建一个jdk的bin目录的链接 1.进入到eclipse目录下,右键在终端打开. 2.创建jre目录:mkdir j ...

  5. Linux有名管道的 阻塞VS非阻塞 读写

    参考文章: 关于有名管道open时阻塞的问题 Linux有名管道(FIFO)的阻塞和非阻塞读写 挖坑,日后填

  6. Alpha版本发布

                Alpha版本发布   Part1.基本介绍 作业所属课程 课程链接 作业要求 要求链接 团队名称 Typhoon 作业目标 通过本次团队项目,体验通过使用软件工程来研发项目的 ...

  7. 实践论:github搜索源码内容

    github搜索源码内容 github搜索源码内容 github搜索源码内容

  8. 小知识——c++关于指针的理解

    参考文章: 简介: 指针可以简化c++编程,在一些任务中没有指针是无法完成的(动态内存分配) 使用 & 可以获得变量在内存中的地址: eg: #include <iostream> ...

  9. 阿里云 centos7 安装mysql数据库

    环境:阿里云ECS服务器,系统为centos7.2 删除原来的数据库: centos7中默认安装了数据库MariaDB,如果直接安装MySQL的话,会直接覆盖掉这个数据库,当然也可以手动删除一下: [ ...

  10. 关于七牛云存储配置服务器CNAME的问题

    以前的图片什么的都存放在七牛云(免费的那款)上,七牛相比OSS就是只能创建bucket但不能创建文件夹,这个令人很烦.最近七牛发公告说存储文件的测试域名30天后不能使用了,那我那些存储的图片的所有外链 ...