我试着在学校里使用scikit学习模块进行机器学习练习。我试图重建的练习已经给出了一个例子,在sklearn文档中,使用ICA separation.html#example-decomposition-plot-ica-blind-source-separation-py]实现的盲源分离。此示例基本上生成3个信号(或声源),然后与添加的噪声合并,然后尝试使用ICA重建原始源。很简单,对吧?然而,我有以下的困惑:
- FastICA: http: //scikit-learn.org/stable/modules/generated/sklearn.decomposition.FastICA.html#sklearn.decomposition.FastICA
- fastica: [http://ogrisel.github.io/scikit-learn.org/sklearn-tutorial/modules/generated/sklearn.decomposition.fastica.html](http://ogrisel.github.io/scikit-learn.org/sklearn-tutorial/modules/generated/sklearn.decomposition.fastica.html)我的问题是,对于相同的输入数据,它们都返回不同的混合矩阵。据我所知,我没有做错什么事。
如果有人能解释这件事或者指出我做错了什么,那将是一个很大的帮助。谢谢!
发布于 2016-06-22 11:48:22
FastICA到底返回了什么?用于下列代码:在这个案子里什么是ica?
FastICA是一个类,因此对它的调用在.fastica函数上返回一个OOP包装器。换句话说,您将获得对FastICA类实例的引用,该实例存储初始配置(例如组件数量),并可用于对任何数据执行ica (通过fit/transform)。
我试图打印这个值,但没有返回任何内容。我试图找出'ica‘是什么,以便准确地理解ica.fit_transform(X)在做什么。这里对“X”应用了什么变换?
ICA找到解混合矩阵W,然后将其应用于X,从而fit_transform(X) == X.dot(W) (+一些白化等,如果您在构造函数中请求它)
“fastica”和“筋膜”有什么区别?这两个功能也有不同的文档页:
没有什么不同。fastica是一个围绕FastICA的面向对象的包装器,仅此而已。它实际上是在适合的时候调用筋膜。
我的问题是,对于相同的输入数据,它们都返回不同的混合矩阵。据我所知,我没有做错什么事。
FastICA不是一个确定性的算法,因此每次都可以得到不同的解。
https://stackoverflow.com/questions/37964170
复制相似问题