예제 #1
0
    for i in vec2:
        vec_c.append(i)

    if j < len_train:
        l_p.append(vec_p)
        l_c.append(vec_c)
    else:
        l_p_t.append(vec_p)
        l_c_t.append(vec_c)
    j += 1

sorted_p = np.asarray(l_p)
sorted_c = np.asarray(l_c)  #Convert the input to an array

plc = PLSCanonical()
plc.fit_transform(sorted_c, sorted_p)
sorted_c, sorted_p = plc.transform(sorted_c, sorted_p)

sorted_c_test = np.asarray(l_c_t)
sorted_p_test = np.asarray(l_p_t)
sorted_c_test, sorted_p_test = plc.transform(sorted_c_test, sorted_p_test)

plr = PLSRegression()
plr.fit(sorted_c, sorted_p)
params = plr.get_params()
plr.set_params(**params)
y_score = plr.predict(sorted_c_test)
sim_count = 0

print("Test Similarity: ")
for i in range(len(y_score)):
예제 #2
0
        temp4 = []
        for e in temp1[:]:
            temp4.append(e)
        for e in temp2[:]:
            temp4.append(e)
        if len(temp4) == 600 and len(temp3) == 300:
            x_n.append(temp4)
            y_n.append(temp3)

npx = np.asarray(x, dtype=np.float64)
npy = np.asarray(y, dtype=np.float64)

npxn = np.asarray(x_n, dtype=np.float64)
npyn = np.asarray(y_n, dtype=np.float64)
cca = PLSCanonical(n_components=2)
cca.fit_transform(npx, npy)
npx, npy = cca.transform(npx, npy)
npxn, npyn = cca.transform(npxn, npyn)

pls.fit(npx, npy)
params = pls.get_params(deep=True)
print(params)
pls.set_params(**params)

y_score = pls.predict(npxn)

sim_count = 0
tol = 0.1

for index in range(len(y_score)):
    sub_result = np.subtract(y_score, npyn)
예제 #3
0
#%% PLS mode-A
lda = LDA()
nComponents = np.arange(1,nClasses+1)
plsCanScores = np.zeros((2,np.alen(nComponents)))
for i,n in enumerate(nComponents):
    plscan = PLSCanonical(n_components=n)
    plscan.fit(dataTrain,Ytrain)
    dataTrainT = plscan.transform(dataTrain)
    dataTestT = plscan.transform(dataTest)
    plsCanScores[:,i] = util.classify(dataTrainT,dataTestT,labelsTrain,labelsTest)
fig = plt.figure()
util.plotAccuracy(fig,nComponents,plsCanScores)
plt.title('PLS Canonical accuracy',figure=fig)

plscan = PLSCanonical(n_components=2)
xt,yt = plscan.fit_transform(dataTrain,Ytrain)
fig = plt.figure()
util.plotData(fig,xt,labelsTrain,classColors)

u = plscan.x_weights_
plt.quiver(u[0,0],u[1,0],color='k',edgecolor='k',lw=1,scale=0.1,figure=fig)
plt.quiver(-u[1,0],u[0,0],color='k',edgecolor='k',lw=1,scale=0.4,figure=fig)

#%% PLS2
lda = LDA()
nComponents = np.arange(1,nFeatures,8)
pls2Scores = np.zeros((2,np.alen(nComponents)))
for i,n in enumerate(nComponents):
    pls2 = PLSRegression(n_components=n)
    pls2.fit(dataTrain,Ytrain)
    dataTrainT = pls2.transform(dataTrain)
예제 #4
0
################################################################################
#
# PLS
#
################################################################################

import scipy.linalg
from sklearn.cross_decomposition import PLSCanonical

Xim_tgt_s_ = StandardScaler().fit_transform(Xim[msk_tgt, :])
Xdemoclin_tgt_s_ = StandardScaler().fit_transform(Xdemoclin[msk_tgt, :])
_, s_, _ = scipy.linalg.svd(Xdemoclin_tgt_s_, full_matrices=False)
rank_ = np.sum(s_ > 1e-6)

plsca = PLSCanonical(n_components=rank_)
%time PLSim_scores, PLSclin_scores = plsca.fit_transform(Xim_tgt_s_, Xdemoclin_tgt_s_)

# Imaging components
df_ = pd.DataFrame(PLSim_scores)
df_["respond_wk8"] = pop["respond_wk8"][msk_tgt].values
df_["respond_wk16"] = pop["respond_wk16"][msk_tgt].values
df_["GM_frac"] = pop["GM_frac"][msk_tgt].values
sns.pairplot(df_, hue="respond_wk8")
print("PC1 capture global GM atrophy")

# Demo/Clinic components
df_ = pd.DataFrame(PLSclin_scores)
for var in vars_demo + vars_clinic + ["respond_wk8", "respond_wk16"]:
    df_[var] = pop[var][msk_tgt].values

sns.pairplot(df_, hue="respond_wk8")