python - sklearn PLSRegression - X 的方差由潜在向量解释

标签 python machine-learning scikit-learn regression variance

我使用 Python 的 sklearn.cross_decomposition.PLSRegression 执行偏最小二乘回归

有没有办法为每个 PLS 分量检索 X 的解释方差分数,即 R2(X)?我正在寻找类似于 R pls 包中的 explvar() 函数的东西。但是,我也非常感谢有关如何自己计算它的任何建议。

有一个类似的question还有一个answer这解释了如何获得 Y 的方差。我想,在这种情况下,“Y 的方差”就是所要求的。这就是为什么我提出了一个新问题 - 希望没关系。

最佳答案

我设法找到了问题的解决方案。下面给出了 PLS 回归后每个潜在向量在 X 中解释的方差分数:

import numpy as np
from sklearn import cross_decomposition

# X is a numpy ndarray with samples in rows and predictor variables in columns
# y is one-dimensional ndarray containing the response variable

total_variance_in_x = np.var(X, axis = 0)

pls1 = cross_decomposition.PLSRegression(n_components = 5)
pls1.fit(X, y) 

# variance in transformed X data for each latent vector:
variance_in_x = np.var(pls1.x_scores_, axis = 0) 

# normalize variance by total variance:
fractions_of_explained_variance = variance_in_x / total_variance_in_x

关于python - sklearn PLSRegression - X 的方差由潜在向量解释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46327928/

相关文章:

python - 读取wav文件时出现RuntimeError

python - 在无向图中找到最大数量的非相交 2-cycles

python - 用 self.__init__(...) 重新初始化一个对象

machine-learning - Mahout - JPA 集成。我需要 CSV 文件吗?

python - 预测 tensorflow 模型

在 Keras 中执行分层 KFold 交叉验证的 Python 库

python - 如果 sklearn 中的输入向量中缺少列中的所有值,Imputers 将如何工作

python - 属性错误: object has no attribute in python

python - 有没有办法减少小批量 kmeans 的内存使用?

python - 类型错误 : unorderable types: str() < int()