You are on page 1of 30

Дрва на одлучување

АУДИТОРИСКИ ВЕЖБИ 5
Дрва на одлучување
▪ Дрво на одлучување е градбен блок на Random Forest и е
интуитивен модел.
▪ Можеме да го разгледуваме како серија од прашање да/не, кои
ќе не доведат до предвидената класа (или непрекината вредност
во случај на регресија).
▪ За моделот велиме дека е интуитивен, бидејќи постапува на ист
начин како и луѓето, поставува прашува додека не дојде до
целта.
Дрва на одлучување
▪ Техничките детали на дрвото зависат од начиот на кој прашањата се
оформени.
▪ Во алгоритмот CART, дрвото на одлучување се гради преку
одредување на бројот на прашања, или тоа се број на поделба на
јазли.
▪ Одговорите на прашањата треба да доведат до најмал индекс на
чистота - Gini индекс.
▪ Тоа значи дека дрвото ги формира јазлите кои содржат голем број
податоци од една класа, со наоѓање на вредности на
карактеристиките (features) кои најчисто ќе ги разделат податоците во
класи.
Дрва на одлучување – едноставен
проблем
▪ Нека го имаме следниот бинарен
проблем:
▪ Податоци преставени преку два
атрибути, x1 и x2.
▪ Класи: 0 и 1.
▪ Треба да ги класифицираме 6те точки
во две класи.
▪ Проблемот не е линеарен!
Дрва на одлучување
▪ Ако проблемот не е линеарен, значи не можеме со една линија
да ги разделиме податоците.
▪ Дрвото на одлука тоа го прави со повлекување на повеќе прави
кои ќе ги разделат податоците во различни кутии – процес на
тренирање.
▪ Како се одвива тренирањето?
Визуелизација
▪ Што може да
идентификуваме?
▪Сите јазли освен листовите
имаат по 5 вредности:
▪ Прашање за вредност на
атрибутот,
▪ Gini индекс,
▪ Број на семплови во секој јазел,
▪ Број на семплови во секоја
класа посебно,
▪ Класификација врз основа на
мнозинството во секој јазел.
Поделба
▪ Секоја поделба е една линија
што ги дели точките во јазли врз
основа на вредностите на
атрибутите.
▪ За овој проблем немаме
ограничување за максималната
длабочина.
▪ Поделбата ја става секоја точка
во јазел каде што има само точки
од истата класа.
▪ Перфектна класификација -
overfitting.
Gini индекс
▪ Мерка за чистота!
▪ Gini чистотата на еден јазел е веројатноста дека случајно избран
примерок во тој јазел ќе биде грешно класифициран ако
класификацијата се прави според дистрибуцијата на останатите
примероци во јазелот.
▪ На пример, во коренот од примерот постои 44.4% шанса за
погрешно класифицирање на податок избран на случаен начин
врз основа на лабелите на податоците во тој јазел.
Gini индекс
▪ Општо:

▪ pi – веројатноста за класата i во даден јазел


▪За коренот:
Gini индекс
▪ Во секој јазел, дрвото се обидува да направи нова поделба што
ќе го минимизира Gini индексот.
▪ Алтернативна мерка – количество информација (information
gain – сличен концепт).
▪ Рекурзивно процесот се повторува додека на достигне
максимална длабочина, или додека секој јазел не содржи само
примероци од иста класа.
Gini индекс
▪ Во второто ниво:

Балансираме – weighted Gini


