我是机器学习初学者,我非常感谢你的帮助。
我试图使用FastICA MATLAB工具箱,经过大量的谷歌搜索和阅读文档后,我变得越来越困惑。
我正在使用Car Data Set,我正在使用1000张100x40图像(500辆汽车,500辆非汽车)。我正在使用fastica来寻找独立的组件(我将在稍后使用它们来构建汽车检测系统)。
我在列车数据集上运行以下代码:
[icasig, A, W] = fastica(Training_Set);
A和W是1000x1000矩阵,icasig是1000x4000矩阵,据我所知,icasig的行包含独立的组件,A是混合矩阵。
如何绘制独立组件?有人能用简单的英语向我解释什么是W?
让我感到困惑的另一件事是,如果我删除icasig中的某些行并获得300x4000矩阵,那么我是否正在进行特征压缩?
如果我使用分类算法(例如SVM),我如何改变我用来训练它的独立组件的数量?我认为rica是完美的,但不幸的是我没有统计和机器学习工具箱。
答案 0 :(得分:1)
ICA中的有人可以用简单的英语向我解释什么是W?
w 通常代表分离矩阵。给定混合图像 X ,可以通过计算 wX 来获得独立组件。结果 S 通常是另一个矩阵,其大小与 X 相同。 S 的每一行都包含代表一个独立组件的数据。
使用ICA算法的主要目的之一是找到分离矩阵 w 。如果您对此一无所知,我建议您在继续阅读之前阅读更多文献。即使fast ICA's Wikipedia页面也会告诉您 w 。
如何绘制独立组件?
如果icasig
S ,您可以尝试以下操作:
icasig = abs(icasig) % take the absolute
% you can add a for loop here to plot all components
component=icasig(1,:) % take the first component
im = reshape(component,[h,w,3]); % h being the height of the image of the component and w being the width
im=uint8 (round(im));
figure; imshow(im);
% end of the for loop. Be prepared to have a lot of pictures poping up.
如果我删除icasig中的某些行并获得300x4000矩阵,那么我是否正在进行特征压缩?
如果删除某些单独的组件意味着要素压缩,那么是。