当前位置: 首页 > 面试题库 >

使用scikit-learn PCA查找具有最大方差的维度

微生曾琪
2023-03-14
问题内容

我需要使用pca来确定一组特定数据中具有最高方差的维度。我正在使用scikit-
learn的pca来执行此操作,但是我无法从pca方法的输出中识别出方差最大的数据成分是什么。请记住,我不想消除这些尺寸,而只是确定它们。

我的数据组织成一个矩阵,其中包含150行数据,每行有4个维度。我正在做如下:

pca = sklearn.decomposition.PCA()
pca.fit(data_matrix)

当我打印 pca.explained_variance_ratio_时
,它会输出从最高到最低排序的方差比数组,但它不会告诉我它们对应于数据的哪个维度(我尝试过更改矩阵 上列 的顺序,并且得到的方差比数组是相同的)。

打印 pca.components_
给了我一个4x4矩阵(我将原始数量的组件作为pca的参数)带有一些值,我无法理解…的含义…根据scikit的文档,它们应该是方差最大的组件(也许是特征向量?),但没有迹象表明这些值指向哪个维度。

转换数据也无济于事,因为更改尺寸的方式我无法真正知道它们最初是哪个。

有什么办法可以通过scikit的pca获取此信息?谢谢


问题答案:

返回的pca.explained_variance_ratio_是与主成分的差异。您可以使用它们来查找pca可以更好地转换数据的维数(组件)。您可以为此使用阈值(例如,您计算有多少个方差大于0.5)。之后,您可以使用等于主成分高于使用阈值的维数(成分)数,通过PCA转换数据。缩小到这些维度的数据与原始数据中有关维度的数据不同。

您可以从以下链接检查代码:

http://scikit-
learn.org/dev/tutorial/statistical_inference/unsupervised_learning.html#principal-
component-analysis-pca



 类似资料:
  • 问题内容: 我有下表: 如何在每个“班级”中找到最大“分数”的“名称”? 要求的输出: 这是针对MySQL的。 问题答案:

  • 我对MongoDB和聚合有最基本的了解。我还没有找到一个明确的例子来说明如何比较多个符合标准的文档并返回1个具有特定属性中最大值的文档。 假设我们收集了以下文档: 如何按名称进行筛选(),然后返回具有最高值的文档?

  • 我试图找出几个日期之间的最大差异,这怎么可能?答案应该是01012001-01012011。我想找出两个列表之间最大的日期间隔,这怎么可能?

  • 我有一个对象流,我想找到一个最大值的一些属性,计算起来很昂贵。 作为一个特定的简单示例,假设我们有一个字符串列表,我们希望找到最酷的一个,给定函数。

  • 问题内容: 我有一个对象流,我想找到一个具有某些属性最大值的对象,该属性的计算成本很高。 作为一个简单的具体示例,假设我们有一个字符串列表,并且希望找到给定功能的最酷的字符串。 以下应该工作: 现在,这有两个问题。首先,假设计算起来很昂贵,这可能不是很有效。我想该方法将需要重复使用比较器,该比较器将依次重复调用,最后每个字符串将被多次调用。 其次,必须提供比较器会导致代码有些冗余。我更喜欢这样的语

  • 问题内容: 我有一个类似于下面的多维数组。我试图实现的是一种从数组中查找和获取“ Total”值最高的数组的方法,现在我知道有一个称为的函数,但不适用于像这样的多维数组。 我想做的是创建一个foreach循环并仅使用总数构建一个新数组,然后使用它来找到最大值,这将起作用,唯一的问题是检索与此相关的其余数据最大值。我不确定这也是最有效的方法。 有任何想法吗? 问题答案: 从PHP 5.5开始,您可以