Алгоритм генерації правил класифікації


11

Таким чином, у нас є потенціал для програми машинного навчання, яка досить чітко вписується в традиційну проблемну область, яку вирішують класифікатори, тобто у нас є набір атрибутів, що описують предмет та "відро", до якого вони в кінцевому підсумку. Однак, а не створювати моделі імовірностей, як у Naive Bayes або подібних класифікаторах, ми хочемо, щоб наш результат був набором грубо зрозумілих для людини правил, які можуть бути переглянуті та змінені кінцевим користувачем.

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

Item A { 4-door, small, steel } => { sedan }
Item B { 2-door, big,   steel } => { truck }
Item C { 2-door, small, steel } => { coupe }

Я просто хочу, щоб правила, які говорять "якщо він великий і 2-дверний, це вантажівка", а не правила, які говорять "якщо це 4-дверні, то це теж мало".

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

Відповіді:


9

C45 виробництва Quinlan здатний створити правило для прогнозування. Перевірте цю сторінку Вікіпедії . Я знаю, що в Weka його звуть J48. Я поняття не маю, які є реалізація в R або Python. У будь-якому випадку, з такого роду дерев рішень ви повинні мати можливість виводити правила прогнозування.

Пізніше відредагуйте

Також вас можуть зацікавити алгоритми прямого виведення правил класифікації. RIPPER - це один, який знову в Weka отримав іншу назву JRip. Дивіться оригінальний документ для RIPPER: Швидка ефективна індукція правила, WW Cohen 1995


Я експериментував із C45 / J48 в попередньому проекті. Я не розумів, що є правила, які я можу отримати з неї. Я також перевірю RIPPER. Дякую!
super_seabass


Хотіли надати оновлення цього питання / відповіді: ми використовували JRip з деяким успіхом, але наш новий провідний претендент - FURIA ( cs.uni-paderborn.de/fileadmin/Informatik/eim-i-is/PDFs/… ). Він генерує найкращі правила для огляду / використання людиною, оскільки він намагається створити вичерпний набір правил. JRip створює хороші правила, але в ньому є правило "класифікація" за класифікацією, коли інші правила не застосовуються. Цебра за замовчуванням не працюють добре в контексті нашого проекту, нам потрібні вичерпні правила.
super_seabass

7

Насправді це навіть простіше, ніж те, що ви описуєте --- ви просто шукаєте алгоритм базового дерева класифікації (тому не потрібно трохи складніших варіантів, таких як C4.5, оптимізованих для точності прогнозування). Канонічний текст:

http://www.amazon.com/Classification-Regression-Wadsworth-Statistics-Probability/dp/0412048418

Це легко реалізується в R:

http://cran.r-project.org/web/packages/tree/tree.pdf

і Python:

http://scikit-learn.org/stable/modules/tree.html


Я не згоден, що дерева тут допомагають. Справа в правилах фільтрації, і чого можна досягти за допомогою пакету arules в Р.
adesantos


1

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

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