hzi-notebook
2/9/2019 - 3:58 PM

PLS - Anteil an Varianz

r2_sum = 0
naY = np.array(Y_train)
for i in range(0,2):
    Y_pred=np.dot(pls.x_scores_[:,i].reshape(-1,1),
                  pls.y_loadings_[:,i].reshape(-1,1).T)*naY.std(axis=0, ddof=1)+naY.mean(axis=0)
    r2_sum += round(r2_score(Y_train,Y_pred),4) 
    print('R2 for %d component                   : %g' %(i+1,round(r2_score(Y_train,Y_pred),4)))
        
#Sum of above
print('R2 for all components (sum above)    : %g' %r2_sum) 

#Calcuted from PLSRegression's 'predict' function.
print('R2 for all components (r2_score fct.): %g' %round(r2_score(Y_train,pls.predict(X_train)),4))