Ресурсы для изучения того, как реализовать методы ансамбля

13

Я теоретически (вроде) понимаю, как они будут работать, но не уверен, как на самом деле использовать метод ансамбля (такой как голосование, взвешенные смеси и т. Д.).

  • Каковы хорошие ресурсы для реализации методов ансамбля?
  • Существуют ли какие-либо конкретные ресурсы относительно реализации в Python?

РЕДАКТИРОВАТЬ:

Чтобы прояснить некоторые из них, основываясь на обсуждении комментариев, я не ищу ансамблевые алгоритмы, такие как randomForest и т. Д. Вместо этого мне интересно, как можно объединить разные классификации из разных алгоритмов.

Например, скажем, кто-то использует логистическую регрессию, SVM и некоторые другие методы, чтобы предсказать класс определенного наблюдения. Каков наилучший способ получения наилучшей оценки класса на основе этих прогнозов?

user1074057
источник

Ответы:

12

Хорошее место для начала - получить представление об обучении ансамблю. Особенно вам захочется взглянуть на повышение и упаковку . Другой метод, который использовался командой «Ансамбль» в премии Netflix, называется либо «смешивание», либо набор функций .

Затем просто найдите несколько библиотек, которые реализуют их и работают оттуда. Быстрое прибегание к поиску включило scikit и оранжевый , оба из которых должны иметь мешки и повышение (и оба они Python).

Если, помимо использования ансамблевых методов, вам хотелось бы немного изучить теорию, то я думаю, что эта статья будет хорошей отправной точкой (следуйте ссылкам на интересующие вас части).

Приветствия.

Пупси Джо Пит
источник
(+1) Ваа, отличные ссылки здесь: O!
Штеффен
Благодарю. Просто пытаюсь поделиться чем-то об одной из немногих тем, о которых я что-то знаю.
Stumpy Джо Пит
4

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

«Машинное обучение: Алгоритмическая перспектива», С. Марсланд - Отличный практический текст на основе Python, но не настолько посвященный чисто ансамблевым концепциям, как первая ссылка.

похлопывание
источник
2

Ответ Стампи Джо Пита был идеальным, но так как вы упомянули о реализации Python, я хотел упомянуть проект brew от Universidade Federal de Pernambuco.

https://github.com/viisar/brew

from brew.base import Ensemble
from brew.base import EnsembleClassifier
from brew.combination import import Combiner

# create your Ensemble
clfs = your_list_of_classifiers # [clf1, clf2]
ens = Ensemble(classifiers = clfs)

# create your Combiner
# the rules can be 'majority_vote', 'max', 'min', 'mean' or 'median'
comb = Combiner(rule='majority_vote')

# now create your ensemble classifier
ensemble_clf = EnsembleClassifier(ensemble=ens, combiner=comb)
ensemble_clf.predict(X)

На этом этапе у них есть генерация ансамбля, комбинация, сокращение и динамический выбор.

Ограничения: только классификация; нет стека в текущей публичной версии; не много документации.

Дайвид Оливейра
источник
0

Salford Systems имеет пакет программного обеспечения под названием «Случайные леса», который реализует это для ансамблей дерева классификации и регрессии. У меня нет бесплатных пакетов R, чтобы предложить. Я предполагаю, что у них есть руководство пользователя, которое объяснит их реализацию. По аналогии вы, вероятно, могли бы выяснить, как это сделать для других методов ансамбля.

Майкл Р. Черник
источник
2
Существует множество отличных R-пакетов для ансамблей деревьев: например, randomForest (классический алгоритм), party :: cforest (случайный лес с использованием деревьев условного вывода), gbm (повышение градиента деревьев) и многие другие. Я прочитал ОП как желающий реализовать ансамбли агностиков классификатора / регрессии. Самая простая процедура - это, конечно, усреднение прогнозов.
B_Miner
@B_Miner Приятно знать, что в R. есть реализации, возможно, кто-нибудь может объяснить мне, почему желательна конкретная реализация в Python (прошу прощения за мое незнание о R). Я прочитал ОП, чтобы узнать источники, которые описывают, как реализовать методы ансамбля. Пакет Salford был одним из тех, о которых я знал, в нем может быть некоторая документация.
Майкл Р. Черник
Несмотря на то, что, как я знаю, основанные на работах по повышению производительности бумаги Фрейнда и Шапира в целом, наилучшие результаты достигаются при использовании древовидных классификаторов.
Майкл Р. Черник
Лично я получаю действительно хорошие результаты простым усреднением вероятностей - но моя область больше заинтересована в вероятностях, чем в выборе метки класса.
B_Miner
@MichaelChernick Если вы делаете действительно интенсивную прогностическую работу (например, соревнование Kaggle), вы не будете выбирать ни форсированные, ни случайные леса. Вы захотите собрать как можно больше моделей, которые вам помогут (что обычно намного больше, чем одна). Таким образом, в этом контексте, другие методы ансамбля будут важны, даже если случайные леса намного лучше, чем что-либо еще.
Stumpy Джо Пит
0

Scikit-Learn ensembling руководство обеспечивает упаковки в пакеты и повышения мета-классификаторов и регрессоров. Кроме того, библиотека mlxtend предоставляет реализации метаклассификаторов стека и регрессоров.

Вадим Смоляков
источник