Ресурси для вивчення способів реалізації ансамблевих методів


13

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

  • Які хороші ресурси для впровадження ансамблевих методів?
  • Чи є якісь ресурси щодо впровадження в Python?

Редагувати:

Щоб прояснити деякі результати на основі обговорення в коментарях, я не шукаю алгоритмів ансамблі, таких як randomForest і т. Д. Натомість мені цікаво, як можна комбінувати різні класифікації з різних алгоритмів.

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

Відповіді:


12

Гарне місце для початку - це огляд навчання ансамблю. Особливо, вам захочеться придивитись до підсилення та мішків . Інший метод, який використовується командою "The Ensemble" в премії Netflix, називається "змішування" або складання функції .

Потім просто знайдіть деякі бібліотеки, які реалізують їх і працюють звідти. Швидкий гуглінг виявив scikit і помаранчевий колір , який повинен мати мішковину та прискорення (і вони обидва Python).

Якщо, крім простого використання ансамблевих методів, ви хочете трохи вивчити теорію, то, я думаю, цей документ стане гарним стрибком (дотримуйтесь посилань на деталі, які вас цікавлять).

Ура.


(+1) woa, чудові посилання тут: O!
steffen

Спасибі. Просто намагаюся зробити щось про щось про одну з небагатьох тем, про які я знаю.
Stumpy Joe Pete

4

"Методи ансамблю в обробці даних: підвищення точності за допомогою комбінування прогнозів", Seni та Elder - відмінна посилання на практичну теорію ансамблю та впровадження, але супровідний код заснований на R.

«Машинне навчання: алгоритмічна перспектива», С. Марсленд - Відмінний практичний текст на основі Питона, але не такий присвячений чистим концепціям ансамблю, як перша посилання.


2

Реакція тупого Джо Піта була ідеальною, але, оскільки ви згадали про реалізацію Python, я хотів згадати про проект варіння з Федерального університету де Пернамбуко.

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 має пакет програм під назвою Random Forests, який реалізує це для класифікації та регресії ансамблів дерев. У мене немає жодного безкоштовного пакету R, щоб запропонувати. Я думаю, у них є посібник користувача, який пояснить їхню реалізацію. За аналогією ви, напевно, могли зрозуміти, як це зробити для інших методів ансамблю.


2
Існує безліч чудових пакетів R для ансамблів дерев: наприклад, randomForest (класичний алгоритм), party :: cforest (випадковий ліс із використанням дерев умовних висновків), gbm (збільшення градієнта дерев). Я читаю ОП як бажаю реалізувати класифікатор / регресійні агностичні ансамблі. Найпростіша процедура - це звичайно середні прогнози.
B_Miner

@B_Miner Приємно знати, що в Р. є варіанти реалізації, можливо, хтось міг би пояснити мені, чому конкретна реалізація в Python бажана (вибачте, будь ласка, моє незнання щодо R). Я читав ОП, щоб хотіти знати джерела, які описують, як реалізувати методи ансамблю. Пакет Салфорда був тим, про який я знав, що може мати деяку документацію.
Майкл Р. Черник

Незважаючи на те, що основана на роботі паперу Фрейнда та Шапіра в цілому працює, наскільки я знаю, найкращі результати були досягнуті за допомогою деревних класифікаторів.
Майкл Р. Черник

Я особисто отримую дійсно хороші результати простим усередненням ймовірностей - але мій домен більше цікавлять імовірності, ніж вибір ярлика класу.
B_Miner

@MichaelChernick Якщо ви робите дійсно інтенсивну передбачувальну роботу (наприклад, змагання з Kaggle), ви не збираєтеся вибирати ані прискорені, ані випадкові ліси. Ви хочете зібрати якомога більше можливих моделей, які допоможуть вам (як правило, це набагато більше, ніж одна). Тож у цьому контексті важливі й інші ансамблеві методи, навіть якщо випадкові ліси є набагато страшнішими за будь-що інше.
Stumpy Joe Pete


0

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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.