Благодаря помощи переполнения стека я успешно реализовал поиск по сетке с перекрестной проверкой для моей модели дерева решений.
dtc = DecisionTreeClassifier()
parameter_grid = {'splitter': ['best', 'random'],
'min_samples_split': [15, 16, 17, 18, 19,20, 21, 22, 23, 24, 25,],
'min_samples_leaf': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10,],
'criterion': ['gini', 'entropy'],
'random_state': [0]}
cross_validation = StratifiedKFold(n_splits=10)
grid_search = GridSearchCV(dtc, param_grid=parameter_grid, cv=cross_validation)
grid_search.fit(x, y)
Мой вопрос касается теории, стоящей за этим.
Я знаю, что перекрестная проверка в k-кратном порядке разделяет весь мой набор данных на k
наборы обучающих данных и соответствующие наборы проверочных данных.
Затем, я предполагаю, что мой код выполняет нечто подобное:
применить поиск по сетке k
раз, то есть для каждого набора обучающих данных из k-кратных значений.
лучшие параметрыпоиска в сетке каждого k
-кратного сечения применяются к соответствующим наборам данных проверки.
ошибка проверки вычисляется для каждого набора данных проверки k
-сгибов
Это пока правильно?
Какие значения я получаю с помощью grid_search.best_score_ и grid_search.best_params_?Это лучшие ошибки проверки (grid_search.best_score_) из шага 3 и соответствующие наилучшие значения поиска по сетке (grid_search.best_params_) или какое-то среднее значение?
Любая помощь или разъяснения приветствуются!