Альтернативи деревам класифікації з кращою прогнозованою (наприклад: CV) роботою?


23

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

Дані, з якими я маю справу, мають фактори як для пояснювальних, так і для пояснених змінних.

Я пам’ятаю, що в цьому контексті натрапляв на випадкові ліси та нейронні мережі, хоч ніколи раніше не пробував їх, чи є ще один хороший кандидат на таке завдання моделювання (очевидно, в R)?


5
Не турбуйтеся з нейронними мережами, це застаріла технологія.

1
@mbq Ви все ще стоїте біля цього твердження?
ромбідодекаедр

@rhombidodecahedron Звичайно, грайте з NN з 2010 року, і ви погодиться. Крім того, я сумніваюся, що будь-яка модель DL внесе щось у таблицю з даними (імовірно) таких невеликих розмірів.

Відповіді:


25

Я думаю, що варто було б спробувати «Випадкові ліси» ( randomForest ); деякі посилання були надані у відповідь на відповідні запитання: Вибір функцій для "остаточної" моделі при виконанні перехресної перевірки в машинному навчанні ; Чи можна моделі CART зробити надійними? . Підвищення / пакетування робить їх більш стійкими, ніж одна КАРТА, яка, як відомо, дуже чутлива до невеликих збурень. Деякі автори стверджували, що воно виконується так само, як і штрафні машини SVM або градієнти, що підсилюють ґрунт (див., Наприклад, Cutler et al., 2009). Я думаю, що вони, безумовно, перевершують національні мережі.

Boulesteix і Strobl надають хороший огляд декількох класифікаторів для вибору оптимального класифікатора та негативного зміщення в оцінці швидкості помилок: емпіричне дослідження високого розміру прогнозування (BMC MRM 2009 9: 85). Я чув про ще одне хороше дослідження на засіданні IV EAM , яке має бути переглянуто в статистиці медицини ,

Жоао Мароко , Діна Сільва, Мануела Геррейро, Олександр де Мендонса. Чи перевершують випадкові ліси нейронні мережі, підтримуючі векторні машини та класифікатори дискримінантного аналізу? Тематичне дослідження еволюції до деменції у пацієнтів літнього віку з когнітивними скаргами

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

Пакет glmnet від Friedman and coll. Реалізує штрафований GLM (див. Огляд у Журналі статистичного програмного забезпечення ), тому ви залишаєтесь у відомій моделі моделювання.

В іншому випадку ви також можете шукати класифікатори, засновані на правилах асоціації (див. Перегляд завдань CRAN на машинному навчанні або алгоритми 10 кращих алгоритмів в обробці даних для легкого ознайомлення з деякими з них).

Я хотів би зазначити ще один цікавий підхід, який я планую повторно реалізувати в R (насправді це код Matlab), який є дискримінаційним кореспондентським аналізом від Hervé Abdi. Хоча спочатку було розроблено для вирішення малих вибіркових досліджень з великою кількістю пояснювальних змінних (зрештою, згрупованих у когерентні блоки), схоже, це ефективно поєднує класичний DA із методиками зменшення даних.

Список літератури

  1. Cutler, A., Cutler, DR, and Stevens, JR (2009). Деревоподібні методи , у високовимірному аналізі даних у дослідженнях раку , Li, X. та Xu, R. (ред.), Стор. 83-101, Спрингер.
  2. Saeys, Y., Inza, I., and Larrañaga, P. (2007). Огляд методів відбору ознак у біоінформатиці . Біоінформатика, 23 (19): 2507-2517.

2
+1 Відмінна відповідь. Я також погоджуюся з рекомендацією щодо карети.
Шейн

12

Важливо пам’ятати, що не існує жодного алгоритму, який завжди кращий за інші. Як зазначають Волперт і Макборді, "будь-які два алгоритми є рівнозначними, коли їх продуктивність усереднюється за всіма можливими проблемами". (Докладні відомості див. У Вікіпедії .)

Для даної програми "найкращий" - це, як правило, найбільш тісно узгоджений з вашою програмою з точки зору припущень, які вона робить, типів даних, якими він може обробляти, гіпотези, які він може представляти тощо.

Тож корисно охарактеризувати ваші дані за такими критеріями, як:

  • У мене дуже великий набір даних або скромний?
  • Чи велика розмірність?
  • Чи змінні чисельні (безперервні / дискретні), або символічні, або змішані, та / або можуть бути перетворені при необхідності?
  • Чи величини змін можуть бути значною мірою незалежними або досить залежними?
  • Чи можуть бути зайві, галасливі або неактуальні змінні?
  • Чи хочу я мати можливість перевірити генеровану модель і спробувати її осмислити?

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

Вибачте, що не даю вам простої відповіді, але я сподіваюся, що це все-таки допоможе!


2
+1 Полюбіть цитату. ("будь-які два алгоритми еквівалентні, коли їхня середня продуктивність усереднюється за всіма можливими проблемами".)
Асад Ебрагім

8

Для багатокласової класифікації хороші вибір також є векторними машинами підтримки. Зазвичай я використовую для цього пакет R kernlab.

Дивіться наступний документ JSS для хорошого обговорення: http://www.jstatsoft.org/v15/i09/


@Tal Ось справедливий (або я так вважаю) огляд SVM та RFs: всебічне порівняння випадкових лісів та підтримуючих векторних машин для класифікації раку на основі мікромасив, j.mp/ab7U8V . Я також вважаю за краще , kernlabщоб e1071.
chl

2
@chl Мені не подобається цей документ, коли він зроблений з точки зору навчання SVM - одночасне повторення стохастичного алгоритму (RF) - це лише мотлох; також у додатку 2 показано, наскільки погано може застосовуватися робочий процес SVM до РФ. Але я погоджуюся, що майже завжди SVM може бути налаштований на перевершення РЧ через хитрість ядра (якого звичайний РФ не має, хоча це не означає, що він не може його взагалі мати), але за допомогою експоненціально зростаючих зусиль з оптимізації.

@mbq Дійсно, це хороший момент.
chl

3

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

Хочу додати, що найчастіше перехід на SVM дає дуже невтішні результати. Справа в тому, що хоча такі методи, як випадкові дерева, майже тривіальні у використанні, SVM трохи складніше.

Я вважав цей документ неоціненним, коли я вперше використовував SVM (Практичний посібник з підтримки векторної класифікації) http://www.csie.ntu.edu.tw/~cjlin/papers/guide/guide.pdf

У R ви можете використовувати пакет e1071 для SVM, він посилається на стандарт фактичної (принаймні у вільному програмному забезпеченні!) Бібліотеки libSVM.


2
kernlab також використовує libsvm для оптимізації, тому немає великої різниці в цьому сенсі (хоча він набагато гнучкіший).
Шейн

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