Python中的PLS-DA加载图

时间:2019-06-06 11:59:05

标签: python matplotlib scikit-learn

如何使用Matplotlib绘制PLS-DA图的加载图,如PCA一样?

此答案说明了如何使用PCA来完成: Plot PCA loadings and loading in biplot in sklearn (like R's autoplot)

但是,两种方法之间存在一些显着差异,这也使实现也有所不同。 (此处https://learnche.org/pid/latent-variable-modelling/projection-to-latent-structures/interpreting-pls-scores-and-loadings解释了一些相关的差异)

要制作PLS-DA图,我使用以下代码:

from sklearn.preprocessing import StandardScaler
from sklearn.cross_decomposition import PLSRegression
import numpy as np
import pandas as pd

targets = [0, 1]

x_vals = StandardScaler().fit_transform(df.values)

y = [g == targets[0] for g in sample_description]
y = np.array(y, dtype=int)

plsr = PLSRegression(n_components=2, scale=False)
plsr.fit(x_vals, y)

colormap = {
    targets[0]: '#ff0000',  # Red
    targets[1]: '#0000ff',  # Blue
}

colorlist = [colormap[c] for c in sample_description]

scores = pd.DataFrame(plsr.x_scores_)
scores.index = x.index

x_loadings = plsr.x_loadings_
y_loadings = plsr.y_loadings_

fig1, ax = get_default_fig_ax('Scores on LV 1', 'Scores on LV 2', title)
ax = scores.plot(x=0, y=1, kind='scatter', s=50, alpha=0.7,
                 c=colorlist, ax=ax)

0 个答案:

没有答案