Matlab问题-主成分分析

Matlab问题-主成分分析,matlab,Matlab,我有一组100个观察值,每个观察值有45个特征。每一个观察都有一个标签,我想根据这45个特征来预测。这是一个45×100维的输入矩阵和一个1×100维的目标矩阵。 问题是,我想知道这45个特征中有多少与我的数据集相关,基本上是主成分分析,我知道我可以用Matlab functionprocesspca实现这一点。 你能告诉我怎么做吗?假设输入矩阵是x,有45行100列,y是一个有100个元素的向量。你试过了吗 COEFF=princomp(X) 组件分析(PCA) n-by-p数据矩阵X,并

我有一组100个观察值,每个观察值有45个特征。每一个观察都有一个标签,我想根据这45个特征来预测。这是一个45×100维的输入矩阵和一个1×100维的目标矩阵。
问题是,我想知道这45个特征中有多少与我的数据集相关,基本上是主成分分析,我知道我可以用Matlab function
processpca
实现这一点。

你能告诉我怎么做吗?假设输入矩阵是
x
,有45行100列,
y
是一个有100个元素的向量。

你试过了吗

COEFF=princomp(X)
组件分析(PCA) n-by-p数据矩阵
X
,并返回 主成分系数 被称为装载。
X行
对应于观察结果,列对应于 变量
COEFF
是一个逐p矩阵, 包含系数的每列 对于一个主成分。这个 列按递减顺序排列 成分方差


假设您想要基于45x100矩阵构建1x100向量的模型,我不相信PCA会像您所想的那样。PCA可用于选择模型估计的变量,但这是一种收集一组模型特征的间接方法。不管怎样,我建议阅读以下两种:

而且


…两者都在MATLAB中提供代码,不需要任何工具箱。

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


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

您的用例听起来像是分类和特征选择的组合

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

  • 朴素贝叶斯分类器
  • 决策树(又名随机森林)
  • 二项和多名义logistic回归
  • 线性判别分析
您还可以使用多种选项进行要素选择,包括

  • sequentialfs(向前和向后特征选择)
  • 放松
  • “treebagger”还支持特征选择和估计变量重要性的选项
或者,您可以使用“优化工具箱”的一些功能编写自己的自定义公式来估计变量的重要性

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

示例的代码和数据集可从MATLAB Central获得

尽管如此,许多人在应用分类算法之前将主成分分析作为预处理步骤。PCA被广泛使用

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

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


    @David Heffernan:这是我迄今为止看到的最模糊的评论@杰克:R在语法上类似于Matlab。如果你想走那条路,你可以看看。是的,R是你想要的PCA@David赫弗南:那Matlab的主成分分析代码怎么办?它太少了,以至于人们必须切换到R才能得到好的结果?@Jonas我相信你可以在Matlab中完成,而且我相信它工作得很好,只是统计在R中是最简单的。你可能会发现这篇文章很有用:注意,这个解决方案需要统计工具箱。我已经尝试过了,但问题是我想看看哪些特征在我的数据中是重要的。我想建立一个神经网络,我只想把这些特性作为输入。请把所有相关的代码和文档放在这里。链接可能会随着时间的推移而改变,并使此答案无效。