Что такое мета-классификатор в функции StackingClassifier в mlxtend?

В библиотеке mlxtend есть мета-классификатор для обучения ансамблю, который называется "StackingClassifier".

Вот пример вызова функции StackingClassifier:

sclf = StackingClassifier(classifiers=[clf1, clf2, clf3], 
                          meta_classifier=lr)

Что такое meta_classifier здесь? Для чего его используют?

1 ответ

Что такое укладка?

Укладка - это метод обучения ансамбля, объединяющий несколько моделей классификации с помощью мета-классификатора. Индивидуальные модели классификации обучаются на основе полного учебного набора; затем метаклассификатор подбирается на основе результатов - мета-признаков - отдельных моделей классификации в ансамбле.

Источник: StackingClassifier-mlxtend

Так meta_classifier Параметр помогает нам выбрать classifier чтобы соответствовать выходу отдельных моделей.

Пример:

Предположим, что вы использовали 3 бинарные модели классификации говорят LogisticRegression, DT & KNN для укладки. Допустим 0, 0, 1 быть классами, предсказанными моделями. Теперь нам нужно classifier который будет делать большинство голосов по прогнозируемым значениям. И этот классификатор является meta_classifier, И в этом примере он выбрал бы 0 как предсказанный класс.

Вы можете продлить это для prob значения также.

Обратитесь к mlxtend-API для получения дополнительной информации

Мета -классификатор - это тот, который принимает все предсказанные значения ваших моделей. Как и в вашем примере, у вас есть три классификатора clf1, clf2, clf3, скажем, clf1 - это наивный байес, clf2 - это случайный лес, clf3 - svm. Теперь для каждой точки данных x_i в вашем наборе данных все ваши три модели будут запускать h_1(x_i), h_2(x_i), h_3(x_i), где h_1,h_2,h_3 соответствует функции clf1, clf2, clf3. Теперь эти три модели дадут три прогнозируемых значения y_i, и все они будут работать параллельно. Теперь с этими предсказанными значениями обучается модель, известная как метаклассификатор, и в вашем случае это логистическая регрессия.

Таким образом, для новой точки запроса (x_q) она будет вычисляться как h^'(h_1(x_q),h_2(x_q),h_3(x_q)), где h^'(h dash) - это функция, которая вычисляет y_q.

Преимущество мета-классификаторов или ансамблевых моделей заключается в том, что предположим, что ваш clf1 дает точность 90%, clf2 дает точность 92%, clf3 дает точность 93%. Таким образом, конечная модель даст точность более 93%, которая обучается с использованием метаклассификатора. Эти классификаторы стека широко используются при заканчивании в режиме kaggle.

meta_classifier - это просто классификатор, который делает окончательный прогноз среди всех прогнозов, используя эти прогнозы как функции. Итак, он берет классы, предсказанные различными классификаторами, и выбирает последний из них, который вам нужен.

Вот красивая и простая презентация StackingClassifier:

Другие вопросы по тегам