如何获取 `skbio` 的 PCoA(主坐标分析)结果?

我在查看 skbioPCoA 方法的 attributes(如下所示)。我对这个 API 不太熟悉,我想能够获取 eigenvectors 以及原始点投影到新轴上的坐标,类似于 sklearn.decomposition.PCA 中的 .fit_transform,这样我就可以创建一些 PC_1 vs PC_2 风格的图表。我已经搞清楚了如何获取 eigvalsproportion_explained,但 features 返回的是 None

这是因为它处于测试阶段吗?

如果有使用这个的教程,我将不胜感激。我是 scikit-learn 的超级粉丝,并且希望开始使用更多 scikit 的产品。

|  Attributes |  ---------- |  short_method_name : str |      缩写后的排序方法名称。 |  long_method_name : str |      排序方法名称。 |  eigvals : pd.Series |      结果特征值。索引对应于排序轴标签。 |  samples : pd.DataFrame |      样本在排序空间中的位置,由样本 ID 行索引。 |  features : pd.DataFrame |      特征在排序空间中的位置,由特征 ID 行索引。 |  biplot_scores : pd.DataFrame |      样本相对于特征的相关系数。 |  sample_constraints : pd.DataFrame |      站点约束(约束变量的线性组合):在解释变量 X 空间中的站点坐标。这些是拟合的站点分数。 |  proportion_explained : pd.Series |      在排序空间中每个维度解释的比例。索引对应于排序轴标签

这是我生成 主成分分析 对象的代码。

import numpy as npimport pandas as pdimport matplotlib.pyplot as pltfrom sklearn.datasets import load_irisfrom sklearn.preprocessing import StandardScalerfrom sklearn import decompositionimport seaborn as sns; sns.set_style("whitegrid", {'axes.grid' : False})import skbiofrom scipy.spatial import distance%matplotlib inlinenp.random.seed(0)# Iris 数据集DF_data = pd.DataFrame(load_iris().data,                        index = ["iris_%d" % i for i in range(load_iris().data.shape[0])],                       columns = load_iris().feature_names)n,m = DF_data.shape# print(n,m)# 150 4Se_targets = pd.Series(load_iris().target,                        index = ["iris_%d" % i for i in range(load_iris().data.shape[0])],                        name = "Species")# 标准化,均值 = 0,方差 = 1DF_standard = pd.DataFrame(StandardScaler().fit_transform(DF_data),                            index = DF_data.index,                           columns = DF_data.columns)# 距离矩阵Ar_dist = distance.squareform(distance.pdist(DF_standard.T, metric="braycurtis")) # (m x m) 距离测量DM_dist = skbio.stats.distance.DistanceMatrix(Ar_dist, ids=DF_standard.columns)PCoA = skbio.stats.ordination.pcoa(DM_dist)

enter image description here


回答:

你可以通过 OrdinationResults.samples 访问转换后的样本坐标。这将返回一个由样本 ID 行索引的 pandas.DataFrame(即距离矩阵中的 ID)。由于主坐标分析是对样本的距离矩阵进行操作,因此转换后的特征坐标(OrdinationResults.features)不可用。scikit-bio 中接受样本 x 特征表作为输入的其他排序方法将具有转换后的特征坐标(例如 CA、CCA、RDA)。

旁注:distance.squareform 调用是不必要的,因为 skbio.DistanceMatrix 支持方形或向量形式的数组。

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注