Matlab问题 - 主成分分析

时间:2011-02-10 20:17:56

标签: matlab

我有一组100个观测值,每个观测值有45个特征。并且这些观察中的每一个都附有标签,我想基于这45个特征来预测。因此它是一个尺寸为45 x 100的输入矩阵和一个尺寸为1 x 100的目标矩阵。
问题是我想知道这45个特征中有多少与我的数据集相关,基本上是主成分分析,我知道我可以用Matlab函数processpca来做到这一点。

你能告诉我怎么办?假设输入矩阵为x,包含45行和100列,y是包含100个元素的向量。

5 个答案:

答案 0 :(得分:5)

假设你想构建一个基于45x100矩阵的1x100矢量模型,我不相信PCA会按照你的想法行事。 PCA可用于选择模型估计变量,但这是收集一组模型特征的一种间接方式。无论如何,我建议阅读两者:

Principal Components Analysis

和...

Putting PCA to Work

......两者都提供MATLAB中不需要任何工具箱的代码。

答案 1 :(得分:1)

您是否尝试过COEFF = princomp(x)

  

COEFF = princomp(X)执行校长   组件分析(PCA)上   n-by-p数据矩阵X,并返回   主成分系数也是   称为载荷。行X   对应于观察,列对应   变量。 COEFF是一个p-by-p矩阵,   每列包含系数   一个主要组成部分。该   列按顺序递减   成分差异。

答案 2 :(得分:0)

根据您的问题,我推断您不需要在MATLAB中执行此操作,但您只想分析数据集。根据我的观点,关键是依赖关系的可视化。

如果您没有被迫在MATLAB中进行分析,我建议您尝试更专业的软件,如WEKA(www.cs.waikato.ac.nz/ml/weka/)或RapidMiner(rapid-i。 COM)。这两种工具都可以提供PCA和其他降维算法+它们包含很好的可视化工具。

答案 3 :(得分:0)

您的用例听起来像是分类和功能选择的组合。

Statistics Toolbox在这方面提供了很多很好的功能。工具箱提供对许多分类算法的访问,包括

  • Naive Bayes Classifiers Bagged
  • 决策树(又名随机森林)
  • 二项式和多项式逻辑回归
  • 线性判别分析

您还可以使用多种选项进行功能选择

  • sequentialfs(前向和后向特征选择)
  • relifF
  • “treebagger”还支持功能选择和估算变量重要性的选项。

或者,您可以使用一些优化工具箱的功能编写自己的自定义方程来估计变量重要性。

几个月后,我为The MathWorks做了题为“计算统计:使用MTALAB开始分类”的网络研讨会。您可以在

观看网络研讨会

http://www.mathworks.com/company/events/webinars/wbnr51468.html?id=51468&p1=772996255&p2=772996273

示例的代码和数据集可在MATLAB Central中找到

http://www.mathworks.com/matlabcentral/fileexchange/28770

所有这些都说完了,许多人在应用分类算法之前使用主成分分析作为预处理步骤。 PCA被大量使用

  1. 当您需要从图像中提取特征时
  2. 当你担心多重共线性时

答案 4 :(得分:0)

你应该找到相关矩阵。在以下示例中,matlab使用'corr'函数

查找相关矩阵

http://www.mathworks.com/help/stats/feature-transformation.html#f75476