Gini индекс
▪ На крај, балансираниот Gini индекс ќе биде 0, што
значи дека не постои веројатност случајно избрана точка
да биде погрешно класифицирана.
▪ Иако ова звучи позитивно, сепак е потенцијален
проблем на overfitting!
▪ Како да се реши?
▪Повеќе дрва се подобри од едно – Random Forest.
Дрва на одлучување
▪ Главната цел на Машинското учење е да генерализира
добро на нови (невидени) податоци.
▪ Флексибилен модел:
▪ модел со голем капацитет (се научил, но не врските меѓу
тренинг податоците, туку и целиот шум што доаѓа со нив).
▪ има голема варијанса, бидејќи структурата на дрвото
ќе варира во зависност од тренинг множеството.
Дрва на одлучување
▪ Нефлексибилен модел:
▪ висок bias – постојано претпоставува за тренинг
податоците (има предрасуди).
▪на пример, линеарен класификатор претпоставува дека проблемот
е линеарен и не се прилагодува кон нелинеарните релации.
▪ оваков модел нема да може да се истренира дури и на
тренинг податоците.
▪ И во двата случаи (висока варијанса и висок bias)
новите податоци нема да поминат добро!
Дрва на одлучување
▪ Потребен е баланс (trade-off) помеѓу модел што памети
се, и модел што не може да запамети ништо од тренинг
податоците.
▪ Базичен концепт во Машинско учење:
▪ bias-variance trade-off
Стариот проблем
▪ Причина зошто дрвото на одлучување е склоно на overfitting?
▪ Ако не ја ограничиме максималната длабочина ќе се разгранува
се дури не направи лист за секој податок.
▪ Од претходниот пример:
▪Ако ја ограничиме длабочината на 2 (правејќи единствен сплит),
класификацијата не е повеќе 100% точна.
▪Сме ја намалиле варијансата на дрвото, но на сметка на bias-от.
▪ Како алтернатива на ограничувањето на длабочината, може да
користиме комбинација на повеќе дрва во еден енсембл како што
е Random Forest.
Random Forest
▪ Два клучни концепти:
▪Случајно семплирање на податоци (со враќање – bootstrapping).
▪Случајни подмножества од атрибути.
▪ Различна поделба на тренинг податоците води до висока
варијанса на секое дрво поединечно, но глобално ниска
варијанса.
▪ Предикциите се прават земајќи го просекот од сите предикции
(од секое од дрвата) посебно (bagging – bootstrap aggregating).
Random Forest
▪ За вториот концепт (подмножества од атрибути), важи:
▪Се зема само подмножество од атрибути врз основа на кои се
прави разгранувањето.
▪Најчесто се сетира на sqrt(num_features), што подразбира дека
ако имаме вкупно 16 атрибути, во секој јазел во секое дрво
разгранувањето ќе се прави врз основа на 4 атрибути.
▪Ако работиме проблем на регресија, тогаш се земаат сите
атрибути.
Пример
▪ Треба да направиме одлука дали акциите на Тесла ќе растат
или ќе паѓаат.
▪ Имаме пристап до 12 аналитичари без претходно знаење
за компанијата – тоа значи дека секој аналитичар има низок
bias и ќе се потпира само на податоци од извештаи.
▪ Аналитичарите без претходно знаење ќе се нафитаат само
на податоците!
▪Ако во податоците има многу „шум“, ќе добиеме модел со висока
варијанса, што пак води до драстично различни предикции.
Пример
▪ Решение:
▪Земи ги во предвид предикциите од сите аналитичари.
▪При тренингот, дај им различна порција од податоците со надеж
дека шумот ќе се намали.
▪Во реалниот живот се потпираме и на повеќе извори,
кои подоцна ги комбинираме за да донесеме заклучок –
аналогно на Random Forest.
Random Forest - пример
▪ Задача
▪Да се предвиди здравствената состојба на субјектот имајќи
ги во предвид социоекономските атрибути и начинот на
живот.
▪Примерок:
Random Forest - пример
▪ Hands on во colab
Random Forest - пример
▪ По неколку минути...

▪ Проблем – небалансирано множество


▪Accuracy не е добра метрика.
▪Може ROC.
Споредба
▪ Обично дрво ▪ Random Forest
Random Forest
▪ Има повеќе
различни техники за
евалуација...
Важност на атрибутите
▪ Важноста на атрибутите се претставува преку сумата на
намалување на Gini индексот низ јазлите кои се расчленети
според тој атрибут.
▪ Толкување на резултатот.
Оптимизација
▪ Наоѓање на најдобрите параметри за едно податочно
множество (тјунирање).
▪ Што можеме да оптимизираме кај Random Forest:
▪Број на дрва,
▪Максимална длабочина на секое дрво,
▪Максимален број на атрибути кои се користат за
расчленување
▪Максимален број на податоци во листовите...
Оптимизација
Оптимизација – најдобар модел
▪ Слични резултати со
дефолтниот, потребни се
повеќе итерации.

▪ Линк до комплетен туторијал:


▪ Туторијал за DT и RF

You might also like