with scikit not name learn folds cross_val_score cross code python machine-learning scikit-learn

python - not - Cómo acceder a los puntajes de validación cruzada anidados de Scikit Learn



model selection k fold python (1)

No puede acceder a params individuales y mejores params desde cross_val_score . Lo que cross_val_score hace internamente es clonar el estimador suministrado y luego llamar fit métodos de fit y score en él con X , y en estimadores individuales.

Si desea acceder a los params en cada división, puede usar:

#put below code inside your NUM_TRIALS for loop cv_iter = 0 temp_nested_scores_train = np.zeros(4) temp_nested_scores_test = np.zeros(4) for train, test in outer_cv.split(X_iris): clf.fit(X_iris[train], y_iris[train]) temp_nested_scores_train[cv_iter] = clf.best_score_ temp_nested_scores_test[cv_iter] = clf.score(X_iris[test], y_iris[test]) #You can access grid search''s params here nested_scores_train[i] = temp_nested_scores_train.mean() nested_scores_test[i] = temp_nested_scores_test.mean()

Estoy usando Python y me gustaría utilizar la validación cruzada anidada con scikit learn. He encontrado un muy buen ejemplo :

NUM_TRIALS = 30 non_nested_scores = np.zeros(NUM_TRIALS) nested_scores = np.zeros(NUM_TRIALS) # Choose cross-validation techniques for the inner and outer loops, # independently of the dataset. # E.g "LabelKFold", "LeaveOneOut", "LeaveOneLabelOut", etc. inner_cv = KFold(n_splits=4, shuffle=True, random_state=i) outer_cv = KFold(n_splits=4, shuffle=True, random_state=i) # Non_nested parameter search and scoring clf = GridSearchCV(estimator=svr, param_grid=p_grid, cv=inner_cv) clf.fit(X_iris, y_iris) non_nested_scores[i] = clf.best_score_ # Nested CV with parameter optimization nested_score = cross_val_score(clf, X=X_iris, y=y_iris, cv=outer_cv) nested_scores[i] = nested_score.mean()

¿Cómo se puede acceder al mejor conjunto de parámetros, así como a todos los parámetros (con su puntuación correspondiente) de la validación cruzada anidada?