GridSearch по модели и классификаторам - PullRequest
0 голосов
/ 10 мая 2018

Я только что натолкнулся на этот пример выбора сетки моделей здесь:

https://chrisalbon.com/machine_learning/model_selection/model_selection_using_grid_search/

Вопрос:

Пример читает

# Create a pipeline
pipe = Pipeline([('classifier', RandomForestClassifier())])

# Create space of candidate learning algorithms and their hyperparameters
search_space = [{'classifier': [LogisticRegression()],
                 'classifier__penalty': ['l1', 'l2'],
                 'classifier__C': np.logspace(0, 4, 10)},
                {'classifier': [RandomForestClassifier()],
                 'classifier__n_estimators': [10, 100, 1000],
                 'classifier__max_features': [1, 2, 3]}]lassifier', RandomForestClassifier())])

Как я понимаю в коде, search_space содержит используемые классификаторы и их параметры. Тем не менее, я не понимаю, что цель Pipeline и почему она содержит RandomForestClassifier()?

Справочная информация: В моем желаемом рабочем процессе мне нужно обучить модель doc2vec (gensim), основанную на 3 различных классификаторах. Как модель, так и классификаторы должны применять GridSearch к параметрам. Мне нравится хранить результаты в таблице и сохранять лучшую модель, то есть модель с высочайшей точностью.

1 Ответ

0 голосов
/ 11 мая 2018

Конвейер используется для объединения последовательных моделей преобразования данных, за которыми следует классификатор / регрессор.Что-то вроде сначала преобразования текста в числа с использованием TfidfVectorizer, а затем обучения классификатора.

pipe = Pipeline([('vectorizer',TfidfVectorizer()), 
                 ('classifier', RandomForestClassifier())])

Только для одного класса, нет необходимости в Pipeline.

Здесь, в вашем коде, он используется в качестве заполнителя, так что параметры можно использовать с помощью 'classifier'префикс.И сам classifier может быть заменен из параметров.

...