在fastICA中提取特征(Matlab)

时间:2017-04-25 18:52:57

标签: matlab feature-extraction

我是机器学习初学者,我非常感谢你的帮助。

我试图使用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是完美的,但不幸的是我没有统计和机器学习工具箱。

1 个答案:

答案 0 :(得分:1)

  

有人可以用简单的英语向我解释什么是W?

ICA中的

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矩阵,那么我是否正在进行特征压缩?

如果删除某些单独的组件意味着要素压缩,那么是。

相关问题