由以上的直观分析,我们知道了因子分析其实就是认为高维样本点实际上是由低维样本点经过高斯分布、线性变换、误差扰动生成的,因此高维数据可以使用低维来表示。
1、问题
当训练样例个数m太小,甚至m<<n的时候,使用梯度下降法进行回归时,如果初值不同,得到的参数结果会有很大偏差(因为方程数小于参数个数)。
另外,如果使用多元高斯分布(Multivariate Gaussian distribution)对数据进行拟合时,也会有问题。
其中的协方差矩阵Σ是奇异阵,没法拟合出多元高斯分布了。
但是,如果我们仍然想用多元高斯分布来估计样本,应该怎么办呢?
2、那就构造一个能用的Σ
没有足够的数据,去估计Σ,我们可以改变Σ的结构。
于是我们假设,Σ就是对角阵(各个特征之间相互独立)那么,只需要计算每个特征的方差,作为其对角线上的元素就好。比如,X是一个3维特征,那么Σ就是3*3的对角矩阵,对角上的每个元素按照下面公式计算。
3、知识背景--边缘和条件高斯分布
- 1、我们认为,观测到的样例x服从多元高斯分布,那么就要求出这个多元高斯分布的参数。
- 2、我们认为,高维数据是可以用低维数据来表示的。那么x可以用z来表示。
- 3、边缘分布和条件高斯分布,在后面的因子分析中,会用来把x的多元高斯分布的参数表示出来。
4、因子分析
n维样例xi是可以用一个k维的低维向量来表示的。这里,我们认为
5、因子分析模型
z的分布已知,误差的分布已知,由z到x的公式已知(即x可以由z表示),那么可以求出x的分布:
已知的数据为m个样例xi,可以认为这些样例是通过分布采样得到的,于是可以利用最大似然估计的方法,估计这三个参数。但是得不到闭合式。
6、用EM来估计各个参数
在有隐含变量时, 我们可以考虑用EM来估计
7、总结
得到各个参数后,可以求得z,因子分析完成。z的维度比样例x要少很多,达到了降维的目的。
对因子分析的解释:
因子分析,能够用少量的假想变量表示原来的数据。比如用三个潜在的因子(环境,服务,价格)来表示商店的二十多个指标。
原始的变量是可观测的显在变量,而假想变量是不可观测的潜在变量,称为因子。
上面的公式,可以看出,可以用潜在的假想变量和随机影响变量的线性组合表示原始变量。
加一个在线学习吧
又叫感知机
在线学习:根据新来的样例,边学习,边给出结果。