Методы демонстрации прогресса в перекрестной проверке поиска по сетке Sklearn с примерами кода

Чтобы показать ход поиска по сетке с перекрестной проверкой в ​​scikit-learn (sklearn), можно использовать различные методы. Вот несколько примеров кода:

Метод 1: использование параметра verbose
Класс GridSearchCVв sklearn имеет параметр verbose, который управляет подробностью сетки поиск. Если установить для него положительное целое число, поиск по сетке будет отображать сообщения о ходе процесса оптимизации. Вот пример:

from sklearn.model_selection import GridSearchCV
from sklearn.svm import SVC
# Define the parameter grid
param_grid = {'C': [0.1, 1, 10], 'kernel': ['linear', 'rbf']}
# Create the SVM classifier
svm = SVC()
# Create the GridSearchCV object with verbose=2
grid_search = GridSearchCV(estimator=svm, param_grid=param_grid, verbose=2)
# Fit the data
grid_search.fit(X, y)

В этом примере настройка параметра verbose=2будет отображать подробные сообщения о ходе процесса поиска по сетке.

Метод 2: использование пользовательских обратных вызовов
Вы также можете использовать пользовательские обратные вызовы, чтобы показать ход поиска по сетке. Sklearn предоставляет объект sklearn.model_selection.GridSearchCV, который можно использовать с методом fit(). Вы можете определить функцию обратного вызова и передать ее объекту GridSearchCVдля отображения сообщений о ходе выполнения или соответствующей информации во время поиска. Вот пример:

from sklearn.model_selection import GridSearchCV
from sklearn.svm import SVC
# Define the parameter grid
param_grid = {'C': [0.1, 1, 10], 'kernel': ['linear', 'rbf']}
# Create the SVM classifier
svm = SVC()
# Define a custom callback function
def progress_callback(estimator, params, n_iter):
    print(f"Iteration {n_iter} - Parameters: {params}")
# Create the GridSearchCV object with the custom callback
grid_search = GridSearchCV(estimator=svm, param_grid=param_grid, callback=progress_callback)
# Fit the data
grid_search.fit(X, y)

В этом примере пользовательская функция progress_callbackвызывается после каждой итерации поиска по сетке и отображает номер итерации и проверяемые параметры.

Метод 3: использование сторонних библиотек
Существуют также сторонние библиотеки, которые обеспечивают более расширенную визуализацию прогресса во время поиска по сетке. Одной из таких библиотек является tqdm, которая позволяет создавать индикаторы выполнения. Вы можете обернуть объект поиска по сетке tqdm, чтобы во время поиска отображался индикатор выполнения. Вот пример:

from sklearn.model_selection import GridSearchCV
from sklearn.svm import SVC
from tqdm import tqdm
# Define the parameter grid
param_grid = {'C': [0.1, 1, 10], 'kernel': ['linear', 'rbf']}
# Create the SVM classifier
svm = SVC()
# Create the GridSearchCV object
grid_search = GridSearchCV(estimator=svm, param_grid=param_grid)
# Wrap the grid search with tqdm
grid_search = tqdm(grid_search)
# Fit the data
grid_search.fit(X, y)

В этом примере библиотека tqdmиспользуется для оболочки объекта GridSearchCV, который добавляет индикатор выполнения в процесс поиска по сетке.