Коротка версія: Я шукаю пакет R, який може будувати дерева рішень, тоді як кожен лист у дереві рішень - це повна модель лінійної регресії. AFAIK, бібліотека rpart
створює дерева рішень, де залежна змінна є постійною у кожному аркуші. Чи є інша бібліотека (або rpart
установка, про яку я не знаю), яка може будувати такі дерева?
Довга версія: Я шукаю алгоритм, який будує дерево рішень на основі набору даних про навчання. Кожне рішення у дереві розбиває набір навчальних даних на дві частини відповідно до умови однієї з незалежних змінних. Корінь дерева містить повний набір даних, і кожен елемент у наборі даних міститься рівно в одному вузлі аркуша.
Алгоритм виходить так:
- Почніть з повного набору даних, який є кореневим вузлом дерева. Виберіть цей вузол і назвемо його .
- Створення моделі лінійної регресії , за даними в .
- Якщо з лінійної моделі «s вище деякого порога , то ми зробили з , тому знак , як лист і перейти до кроку 5.
- Спробуйте випадкових рішень і виберіть одне, що дає найкраще у підвузлах:
- Виберіть випадкову незалежну змінну , а також випадковий поріг .
- Рішення розбиває набір даних на два нові вузли, і . Н Н ~ Н
- Створення моделі лінійної регресії на обох N і ~ N , і обчислити їх R 2 (назвемо їх R і ~ г ).
- З усіх цих кортежів ( v я , θ я , г , ~ г ) , виберіть один з максимальним м я п ( г , ~ г ) . Це дає нове рішення в дереві, і N має два нових підвузли N і ~ N .
- Ми закінчили обробку . Виберіть новий вузол N, який ще не був оброблений, і поверніться до кроку 2. Якщо всі вузли були оброблені, алгоритм закінчується.
Це буде рекурсивно будувати дерево рішень, яке розбиває дані на більш дрібні частини та обчислює лінійну модель на кожну з цих частин.
Крок 3 - умова виходу, яка заважає алгоритму перевиконати. Звичайно, є й інші можливі умови виходу:
- Вийдіть, якщо глибина у дереві вище θ d e p t h
- Вийдіть, якщо набір даних у менший за θ d a t a s e t
Чи є такий алгоритм у пакеті R?