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)):
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)
#%% 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)
################################################################################ # # 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")