如何选择用于独立成分分析的成分数量?


11

由于缺乏对“独立组件分析”中要请求的组件数量的先验猜测,我希望实现选择过程的自动化。我认为,合理的标准可能是使计算出的各个成分之间相关性的全球证据最小化的数字。这是这种方法的伪代码:

for each candidate number of components, n:
    run ICA specifying n as requested number of components
    for each pair (c1,c2) of resulting components:
        compute a model, m1: lm(c1 ~ 1)
        compute a model, m2: lm(c1 ~ c2)
        compute log likelihood ratio ( AIC(m2)-AIC(m1) ) representing the relative likelihood of a correlation between c1 & c2
    compute mean log likelihood ratio across pairs
Choose the final number of components as that which minimizes the mean log likelihood of component relatedness

我认为,这应该自动对大于“真实”数量组​​件的候选者进行惩罚,因为应将这些候选者产生的ICA强制从单个真实组件中的多个估计组件中分配信息,从而增加了成对组件之间相关性的平均证据。

这有意义吗?如果是这样,是否有比上面建议的平均对数似然方法更快的方法来实现估计组件之间的相关性的聚合度量(在计算上可能相当慢)?如果这种方法没有意义,那么好的替代程序会是什么样?

Answers:


6

ICA的变奏合奏学习方法可以完成这种“自动相关性检测”。它会自动关闭不需要改善贝叶斯证据范围的组件。

看一下此处介绍的James Miskin的论文,其中介绍了该技术。

这由John Winn(另一位通过消息传递算法实现贝叶斯合奏学习的博士)在Java中非常轻松地实现。

为了学习该技术,我决定在c ++中实现Winn算法(可从此处获得)(主动开发)。


2

如汤姆所说,自动相关性确定是在概率模型中选择一小部分组件的好方法。

ICA的另一种方法是事先使用印度自助餐程序-Knowles和Ghahramani在“无限稀疏因子分析和无限独立成分分析”中进行了此操作。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.