Доля объяснённой дисперсии с Pipeline

подскажите, пожалуйста, как найти долю объясненной дисперсии, если используем Pipeline?

    base_model = Pipeline([
    ('scaler', StandardScaler()),
    ('pca', PCA(svd_solver = "randomized", random_state=123, n_components = n)),
    ('clf', KNeighborsClassifier(n_neighbors=9))
    ])

base_cv_scores = cross_val_score(base_model, X, y, cv=cv, scoring='accuracy')

Ответы (1 шт):

Автор решения: MaxU

Если я правильно понял вопрос - вам нужно найти значение метрики R2.

Это можно сделать так - сначала обучаете вашу модель:

base_model.fit(X_train, y_train)

после этого находим значение метрики для предсказанных значений:

from sklearn.metrics import r2_score

y_pred = base_model.predict(X_test)

res = r2_score(y_test, y_pred)
→ Ссылка