Я пытаюсь разобраться с примером вложенного и не вложенного резюме в Sklearn. Я проверил несколько ответов, но я все еще запутался в примере. Следовательно, из набора данных x,
Внешний 10-кратный CV (для простоты n = 10) создает 10 учебных наборов и 10 тестовых наборов:
Тогда, внутреннее
Inner 10-CV Sptits
Каждый набор обучения на 10 тренинга и 10 тестовых наборов:
Код: Выделить всё
From Tr0: (Tr0_0,Te_0_0), ... , (Tr0_9,Te0_9)
From Tr9: (Tr9_0,Te_9_0), ... , (Tr9_9,Te9_9)
Теперь, используя внутреннее резюме, мы можем найти лучшие значения c для каждого внешнего обучающего набора. Это делается путем проверки всех возможных значений c с внутренним CV. Значение, обеспечивающее наивысшую производительность (например, точность), выбирается для этого конкретного внешнего обучающего набора. Наконец, обнаружив лучшие значения c для каждого внешнего обучающего набора, мы можем рассчитать беспристрастную точность, используя внешние наборы тестов. С помощью этой процедуры образцы, используемые для идентификации наилучшего параметра (то есть c ), не используются для вычисления производительности классификатора, следовательно, мы имеем абсолютно беспристрастную проверку.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=svm, param_grid=p_grid, cv=inner_cv)
clf.fit(X_iris, y_iris)
non_nested_scores
= 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 = nested_score.mean()
< /code>
Из того, что я понимаю, код просто вычисляет оценки, используя две разные перекрестные проверки (т.е. различные разделения на обучение и набор тестирования). Оба они использовали весь набор данных. gridcv идентифицирует лучшие параметры с использованием одного (из двух CV), затем cross_val_score вычисляется со вторым CV, производительность при использовании лучших параметров. Что мне не хватает в примере?
Подробнее здесь: https://stackoverflow.com/questions/466 ... ikit-learn