СОДРЖИНА

ВОВЕД ................................................................................................................................................. 3
1.

ОСНОВНИ ПОИМИ ОД ПОДАТОЧНОТО РУДАРЕЊЕ.................................................... 4
1.1 ВОВЕД ......................................................................................................................................... 4
1.2 ОСНОВНИ ЗАДАЧИ ВО ПОДАТОЧНОТО РУДАРЕЊЕ .......................................................................... 6

2.

УЧЕЊЕ НА ПРЕДИКТИВНИ МОДЕЛИ............................................................................... 9
2.1 ВОВЕД ......................................................................................................................................... 9
2.2 УЧЕЊЕ НА ВЕРОЈАТНОСНИ МОДЕЛИ ............................................................................................ 10
2.3 УЧЕЊЕ НА ДРВА ЗА ОДЛУЧУВАЊЕ ............................................................................................... 12
2.3.1 Основен алгоритам за индукција на дрва за одлучување................................................. 12
2.3.2 Перформанси на алгоритмите за учење на дрва за одлучување..................................... 14
2.3.3 Индукција на дрва за одлучување со ID3 ......................................................................... 16
2.3.4 Индукција на дрва на одлучување со C4.5 алгоритам ..................................................... 18
2.3.4.1 Нов критериум за селекција на атрибут при индукција на дрво..............................................19
2.3.4.2 Справување со континуални атрибути.....................................................................................19
2.3.4.3 Справување со недостаток на вредности на атрибути .............................................................20
2.3.4.4 Поткастрување на дрва за одлучување.....................................................................................20
2.3.4.5 Проценка на грешка .................................................................................................................21

2.4 УЧЕЊЕ НА КЛАСИФИКАЦИСКИ ПРАВИЛА .................................................................................... 22
2.4.1 Алгоритам за генерирање на класификациски правила со прекривање .......................... 24
2.4.2 Критериум за избор на услов ........................................................................................... 26
2.4.3 Поткастрување на класификациски правила.................................................................. 27
2.4.4 Incremental Reduced Error Pruning (IREP)........................................................................ 28
2.4.5 Подобрување на IREP алгоритмот – RIPPER алгоритам .............................................. 30
3.

ФРЕКВЕНТНИ ЗАПИСИ И АЛГОРИТМИ ЗА НИВНО ГЕНЕРИРАЊЕ........................ 33
3.1 ОСНОВНИ ПОИМИ ЗА ФРЕКВЕНТНИ МНОЖЕСТВА ........................................................................ 33
3.2 ГЕНЕРИРАЊЕ НА ФРЕКВЕНТНИ МНОЖЕСТВА ............................................................................... 36
3.2.1 Простор за пребарување.................................................................................................. 36
3.2.2 База на податоци ............................................................................................................. 37
3.3 АPRIORI АЛГОРИТАМ .................................................................................................................. 38
3.3.1 Опис на Аpriori алгоритамот .......................................................................................... 38
3.3.2 Податочни структури..................................................................................................... 39
3.3.2.1 Hash – дрво................................................................................................................................40
3.3.2.2 Префиксно дрво ........................................................................................................................40

4.

МОДИФИКАЦИЈА НА АЛГОРИТМИТЕ ЗА УЧЕЊЕ НА ПРЕДИКТИВНИ МОДЕЛИ

ОД СУМАРНИ ПОДАТОЦИ .......................................................................................................... 42

-1-

4.1 МОТИВАЦИЈА ............................................................................................................................. 42
4.2 МОДИФИКАЦИЈА НА АЛГОРИТМОТ ЗА УЧЕЊЕ НА ВЕРОЈАТНОСНИ МОДЕЛИ .................................. 42
4.3 МОДИФИКАЦИЈА НА АЛГОРИТМОТ ЗА УЧЕЊЕ НА ДРВА ЗА ОДЛУЧУВАЊЕ ..................................... 44
4.4 МОДИФИКАЦИЈА НА АЛГОРИТМОТ ЗА УЧЕЊЕ НА КЛАСИФИКАЦИСКИ ПРАВИЛА........................... 45
5.

ИМПЛЕМЕНТАЦИЈА НА АЛГОРИТМИТЕ ЗА УЧЕЊЕ НА ПРЕДИКТИВНИ

МОДЕЛИ ОД СУМАРНИ ПОДАТОЦИ........................................................................................ 47
5.1 WEKA – WAIAKATO ENVIROMENT FOR KNOWLEDGE ANALYSIS ................................................. 47
5.2 ОСНОВНИ КОМПОНЕНТИ ВО WEKA СИСТЕМОТ .......................................................................... 48
5.2.1 weka.core пакет ................................................................................................................ 48
5.2.2 weka.classifiers пакет........................................................................................................ 49
5.2.3 Други пакети во WEKA системот................................................................................... 50
5.3 ИПЛЕМЕНТАЦИЈА НА APRIORI АЛГОРИТАМ ................................................................................. 50
5.3.1 Класа ItemSet..................................................................................................................... 50
5.3.2 Класа FrequentItemsets...................................................................................................... 51
5.4 ИМПЛЕМЕНТАЦИЈА НА АЛГОРИТМОТ ЗА УЧЕЊЕ НА ВЕРОЈАТНОСНИ МОДЕЛИ .............................. 54
5.4.1 Класа NaiveBayes .............................................................................................................. 54
5.5 ИМПЛЕМЕНТАЦИЈА НА АЛГОРИТМОТ ЗА УЧЕЊЕ НА ДРВА ЗА ОДЛУЧУВАЊЕ.................................. 56
5.5.1 Класа Ј48........................................................................................................................... 57
5.5.2 Класа ClassifierTree .......................................................................................................... 58
5.5.3 Апстрактна класа ModelSelection и класа C45ModelSelection ........................................ 59
5.5.4 Апстрактна класа ClassifierSplitModel и класа C45Split................................................ 60
5.5.5 Класа Distribution ............................................................................................................. 63
5.5.6 Класи InfoGainSplitCrit и GainRatioSplitCrit..................................................................... 66
5.6 ИМПЛЕМЕНТАЦИЈА НА АЛГОРИТМОТ ЗА УЧЕЊЕ НА ПРАВИЛА ЗА ОДЛУЧУВАЊЕ ........................... 67
5.6.1 Класа JRip ......................................................................................................................... 67
5.6.2 Апстрактна класа Antd и класа NominalAntd.................................................................. 69
5.6.3 Апстрактна класа Rule и класа RipperRule ..................................................................... 71
6.

ТЕСТИРАЊЕ И ЕВАЛУАЦИЈА НА АЛГОРИТМИТЕ ..................................................... 72
6.1 ЕВАЛУАЦИЈА НА АЛГОРИТМИТЕ ЗА УЧЕЊЕ ................................................................................. 72
6.2 ПРИМЕР ..................................................................................................................................... 74
6.2.1 Опис на множеството податоци.................................................................................... 74
6.2.2 NaiveBayes......................................................................................................................... 75
6.2.3 J48 ..................................................................................................................................... 76
6.2.4 JRIP................................................................................................................................... 78

ЗАКЛУЧОК....................................................................................................................................... 80
КОРИСТЕНА ЛИТЕРАТУРА......................................................................................................... 81

-2-

ВОВЕД
Количеството на податоци во сите области од општественото живеење се
зголемува двојно скоро секоја година, на сметка на корисната информација што ја
има сé помалку. За справување со овој проблем во последниве десет години е
развиена мултидисциплинарна област наречена податочно рударење, чија основна
задача е откривање на корисни информации од големи колчества на податоци.
Податочното рударење израсна во важна истражувачка област, што има големи
потенцијали и во реалниот живот за решавање на практични проблеми.
Машинското учење ги дефинира техничките основи на податочното рударење. Се
користи за извлекување на информации од бази на потатоци. Информацијата
добиена со алгоритмите за машинско учење се претставува во разбирлива форма и
може да се користи за разни цели.
Целта на оваа дипломска работа е да се разгледаат основните алгоритми за учење
на предиктивни модели и да се дефинираат модификации на основните алгоритми
за учење на предиктивни модели од сумарни податоци. Сумарните податоци во
овој случај опфаќаат користење на информацијата од фреквентните записи
(frequent itemsets) за пресметка на дистрибуцијата на веројатност кај моделите.
Дипломската работа концептуално е поделена во повеќе поглавја. Во поглавјето 1
се дадени основни поими од податочното рударење и терминологијата која ќе се
користи во останатиот дел од дипломската работа. Поглавјето 2 ги содржи
описите на основните алгоритми за учење на предиктивни модели. Во поглавјето
3 се дадени дефиниции на фреквентните записи и начините за нивно добивање.
Поглавијата 4, 5 и 6 ги опишуваат модификација, имплементација, тестирање и
споредба на алгоритмите.

-3-

1. ОСНОВНИ ПОИМИ ОД ПОДАТОЧНОТО РУДАРЕЊЕ
1.1 Вовед
Современите технологии во науката го прават лесно собирањето на податоци, но,
анализата на податоци е многу бавна и скапа операција.
Дефиниција 1.1 Откривањето на знаење од база на податоци (Knowledge
Discovery in Databases – KDD) е процес на идентификација на валидни, нови и
потенцијално корисни и разбирливи шеми во податоците.1
Дефиниција 1.2 Податочното рударење (Data Mining) e чекор во еден KDD
процес кој користи компјутерски техники (алгоритми за податочно рударење
имплементирани како компјутерски програми) за откривање на шеми во
податоците.
Мотивацијата за откривање на знаење од базите на податоци доаѓа од
претпоставката дека можеби постојат корисни информации кои се кријат во
масата на неанализирани подтатоци и според тоа се потребни полуавтоматски
методи за лоцирање на интересни информации од податоците. Откриеното знаење
може да бидат правила кои ги опишуваат карактеристиките на податоците, шеми
кои се појавуваат често (frequently occuring patterns), кластери на објекти и сл.
Еден KDD процес се состои од следниве пет чекори:

Селекција: податоците што се користат во процесот на податочно
рударење можат да се добијат од многу различни и хетерогени податочни
извори. Првиот чекор ги собира податоците од различни бази на податоци,
датотеки и други неелектронски извори.

Предпроцесирање: податоците што се користат од процесот може да
содржат неточни вредности или пак да недостасуваат вредности на
податоците. Може да постојат податоци од повеќе извори и тие да се
базираат на различна метрика. Во овој чекор се изведуваат различни
активности, грешните податоци мораат да се корегираат или отстранат, а
податоците што недостигаат мораат да се дополнат или да се претпостават.

1

Дефиницијата е превземена од: U.Fayyad, G.Piatetsky-Shapiro and P.Smyth. From data mining to

knowledge discovery – An overview, Advances in KD and DM, MIT Press, Cambrige, MA, 1991

-4-

На слика 1-1 е прикажан тек на еден KDD процес. • Податочно рударење: врз основа на задачата која се реализира. Повеќето од алгоритмите за податочно рударење доаѓаат од машинското учење и статистиката. класификациски и регресиски дрва (trees). и асоцијациски.• Трансформација: податоците од различни извори мора да се конвертираат во соодветен формат за процесирање. Сите овие алгоритми се обидуваат да ги нагодат параметрите на моделот според самите податоци. што ги опишува фактите на подмножество од дадените податоци и е поедноставна од обично набројување на сите факти од подмножеството. • Интерпретација/евалуација: начинот на кој резултатите се прикажуваат на крајниот корисник е екстремно важно бидејќи од тоа зависи корисноста на резултатите. Излез од алгоритамот е шаблон (pattern) или множество од шаблони што се валидни за дадените податоци. Шаблон се дефинира како исказ (израз) од даден јазик. чии чекори се опишани погоре во текстот. Типични шаблони кои се користат се: равенки (equations). во овој чекор се применуваат алгоритми врз трансформираните податоци за да се добијат саканите шеми од податоците. Во овој чекор се користат различни стратегии за визуелизација на добиените шеми. За да се намали бројот на можни вредности на податоците може да се изврши редукцијата на податоци. Слика 1-1. Влез во еден алгоритам за податочно рударење е табела која се состои од одреден број на атрибути (колони) и записи (редици). Алгоритмите за машинско -5- учење изведуваат пребарување . Алгоритмите ги испитуваат податоците и го определуваат моделот што е најблизок до карактеристиките на податоците кои се испитуваат. KDD процес Податочното рударење вклучува различни алгоритми за решавање на различни видови проблеми. класификациски и регресиски правила (rules). Некои од податоците можат да се кодираат или трансформираат во покорисен формат.

2 Основни задачи во податочното рударење Класификацијата врши пресликување на податоците во предефинирани групи или класи.(хеуристичко) врз простор од хипотези (шаблони) кои ги објаснуваат (важат за) дадените податоци. Обично за неа се вели дека претставува учење со надзор (supervised learning). бидејќи класите се определени пред да се истражуваат податоците. дескриптивниот модел се користи за истржување на карактеристиките на податоците а не за предикција на нови карактеристики. сумирање. Предиктивното моделирање може да се направи со користење на други историски податоци. исто така може да се користи да се индицира специфичен тип на функција на податочното рударење. изведување на асоцијациски правила и откривање на секвенци. Алгоритмите за класификација бараат класите да бидат дефинирани врз основа на -6- . За разлика од предиктивниот модел. Дескриптивниот модел врши идентификација на шаблони или врски меѓу податоците. анализа на временски серии и предикција.2. Ваквото моделирање опфаќа кластерирање. 1. Моделот на податоците во еден алгоритам може да биде предиктивен или дескриптивен како што е прикажано на слика 1. алгоритмите за податочно рударење вршат пребарување врз множеството од шаблони за интересни шаблони кои се валидни за дадените податоци. На сликата се прикажани и најчестите задачи од податочното рударење кои го користат соодветниот модел. Слика 1-2 Модели и задачи на податочното рударење Предиктивниот модел прави предикција за вредностите на податоците со користење на познати резултати откриени од разлчни податоци. Предикцијата. регресија. Ваквото моделирање вклучува класификација. Според претходното.

Прво. Врз временските серии се изведуваат три основни функции. машинско учење и препознавање на облици. Сумирањето врши пресликување на податоци во подмножества со едноставни описи. Вообичаено класите се опишуваат со набљудување на карактеристични податоци што веќе припаѓаат на одредени класи. Третата функција би била да се искористат историските временски серии за предикција на идни вредности. Кластерирањето обично се изведува со определување на сличности меѓу податоците со преддефинирани атрибути. Потоа.) и потоа се определува функцијата што најдобро ги моделира дадените податоци. Апликациите за предикција вклучуваат препознавање на говор. Разликата се состои во тоа што предикцијата предвидува идна состојба. За кластерирањето обично се вели дека е учење без надзор. врз основа на сличност со веќе предефинираните класи. се испитува структурата на линијата за да се одреди нејзиното поведение. се користат мерки за растојание за да се одреди сличноста меѓу различните временски серии. Сумирањето врши извлекување на корисни и репрезентативни информации за базата на -7- . Таа претпоставува дека податоците се опишуваат со некаков тип на функција (линеарна. Ова всушност претставува генерализација на податоците. потребна е помош од доменски експерт за толкување на значењето на добиените кластери. Бидејќи кластерите не се преддефинирани. Предикцијата може да се гледа како вид на класификација. Алгоритмите за кластерирање вршат сегментација на податоците во групи што можат или не мораат да се исклучуваат меѓусебно. за разлика од класификацијата која предвидува сегашна (тековна) состојба. За визуелизација на временските серии се користат графици. Регресијата вклучува учење на функцијата што го врши пресликувањето. Анализата на временски серии ја опфаќа анализата на вредноста на атрибутот во тек на време. Регресијата се користи за пресликување на податоците во реална предиктивна променлива. логистичка итн. Вредностите обично се добиваат во еднакво оддалечени временски интервали. Препознавањето на облици е вид на класификација каде влезниот облик се класифицира во една од неколкуте класи. Кластерирањето е слично со класификацијата со исклучок на тоа што групите не се преддефинирани туку се дефинираат со самите податоци. Најсличните податоци според некаков критериум се групираат во кластери.вредностите на атрибутите од податоците.

Тоа може да се изведе со извлекување на делови од податоци или со изведување на сумарни информации од податоците. Овие облици се базираат на временска секвенца на акции.податоци. Облиците се слични на асоцијациите на податоците. но поврзаноста се базира на време. Откривањето на секвенци се користи за да се одредат секвентни облици во податоците. Овој модел врши откривање на поврзаноста меѓу самите податоци во базата на податоци. Асоцијациското правило е модел што определува специфичен тип асоцијации меѓу податоците. -8- .

. Претходно дадената дефиниција ја гледа класификацијата како пресликување од базата на податоци во множеството на класи. Класата C j ги содржи точно оние записи кои се пресликуваат { во неа.2.. УЧЕЊЕ НА ПРЕДИКТИВНИ МОДЕЛИ 2. т. Класите се претходно дефинирани. Се применува моделот креиран во фаза 1 во класификацијата на записи од база на податоци чија класа не е позната.. t2 . Секоја запис од базата на податоци се доделува точно на една класа. Проблемот на класификација всушност се имплементра во две фази и тоа: 1.1 Вовед Дефиниција 2. каде секоја област се поврзува само со една класа. За секоја дадена класа C j . Креираниот модел ги класифицира податоците за обучување што е можно поточно. Ако веројатноста на појавување на секоја класа P(C j ) е позната. ( ) P ti C j е функција на распределба на веројатноста за секоја класа за еден запис ti .1 ≤ i ≤ n.. Секоја област претставува точно една класа. Cm } . 2. Се креира конкретен модел со евалуација на податоците за обучување (training data). -9- . • Користење распределби на веројатност. Проблемот на класификација е да се дефинира пресликување f : D → C каде секој запис ti се доделува на една класа.е } C j = ti f (ti ) = C j ... Нека е дадена база на податоци D = {t1. Оваа фаза на влез ги има податоците за обучување.1. Класификацијата се изведува со поделба на влезниот простор на потенцијалните записи од базата во области. tn } составена од записи и множество на класи C = {C1. а на излез ја дава дефиницијата на моделот. не се преклопуваат и ја делат целата база на податоци на области. ti ∈ D .. Постојат три основни методи што се користат за решавање на проблеми на класификација: • Спецификација на граници на области.

m .. Нека постојат m класи.10 - . и нека H е дефинирано врз множеството C j ≡ C = c j . а P ( X | H ) е условната веројатност на Х ако е познато H.. Примерок од базата X = ( x1 .. би сакале да ја определиме веројатноста дека ti е во класата C j . каде С е класата а c j е можната вредност на класата. Ова се означува со P(C j ti ) и се нарекува апостериорна веројатност. Бидејќи P ( X ) е константно за сите класи. j = 1. Баесовиот класификатор ќе му ја додели на новиот примерок онаа вредност на класата ck P ( Ck | X ) P (C j | X ) = т... потребно е само да се максимизира веројатноста P ( X | C j ) P ( C j ) . m . j = 1.е што ја максимизира веројатноста P ( Ck | X ) ≥ P ( C j | X ) . xn ) се претставува како коњункција на услови ( Ai = xi ) за секој од n – те атрибути Ai .1) каде што P ( X ) е веројатноста на Х... . Оваа теорема се користи за проценка на веројатноста примерокот од базата да припаѓа на секоја од можните класи при решавање на проблем од класификација. . Ако е дадена вредноста на податокот ti . 2. Еден пристап при класификацијата е да се определи апостериорната веројатност за секоја класа и тогаш да се додели ti на онаа класа со најголема веројатност..1) P(H | X ) = P( X | H ) P(H ) P( X ) (2... • Користење на апостериорна веројатност.2 Учење на веројатносни модели Во овој дел ќе биде разгледано учењето на веројатносни модели и поконкретно Баесовата класификација. Баесовата класификација се базира врз Баесовата теорема дадена со равенството (2..( ) тогаш P(C j )P ti C j се користи за проценка на веројатноста дека ti припаѓа на класата C j .. P ( X | C j ) P (C j ) P( X ) Според Баесовата теорема.

2) каде k е бројот на можните класи. Ова доведува членот P ( C j | X ) да се замени со производ од веројатности ∏ P(A = x |C ). што резултира во неточна проценка на веројатноста во случаите кога имаме мал број на примероци. атрибутите треба да бидат независни меѓусебе).11 - . i i j За разлика од i условната веројатност P(X | Cj ) . Учењето на наивниот Баесов класификатор се состои од проценка на априорните веројатности P ( C j ) = P ( C = c j ) и P ( Ai = vik | Ck ) за секоја од можните вредности c j на класата С и секоја од вредностиите на атрибутите vik за секој од атрибутите Ai .е P ( Ai = vik | Ck ) = N ( Ai = vik ∧ C = c j ) N (C = c j ) .2) P ( C j | Ai ) = N ( C j . Претходно опишаната постапка за проценка на веројатности се базира на релативната фреквенцијата на примероците. Во тој случај е пожелно да се користат други методи за проценка на веројатноста како што се Лапласовата проценка и m – проценката. Равенството (2.Главната претпоставка на наивниот Баесов класификатор е тоа што класите мора меѓусебно да бидат условно независни (ако е дадена вредноста на класата. толку помалку им веруваме на податоците за обучување на моделот. Колку параметарот на методот е поголем. P ( Ai = vik | Ck ) може да се процени како N ( Ai = vik ∧ C = c j ) поделено со N ( C = c j ) т.е P ( C j ) = nj n . m – проценката предвид ги зема и априорните веројатности и воведува параметар на методот m. Истото важи и за класните веројатности P ( C j ) . индивидуалните условни веројатности P ( Ai = xi | C j ) можат лесно да се проценат од податоците за обучување на моделот. Ai ) + 1 N ( Ai ) + k (2. Лапласовата проценка на веројатноста е дадена со равенството (2. P ( C j ) се проценува со броење на бројот на примероци n j = N ( c j ) на класата c j и делење со вкупниот број на податоци за обучување т.3) ја дава проценката на веројатноста со помош на овој метод .

. tn } каде и шемата на базата на податоци ги содржи следниве атрибути . Иако овој пристап е многу едноставен. не секогаш можат да се добијат задоволителни резултати. Понатаму овој пристап не може да се справи со континуални податоци туку само со дискретни.. tih D = {t1.2.P ( C j | Ai ) = N ( C j . Ai ) + m × P ( C j ) (2. За решавање на овој проблем се користат различни методи како што се дискретизацијата на континуалната променлива или проценка на веројатноста на континуалната променлива со помош на Гаусова распределба и сл.1 Основен алгоритам за индукција на дрва за одлучување Дефиниција 2..3) N ( Ai ) + m каде априорната веројатност се пресметува со Лапласова проценка дадена со равенство (2. t2 .12 - . Во случаите кога постојат едноставни релации меѓу атрибутите оваа техника за класификација дава добри резулатати.. Сите овие модификации понатаму влијаат на резулататите и затоа е најдобро методата да се користи врз дискретни податоци.. Прво. j = 1.. Наивниот Баесов класификатор има неколку предности.3 Учење на дрва за одлучување 2. Овој пристап многу лесно се справува со вредности што недостигаат со нивно едноставно испуштање при пресметката на веројатноста. Нека е дадена база на податоци ti = ti1 .. Прво. 2.. тој е многу лесен за користење.4) P (C j ) = N (C j ) + 1 N +k .. Веројатностите се дескриптивни и се користат за предикција на припадност на одредена класа на дадена торка од базата.3. атрибутите во реалниот свет обично не се независни и затоа би можеле да користиме само одредено подмножество на атрибути што би биле независни меѓу себе.k (2. за разлика од другите пристапи за класификација потребно е само едно поминување на податоците за обучување.4) Наивниот Баесов класификатор може да се разгледува како дескриптивен и предиктивен тип на алгоритам. Второ.

A2 . се применува дрвото за одлучување да се одреди припадноста на одредена класа. Дрва може да се конструираат за податоци со многу атрибути. Ah } . За секој запис ti ∈ D . • Секој лист се означува со класа C j .. Пристапот кој се користи во овој случај е да се подели доменскиот простор во правоаголни региони. Кај дрвата на одлучување постојат и негативности.. Врз основа на дефиницијата 2. 2.1 на проблемот на класификација. Индукција на дрва на одлучување: Конструкција на дрво на одлучување со користење на податоци за обучување. која е фиксна.13 - .. тешко се решава проблемот на недостаток на одредени податоци бидејќи во тој случај не може да се одреди точната гранка по која би се движеле по дрвото. тие не се справуваат лесно со континуални податоци. Домените на ваквите атрибути мора да се поделат во категории кои понатаму треба да се опфатат во алгоритмите. . што ги има следниве својства: • Секој внатрешен јазел се означува со атрибут Ai .. конструираното дрво ја претставува потребната логика за извршување на пресликувањето. Бидејќи дрвото се конструира од податоци за обучување може да настане претерано нагодување. Понатаму. Дрво на одлучување (Decision Tree – DT) или класификациско дрво е дрво поврзано со D. Ова може да се надмине со поткастрување на дрвото (tree pruning).. • Секоја гранка се означува со предикат што може да се примени врз атрибутот поврзан со родителот. Во процесот на индукција на дрвото на одлучување се игнорираат корелациите меѓу атрибутите во базата. Тие одговараат добро и за големи бази на податоци бидејќи големината на дрвото е независна од големината на базата. Cm } . Може да се генерираат правила кои се лесни за интерпретација и разбирање.. Тие се ефикасни и се лесни за употреба.. Постојат многу предности за употреба на дрва на одлучување за класификација. За ова е потребно време пропорционално на висината на дрвото. Секоја торка мора да се помине низ дрвото.{ A1 . Решавањето на проблемот на класификација со користење на дрва на одлучување е процес кој се изведува во две фази: 1. Прво. Нека е дадено и множеството на класи C = {C1.

14 - . Некои атрибути се подобри за поделба од други атрибути.Постојат повеќе алгоритми за учење на дрва за одлучување.1 Влез: D // Податоци за обучување Излез: Т // Дрво за одлучување ГрадиДрво алгоритам T=0. • Редослед на атрибутите за поделба: Редоследот по кој се избираат атрибутите. Изборот на добар атрибут вклучува не само испитување на податоците од множеството за обучување туку и погодни информации од доменскиот експерт.3. Алгоритам 2. Кај повеќето алгоритми се опфатени следниве прашања: • Избор на атрибут за поделба: Врз основа на тоа кои атрибути ќе бидат избрани како атрибути за поделба ќе има влијание врз перформансите при примената на креираното дрво врз нови податоци. Еден таков симлифициран алгоритам ќе биде разгледан подолу. T=Додади го Т’ на гранката.2 Перформанси на алгоритмите за учење на дрва за одлучување Најважните фактори што влијаат во перформансите на алгоритмите за градење на дрва за одлучување се големината на множеството за обучување и начинот како се определува најдобриот атрибут за поделба. Т=Додај гранка на кореновиот јазол за секој предикат за поделба и означи. За секоја гранка { D=База креирана по примена на предикатот за поделба врз D. } 2. исто така е битно прашање бидејќи од тоа зависи големината . Определи го најдобриот критериум за поделба. Т=Креирај коренов јазол и означи го со атрибутот за поделба. Инаку Т’=ГрадиДрво(D). Ако по оваа патека сме стигнале до крај тогаш Т’=Креирај лист и означи го со соодветната класа.

Ова е еден компромис меѓу точноста на класификацијата и перформансите.15 - . • Податоци за обучување: Структурата на дрвото за одлучување зависи од од податоците за обучување. пожелно е да се користи балансирано дрво со што помалку нивоа. Може да постојат ситуации кога е пожелно порано запирање на индукцијата за да се избегне креирањето на големи дрва. не е лесно да се определи бројот на поделби кои би се користел во алгоритмот. Може да се изведе предвременото запирање на индукцијата за да се избегне претераното нагодување (overfitting) на дрвото. доменот е мал. Кај некои атрибути. потребни се модификации на дрвото за да се подобрат перформансите на дрвото во текот на фазата на класификација. • Поделби: Со претходното прашање е поврзано колку точно поделби да се направат. • Критериум за запирање: Креирањето на дрвото дефинитивно запира кога податоците за обучување се совршено класифицирани. Ако множеството на податоци за обучување е премногу големо. Фазата на поткастрување може да ги отстрани редундантните споредби или да отстрани одредени поддрва за да постигне подобри перформанси. тогаш креираното дрво ќе биде пренатрупано. Ако множеството за обучување е премногу мало. Изгледот на дрвото на одлучување исклучително зависи од податоците за обучување и алгоритмот за индукција на дрвото. Ако доменот е континуален или има голем број на вредности. • Структура на дрвото: За да се зголемат перформансите на примената на дрвото за класификација. тогаш генерираното дрво може да не биде доволно специфично за да работи добро со поопшти податоци. така да бројот на поделби очигледно се базира врз изгледот на доменот.на дрвото и со добар редослед на атрибутите може да се намалат непотребните споредувања при евалуацијата на моделот. Пожелно е да се добие дрво кое . • Поткастрување: Откога дрвото е веќе креирано. Некои од алгоритмите користат само бинарни дрва. Во овој случај потребни се покомплексни споредби со повеќенасочно гранење.

Алгоритмите за индукција на дрвата за одлучување можат да го изградат дрвото и потоа да извршат негово поткастрување за класификацијата да биде поефикасна. Тоа доведува временската комплексност на дрвото на дрвото да биде О ( hq log q ) . ама тие имаат тенденција да имаат поголема длабочина.3 Индукција на дрва за одлучување со ID3 Еден пристап при индукцијата на дрва за одлучување е да се генерираат сите можни дрва што точно го класифицираат множеството за обучување и потоа да се избере наједноставното од нив.16 - . Ако се претпостави висина на дрвото О ( log q ) . овие споредби се сепак поедноставни од повеќенасочното гранење така да вкупните преформанси на бинарните дрва се споредливи со останатите. дрвото може да биде многу длабоко и да не е многу разгрането. секој атрибут ќе биде испитан за да се определи дали е најдобар. со тоа да се избегне дрвото да стане премногу големо. така да ваквиот пристап би бил корисен само во случаевите кога имаме мали дрва за одлучување. Поткаструвањето може да се изведува додека се креира дрвото. делови од дрвото можат да се отстранат или да се комбинираат за да се редуцира вкупната големина на дрвото. или вториот пристап е да се поткастри дрвото по градењето. Перформансите на ваквите дрва можат да бидат полоши бидејќи обично е потребен поголем број на споредби. Глобално гледано. Во најлош случај. Понатаму ќе бидат разгледани некои од постојните алгоритми за градење на дрва за одлучување. Со техниките на поткастрување. 2.работи добро врз податоците за обучување. Додека се гради дрвото. бројот на атрибути h и обликот на креираното дрво. Бројот на такви дрва е конечен. Овие дрва се лесни за индукција. за секој од јазлите. но е многу голем. Некои од алгоритмите креираат само бинарни дрва. Времето што е потребно да се класифицира база со големина n се базира на висината на дрвото. Временската и просторна комплексност на алгоритмите за индукција на дрва за одлучување зависи од големината на податоците за обучување q. тогаш комплексноста е О ( n log q ) .3. ID3 [Quinlan 79] алгоритамот е дизаниран со цел да помогне во случаите кога постојат многу атрибути и множеството за обучување содржи многу торки и кога е потребно да се добие разумно добро дрво за одлучување без .

каде очекуваното количество на информација што е потребно да се генерира пораката е дадено со релацијата (2. каде PE е множеството од позитивни примероци и NE е множеството од негативни примероци..6) N EI ( A ) = ∑ i =1 pi + ni I ( pi .е D = PE ∪ NE .17 - . EI ( A ) е дадено со релацијата (2. G ( A ) е дадена со релацијата (2. ni ) p+n (2. n ≠ 0 − p+n p+n p+n I ( p.. друго  Ако се користи атрибутот А со домен на вредности {v1 . Очекуваното количество на информација за дрвото чиј корен е А.5) p p n n  − log 2 log 2 . Торката од базата t припаѓа во множеството PE со веројатност P ( t ∈ PE ) = p n и во множеството NE со веројатност P ( t ∈ NE ) = .NE”... Нека Di содржи pi торки од PE и ni торки од NE.. ni ) .. Тој конструира едноставни дрва за одлучување.. но пристапот што го користи не гарантира дека не постојат и други дрва за одлучување кои се подобри.5) како корен на дрвото за одлучување. n ) =  p + n 0.6) каде тежинскиот однос за i–тата гранка е пропорционален на бројот на примероци од D што припаѓаат на Di .PE” или . DN } каде Di ги содржи оние торки од D чија вредност на атрибутот А е vi . Со p+n p+n користење на хеуристика од теоријата на информации. За потребите на ID3 алгоритамот била развиена хеуристика која користи поими и релации од теорија на информации (ентропија и информациона добивка).7) .многу големо пресметување. p = PE и n = NE . кога p ≠ 0. дрвото на одлучување се смета како извор на пораки .. ќе се изврши поделба на D во подмножества {D1 ... vN } (2. со чија помош се одлучува како да се подели влезното множество од торки во секоја фаза од процесот на индукција на дрвото и со тоа се овозможува да се конструираат помали и поефикасни дрва за одлучување. Информациската добивка со разгранување на дрвото според атрибутот А. ID3 алгоритамот работи на следниов начин: нека претпоставиме дека торките од базата припаѓаат само на две класи т. Очекуваното количество на информација што е потребно за поддрвото на Di e I ( pi .

Временската комплексност на другите јазли е секогаш помала од таа на коренот.5 алгоритам Алгоритмот C4.. во секој друг случај се избира друг атрибут на истиот начин како и опишаниот и се прави нова поделба. заедно со високите перформанси на алгоритамот. се креира . каде а е бројот на атрибути.yes” лист и се запира. DN } . n ) − EI ( A) (2.5 врши подобрување на ID3 алгоритмот за прашања кога имаме континуалини атрибути. 2. го конструира дрвото.18 - . За секое подмножество Di ако сите примероци од Di се позитивни.4 Индукција на дрва на одлучување со C4. .. справување со податоци кои недостигаат и го воведува поткаструвањето на дрвото за да се зголемат перформансите кога имаме нови (непознати) податоци.G ( A ) = I ( p. и потоа го користи истиот процес рекурзивно за да конструира дрва за одлучување за останатите подмножества {D1 . Според тоа најлошата временска комплексност ( ) кај ID3 алгоритмот е O ( ba ( p + n ) a ( p + n ) ) = O ba 2 ( p + n ) . Ова. Временската комплексност за ова е O ( ba ( p + n ) ) каде b е максималниот број на можни вредности за еден атрибут..3. овозможуваат ID3 и неговите наследници како што се C4. ако сите примероци се негативни се креира ..7) ID3 врши испитување на сите кандидати атрибути и го избира оној атрибут А што ја максимизира информациската добивка G ( A ) .no” лист и се запира. За коренот ID3 алгоритмот треба да ја провери вредноста на секој атрибут А за секоја торка за да се пресмета информационата добивка G ( A ) .5 да станат централни компоненти во неколку комерцијални системи.. 2 Една од главните предности на ID3 е тоа што не е потребно некакво предходно знаење за прблемот. Тоа значи дека алгоритмот може да се примени на секое синтаксички добро формирано множество за обучување.. Вкупниот број на јазли во дрвото за одлучување е секогаш помал од a ( p + n ) . Максималниот број на листови во дрвото е p + n (вкупниот број на податоци за обучување) и максималната должина од коренот до секој лист е а.

3. n се претходно дефинирани. . Бидејќи поделбата кај континуалните атрибути е само бинарна. p. Прагот за поделба обично се поставува на средина меѓу вредностите кои ги даваат границите на концептот. Проширувањето на алгоритмот се состои од воведување на бинарна поделба за континуалните атрибути. 2.19 - . Кога IV ( X ) ≠ 0 за поделба се избира оној атрибут кој го максимизира горниов однос. Кај овој критериум се користи односот G ( X ) / IV ( X ) каде N IV ( X ) = ∑ i =1  p +n  pi + ni log 2  i i  p+n  p+n  каде N . Според тоа еден дискретен атрибут може да се тестира само еднаш во патеката од коренот до еден лист додека нумерички атрибут може да се појави повеќе пати.3.1 Нов критериум за селекција на атрибут при индукција на дрво ID3 алгоритмот работи незадоволително кога постојат атрибути со променлив број на можни дискретни вредности. но повеќето од множествата на податоци (datasets) содржат и континуални атрибути. Кога дрвото за одлучување тестира еден дискретен атрибут имаме по една гранка за секоја вредност на атрибутот.2.4.2 Справување со континуални атрибути ID3 алгоритмот работи само со дискретни атрибути. наречена gain ratio criterion наместо информациската добивка G ( X ) за селекција на атрибут при индукција на дрва. Заради тоа е предложена нова хеуристика.4. постои разлика меѓу континуалните и нумеричките атрибути: откако ќе се изврши гранење на еден номинален атрибут се искористува неговата целокупна информација а кај континуалните атрибути при секоја поделба имаме потреба од нова информација.

5 постојат две стратегии за поткастрување и тоа: пост-поткастрување (postpruning) и пред-поткастрување (prepruning). Кај алгоритмите за индукција на дрва за одлучување најчесто се користи стратегијата на пост-поткастрување. во случај кога имаме недостаток на вредности за тој атрибут. Ако вршиме индукција на комплетното дрво и потоа вршиме негово поткастрување тогаш ја користиме стратегијата на пост-поткастрување. Овде се користи истата постапка како и претходно.3. За пост-поткастрување постојат две значително различни операции и тоа: замена на поддрво со лист (subtree replacement) и подигување на поддрво (subtree raising).2. Придонесот на деловите од инстанцата во одлуката кај подолните јазли се пресметува со помош на информациската добивка која е модифицирана со тежинските фактори.4. Во случај кога го применуваме дрвото за класификација на инстанца во која недостасуваат вредности за одредени атрибути ја изведуваме следната постапка: се дели инстанцата на делови со користење на нумеричка тежинска шема и испраќаме дел од инстанцата по секоја од гранките пропорционално на бројот на инстанци за обучување во соодветната гранка. 2. по еден дел за секоја гранка во ист однос како и познатите инстанци кои се движат по таа гранка. Друго прашање кое се поставува е како да се подели множеството за обучување кога веќе е избран атрибутот за поделба.20 - . за да се овозможи истата рекурзивна постапка за индукција да се примени и врз јазлите синови. Пред-поткаструвањето се користи кога сакаме да сопреме со индукцијата на поддрва во текот на градењето на дрвото. За секој јазол алгоритмот за учење мора да одлучи дали ќе изврши замена на . Инстаницте за кои недостига вредноста на релевантниот атрибут се делат на делови.3.4 Поткастрување на дрва за одлучување Кај C4. различни делови од инстанцата ќе пристигнат до листовите и одлуките потоа мораат да се рекомбинираат со користење на истите тежини за да се добие резултантната класа.3 Справување со недостаток на вредности на атрибути Следното подобрување на ID3 алгоритмот се справува со прашањето на вредности што недостасуваат.4.

и дека N-те инстанци се генерираат од Бернулиев случаен процес со параметар q . Ова се нарекува поткастрување со редуцирање на грешката (reduced error pruning). Овде се подигнува поддрвото од тековната локација на јазол кој се наоѓа погоре во дрвото.3. Подигнувањето на поддрвото е покомплексна операција и не секогаш е јасно дали се исплати да се користи. Оценката на грешката потребно е да се изврши за внатрешните јазли и за листовите.поддрво со лист. Негативност на оваа метода е тоа што дрвото кое се индуцира се базира на помалку податоци. Во овој случај се заменува поддрво со неговото најчесто користено поддрво. Ваквата операција ќе доведе до намалување на точноста (accuracy) врз множеството за обучување ама може да доведе до зголемување на точноста ако дрвото се примени врз независно избрано множество за тестирање.4. од кои Е . Еден начин на пресметка на грешката во секој јазол е да се издвои еден дел од податоците и да се користи како независно множество за тестирање.5 Проценка на грешка За да се одлучиме дали ќе извршиме замена на внатрешен јазол со лист или ќе вршиме замена на внатрешен јазол со еден од јазлите подолу (подигнување на поддрво) мораме да извршиме оценка на ратата на грешка која би се очекувала за конкретен јазол ако е дадено независно множество податоци за тестирање. Алтернативен начин на оценка на грешката е да се користи самото множество за обучување. 2. Идејата на замената на поддрво со лист е да селектира некои од поддрвата и да ги замени со листови. Нека сега претпоставиме дека вистинската веројатност на грешка во јазелот е q . ќе изврши подигнување на поддрвото или ќе го остави дрвото непоткастрено (непроменето). Оваа постапка доведува до Е грешки од вкупно N инстанци. Идејата на оваа метода е да се разгледа множеството на инстанци кои пристигнуваат до секој јазол и да се избере мајоритетната класа да го претставува тој јазол. За оценка на грешката не би требало да се користи множеството податоци за обучување бидејќи тоа не би довело до какво било потксатрување бидејќи дрвото е конструирано точно да го задоволи тоа множество. Кај ваквото поткастрување се движиме од листовите кон коренот.21 - .

25 . Метематиката која доведува до формулата за грешката е следнава: ако е дадена конкретна доверливост (confidence) c (кај с4. IF атрибут1 релација1 вредност1 AND Атрибут2 релација2 вредност2 AND . 2.5 обично се зема 0.. За проценката на грешката го добиваме следниот резултат: z2 f f2 z2 f + +z − + 2N N N 4N 2 e= z2 1+ N каде z е бројот на стандардни девијации што одговараат на доверливоста с и за c = 0. а последицата (заклучокот) ја дава класата (класите) што одговараат на самите инстанци или пак ја дава распределбата на веројатност на класите.69.грешни.22 - . Едно класификациско правило се состои од множество на услови (antecedents) и последица (consequent).. z е 0. атрибутm релацијаm вредностm AND THEN Class=classX .25) тогаш   f −q P > z = c    q (1 − q ) / N  каде N е број на инстанци.4 Учење на класификациски правила Класификациските правила се алтернативен начин за претставување на знаење добиено со примена на алгоритмите на податочното рударење. IF множество на услови THEN заклучок Множеството од предуслови претставува низа од тестови кои се изведуваат врз инстанците од базата. f = E / N е добиената рата на грешка и q е вистинската рата на грешка.

правилата кои се добиваат од класификациските дрва се многу покомплексни од што е потребно и обично се врши поткастрување (pruning) на правилата за да се отстранат редундантните услови. Може да се изврши и додавање на нови правила на множеството на правила без тие да имаат влијание врз веќе постоечките правила. Во некои формулации на правила предусловите може да бидат и општи логички изрази. Индивидуалните правила меѓу себе се поврзани со логичка ИЛИ функција т. Множеството од услови вклучува по еден услов за секој јазол на патеката од коренот до тој лист. .23 - . Класификациските правила можат да се добијат и директно од класификациското дрво. ако не е битен редоследот при интерпретацијата тогаш не е многу јасно што треба да се направи во случај кога различни правила доведуваат до различни заклучоци за една иста инстанца. а заклучокот од правилото е класата што е определена со листот. Во случај кога правилата се добиваат од дрва не може да се случи двосмисленост бидејќи тогаш правилата содржат редунданција што не дозволува појава на двосмисленост. Во реален случај. За секој лист се генерира по едно правило. оваа независност на правилата е неостварлива бидејќи се игнорира фактот на кој начин се интрепретира множеството на правила.Предусловите се поврзани меѓусебно со логичка И функција и за правилото да биде задоволено потребно е сите тестови да бидат успешни. Во општ случај. тогаш некои од правилата ако се земат индивидуално можат да бидат неточни. Проблем настанува кога класификациските правила се генерираат преку друг алгоритам а не преку дрва. Една од причините зошто правилата се популарни е тоа што секое правило претставува независна „порција“ на знаење. Оваа постапка продуцира правила кои се еднозначни и редоследот според кој тие се проверуваат не е битен. што не е случај кај класификациските дрва бидејќи додавањето на нова структура во дрвото може да предизвика промени во целото дрво.е ако е исполнето едно правило врз инстанцата која ги задоволува условите се применува заклучокот од правилото. Во друг случај. Ако правилата се интерпретираат како листа на правила. Можно е да настане и конфликт во случаите кога за една инстанца важат повеќе правила со различни закклучоци.

Овој пристап се нарекува прекривање (covering aproach) бидејќи во секоја фаза се добива правило што покрива некои од инстанците. од кои p се позитивни примери за класата.4. Од можните услови го избираме оној услов што го максимизира односот p/t. . Генерираните дрва понатаму можат да се искористат за добивање на правила. Тие работат одгоре надолу и во секоја фаза бараат атрибут за поделба што најдобро ги одделува класите. Алгоритамот за прекривање работи со додавање на услови на правилото што го градиме и секогаш се обидува да добие правило со максимална точност (accuracy). Во двата случаи критериумот за избор на најдобар атрибут е различен.е тоа е грешката што ја прави правилото.24 - . Секој од условите вклучува наоѓање на атрибут за поделба. Еден едноставен алгоритам за генерирање на класификациски правила со прекривање е даден подолу. Кај алгоритмите за дрва се избира оној атрибут кој ја максимизира информациската добивка.2. Алгоритмите за генерирање на класификациски дрва работат со додавање на услови во јазлите и се обидуваат да ја максимизираат поделбата меѓу класите. додека алгоритмите со прекривање го избираат оној пар атрибут-вредност кој ја максимизира веројатноста на саканата класификација.1 Алгоритам за генерирање на класификациски правила со прекривање Алгоритмите за класификациски дрва се базират на стратегијата раздели и владеј (divide and conquer). а t-p се негативни примри т. Идејата на алгоритмот со прекривање е да вклучи што повеќе инстанци од саканата класа и да ги исклучи оние инстанци што припаѓаат на другите класи. Нека едно ново правило прекрива вкупно t инстанци. Друг пристап при генерирањето на правила е да се разгледа посебно секоја класа и да се побара начин да се прекријат сите инстанци од множеството кои припаѓаат на класата и во исто време да се исклучат инстанци што не припаѓаат на класата. и потоа рекурзивно ги процесира на ист начин добиените поддрва што се резултат од поделбата.

Секое правило со точност помала од 100% е неточно во смисла што доделува инстанци што припаѓаат на друга класа. Во секоја фаза се избира најдобриот услов кој ја максимизира точноста на правилото. Претходно дадениот алгоритам ја мери успешноста на едно правило со помош на формулата за точност p/t.25 - .2 За секоја класа C Иницијализирај го E со множеството на инстанци. ги отстранува покриените инстанци бидејќи тие се веќе опфатени со правилото и го продолжува процесот врз оние инстанци кои се останати во множеството. Тогаш се индуцираат правила за таа класа и се отстрануваат покриените инстанци од множеството се додека не се покријат сите инстанци што припаѓаат на соодветна класа. Во процесот на генерирање на правило се започнува од празно правило (кое ги покрива сите примероци) и се додаваат услови се додека не ги покријат само истанците од саканата класа. . Алгоритмот продолжува со додавање на услови се додека не се добие совршено правило. (во случај кога повеќе услови имаат иста точност се избира оној услов со најголемо p) Додади го условот A=v во R.Алгоритам 2. Чекорот на отстранување на инстанци од множеството ја зголемува ефикасноста на алгоритмот бидејќи множеството на инстанци постојано се намалува дедека трае процеост на индукција на правилата. Се додека R не е совршено (или нема повеќе атрибути) За секој атрибут А кој го нема во R и секоја вредност v Разгледај ја можноста за додавање на условот A=v во R. Додека Е содржи инстанци од класа С Креирај правило R со празна лева страна која прави предикција на С. Отстрани ги оние инстанци од Е кои се покриени со правилото R. Надворешната јамка итерира преку класите и во секоја итерација вршиме повторна иницијализација на множеството инстанци Е. Претходно опишаниот алгоритам е раздели и владеј вид на алгоритам бидејќи се индуцира правило што покрива инстанци од класата (ги исклучува оние кои не се во класата). Избери ги А и v кои ја максимизираат точноста p/t.

се избира оној услов кој го максимизира односот p/t. p P  Друга алтернатива е да се пресмета информационата добивка p  log − log  t T  каде p и t се бројот на позитивни и вкупниот број на инстанци покриени од новото правило. додека со вториот алгоритам ќе биде обратно т. а Р и Т се соодветниот број на инстанци кои го задоволувале правилото пред да биде додаден новиот услов.26 - . што значи дека со првата хеуристика правилото ќе биде добиено побрзо додека со втората хеуристика правилото ќе има повеќе услови.4. мораше да се усвои начинот на одлучување кој од повеќето можни услови да се додаде на правилото за да се обезбеди тоа да не покрива негативни инстанци. На пример. Првата хеуристика постигнува максимум кога не се покриени негативни инстанци без оглед на бројот на покриените позитивни инстанци. Основниот критериум за избор кој услов да се додаде на правилото е да се најде оној услов кој покрива колку што може повеќе позитивни инстанци и што помалку негативни инстанци. . Како што веќе претходно беше кажано. И двата алгоритми вршат додавање на услови се додека конечното правило не биде точно. Хеуристиката која се базира на информационата добивка дава повеќе значење на покривањето на што поголем број на инстанци без оглед дали добиеното правило е точно.2.2 Критериум за избор на услов При анализата на основниот алгоритам за учење на правила од претходното поглавје. Разликата меѓу двата алгоритми е тоа што со првиот прво ќе бидат откриени специјалните случаи па потоа ќе бидат додадени правилата кои опфаќаат голем број на инстанци. Колку е поголем бројот на позитивни инстанци кои ги покрива правилото толку е самото правило поточно.е прво ќе се најдат правила кои покриваат голем број на инстанци па потоа специјалните случаи. ќе биде избран првиот услов. каде t е вкупниот број на истанци што би ги покривало новото правило а p е бројот на оние инстанци кои се позитивни за класата. според оваа хеуристика ако имаме услов кој покрива една истанца која е позитивна и имаме услов кој покрива илјада позитивни инстанци и една негативна.

27 - . • Post-Pruning: прво се генерира опис на концептот кој совршено ги опишува сите инстанци за обучување. Прво се формира почетно множество на правила кое што пренатрупува множеството за растење на правилата. Во секоја фаза на поедноставување. Прво се формира хипотеза со индукција на комплексно дрво кое е пренатрупано и потоа дрвото се поткаструва. податоците за обучување се делат во две множества: множество за растење на правилaта (growing set) и множество за поткастрување (pruning set). да се подобри предикцијата на непознати инстанци. За оваа цел се предложени повеќе методи за поткастрување на дрва и една од најефикасните методи е reduced error pruning (REP) – поткастрување за намалување на грешката.2. Оваа теорија понатаму се генерализира со поткастрување на дрвото за одлучување.4. Повеќето од техниките кои се користат во современите системи на учење на правила се адаптирани од учењето на дрва за одлучување. се избира оној оператор за поткастрување што дава најголемо . Понатаму ова множество на правила се поедноставува со примена на некој од операторите за поткастрување. Обично таквите стратегии на поткастрување ја подобруваат ратата на грешка на непознати податоци во случаите кога податоците за обучување содржат шум.3 Поткастрување на класификациски правила Поткаструвањето е еден стандарден начин на справување со шум при учење на дрва. Постојат два фундаментално различни пристапи при поткаструвањето и тоа: • Pre-Pruning: во текот на генерирање на концептот некои од инстанците за обучување намерно се испуштаат. Кај REP алгоритмот за правила. Заедничко за сите методи за поткастување е тоа што тие прво вршат претерано нагодување (overfitting) на моделот со учење на глобален концепт од множеството инстанци за обучување. така да конечниот опис на концептот не ги класифицира сите инстанци за обучување точно. REP едноставно може да се прилагоди да работи и за правила. типичен оператор за поткастрување е бришење на одреден услов или на одредено правило. Повеќето од системите за учење на дрва ја користат стратегијата overfit-and-simplify (пренатрупај и поедностави) за да се справат со шум во податоците. со користење на хеуристика.

Понатаму.PrunePos.3 IREP(Pos.PruneNeg) exceeds 50% then return Ruleset.4. Алгоритам 2. Incremental reduced error pruning. else add Rule to Ruleset remove examples covered by Rule from (Pos.Neg).Morgan Kaufmann.28 - .GrowNeg) and (PrunePos.PruneNeg). . во следното поглавје ќе бидат разгледани основните идеи на самиот алгоритам и некои подобрувања кои доведуваат до нов алгоритам за учење на класификациски правила наречен RIPPER. За да се одговори на негативната страна на REP алгоритмот беше предложен нов алгоритам наречен Incremental Reduced Error Pruning (IREP)2.4 Incremental Reduced Error Pruning (IREP) IREP врши интегрирање на поткаструвањето со намалување на грешката (REP) со раздели и владеј алгоритмот за учење на правила опишан претходно. In Machine Learning: Proceedings of the Eighth International Workshop on Machine Learning.Fürnkanz and G.намалување на грешката во однос на множеството за поткастрување. Rule:=PruneRule(Rule. While Pos ≠ ∅ do /*grow and prune a new rule*/ split(Pos. Поедноставувањето застанува кога примената на кој било оператор за поткастрување доведува до зголемување на грешката врз множеството за поткастрување. Ithaca. New York. REP алгоритмот за правила ги подобрува перформансите за генерализација на правилата во случај кога имаме податоци кои содржат шум ама тој е пресметковно скап алгоритам во случаите кога имаме многу податоци. 2. 1991.GrowNeg). Rule:=GrowRule(GrowPos.PruneNeg). endif endwhile return Ruleset 2 Алгоритмот е подетално опишан во трудот: J.Neg) Begin Ruleset:= ∅ . If the error rate of Rule on (PrunePos.Widmer.Neg) into (GrowPos.

GrowRule врши постојано додавање на улсови што вршат максимизација на информационата добивка3 се додека правилото не покрива негативни примероци од множеството за растење.8) каде P (N) е вкупниот број на примероци во prunePos (pruneNeg) и p (n) е бројот на примероци во prunePos (pruneNeg) покриени со правилото Rule. едно по едно. тоа веднаш се поткаструва. Во случаите кога имаме повеќе класи прво се врши подредување на класите во растечки редослед на фреквенцијата на појавување на класите т. каде An е номинален атрибут и v е дозволена вредност за An . Како и стандардниот раздели и владеј алгоритам.3 претставува верзија на IREP која содржи две класи. сите инстанци кои се покриени со правилото се отстрануваат. Се започнува со празен услов и се додаваат услови од обикот An = v . prunePos. Овој процес се повторува се додека има позитивни примероци. FOIL: a midterm report. Гореопишаниот IREP алгоритам важи за проблеми за учење на две класи. Кога ќе се индуцира едно правило. или Ac е континуален атрибут и θ е некоја вредност за Ac која се појавува во податоците за обучување. или правилото има неприфатливо голема рата на грешка. множество за растење (growing set) и множество за поткастрување (pruning set). Понатаму имаме „растење“ на правилото.8) v ( Rule. Machine Learning:ECML-93. pruneNeg ) ≡ p + ( N − n) P+N (2. IREP ја користи следнава стратегија. Austria.end Алгоритмот 2. За да се индуцира едно правило. Овој процес се повторува се додека има поткастрување што ја подобрува вредноста v .29 - . Vienna.е редоследот е 3 Критериумот за информациската добивка е земен од системот за учење FOIL што е подетално опишан во трудот: Quinlan and Cameron-Jones. Прво. IREP врши постепена индукција на правила. Ac ≤ θ или Ac ≥ θ . непокриените инстанци случајно се разделуваат во две множества. По „растењето“ на правилото. Во овој алгоритам множеството за растење содржи 2/3 од инстанците. 1993 . Алгоритмот врши поткастрување на која било конечна секвенца од услови од правилото и врши бришење на секвенцата која ја максимизира функцијата дадена со равенството (2.

Во модифицираната верзија на IREP развиена од Cohen.. Оваа метрика во одредени случаи е крајно неинтуитивна. за разлика од оригиналната верзија. Во оваа верзија. IREP алгоритмот понекогаш не конвергира во случајот кога имаме зголемување на бројот на инстанци и ова е случај поради метриката која се користи во фазата на поткастрување. е дозволено бришење на која било конечна секвенца од услови. Процесот се повторува се додека не остане една класа Ck која ќе се користи како појдовна (default) класа. се воведува нова хеуристика за определување кога да се запре со додавње на нови правила на множеството од правила и фаза на оптимизација што го поминува целото множество на правила и се обидува да го апроксимира конвенционалниот REP алгоритам.4. каде C1 е најмалку фреквентната класа а Ck е најфреквентната класа и потоа се користи повик до IREP за да се определи множество од правила кои ја одделуваат класата C1 од останатите класи. нека P и N се фиксни и нека метриката го предпочита правилото R1 кое покрива p1 = 2000 позитивни примероци и n1 = 1000 негативни примероци. Ваквиот начин на справување со атрибутите што недостасуваат овозможува алгоритмот да врши одделување на позитивните примери со користење на услови што се точни. додека оригиналната верзија на алгоритмот дозволува бришење само на еден услов... Алгоритмот за учење правила е дизајниран така да може да се справи и со атрибути што недостасуваат на начин што сите услови кои го вклучуваат атрибутот А ќе отпаднат за инстанците за кои недостга вредноста за атрибутот А. 2.5 Подобрување на IREP алгоритмот – RIPPER алгоритам За да се подобри претходно разгледаниот алгоритам се воведуваат неколку модификации во самиот алгоритам и тоа: се воведува алтернативна метрика за проценување на вредноста на правилата во фазата на поткастрување. Понатаму.30 - . се запира додавањето на правила во множеството на правила кога ќе се добие правило што има рата на грешка поголема од 50%. Ck . на пример.C1 . во . сите инстанци покриени од множеството на правила се отстрануваат и се користи нов повик на IREP за одделување на класата C2 од останатите итн..

Множеството на правила понатаму се поедноставува со испитување на секое правило (почнувајќи од последното правило) и бришење на правилата за да се намали вкупната дескрипциона должина..9) Оваа варијанта на IREP алгоритмот запира со додавање на нови правила кога последното конструирано правило има грешка врз податоците за поткастрување која надминува 50%. .. во случаи кога имаме правила со мала покриеност. Еден начин да се подобри инкременталниот пристап е да се постпроцесираат правилата добиени од IREP за да се апроксимира ефектот на конвенционалиот REP... pruneNeg ) ≡ p−n p+n (2. За да се подобри овој дел од алгоритмот се користи MDL принцип. Методот на оптимизација на множеството од правила R1 .9) v* ( Rule. prunePos. Оваа хеуристика многу често запира премногу рано. Пристапот расти и поедностави кој се користи кај IREP дава резултати кои се различни од конвенционалиот REP алгоритам. Се разгледува по едно правило по ред како се генерирани. Од ова се забележува дека R2 е правило кое прави подобра предикција од правилото R1 ..31 - . За секое правило Ri се конструираат две алтернативни правила: замена (replacement) и ревизија (revision)... Rk 4 МDL е кратенка од Minimum Description Length принцип кој вели дека најдобрата теорија за множество од податоци е таа која ја минимизира големината на теоријата плус количеството на информација потребно да се специфицираат исклучоците од таа теорија. Новата верзија на IREP запира со додавање на правила кога оваа должина е повеќе од d бита поголема од најмалата должина добиена дотогаш или кога веќе не постојат позитивни примероци..4 Кога ќе се додаде секое правило се пресметува вкупната дескриптивна должина (description length) на множеството на правила и на примероците. Од оваа причина е извршена промена на метриката и е дадена со релацијата (2.однос на правилото R2 кое што покрива p1 = 1000 позитивни примероци и n1 = 1 примерок.. Најчесто вредноста на должината е 64... Ri' . Rk е даден понатаму.. Замената за Ri се формира со растење и поткастрување на правило Ri' каде поткаструвањето се води така да се минимизира грешката на целото множество првила R1 .

. Ревизијата на Ri се формира аналогно освен што не се почнува од празно правило туку се додаваат услови на самото правило. На крај се прави одлука дали ќе се користи оригиналното правило.врз податоците за поткастрување.32 - . ревизијата или замената според MDL хеуристика. Ваквиот модифициран алгоритам се нарекува RIPPER (Repeated Incremental Pruning to Produce Error Reduction).

епизоди. Таквите правила можат да бидат корисни за донесување на одлуки како што се цените на производите. Бинарната релација r над R е колекција од подмножества на R. Елементите на R се нарекуваат записи (items).33 - . т. ФРЕКВЕНТНИ ЗАПИСИ И АЛГОРИТМИ ЗА НИВНО ГЕНЕРИРАЊЕ 3. Редиците од бинарните бази на податоци се нарекуваат трансакции. Дефиниција 3.1 Основни поими за фреквентни множества Фреквентните множества (frequent sets) имаат есенцијално значење во повеќе задачи од податочното рударење кои имаат за цел да откријат интересни шеми (patterns) од бази на податоци како што се асоцијациски правила. Целта на оваа поглавје е да се дадат основните поими и алгоритми за добивање на фреквентните множества кои се прв чекор за добивање на асоцијациски правила за понатамошно нивно користење за модификација на веќе постоечките алгоритими за учење на предиктивни модели. а елементите на r се нарекуваат редици (rows).е да се испита однесувањето на клиентот зависно од купените продукти. . Првичната мотивација за пребарување на асоцијациски правила дошла од потребата за анализа на трансакциските податоци од супермаркетите. Ова нè доведува до формална дефиниција на поимот за фреквентно множество. Асоцијациските правила опишуваат колку често одредени производи се купуваат заедно. Барањето на асоцијациски правила е еден од најпознатите проблеми кој се решава со техниките на податочно рударење. така да во изложувањето на поимите и алгоритмите ќе се користат поимите за трансакциска база на податоци и на нејзината содржина како на трансакции. промоциите. секвенци. кластери и сл. Самите асоцијациски правила не се предмет на разгледување во оваа дипломска работа. класификатори. Бројот на редици во r се означува со r и големината на r е r = ∑ t∈r t каде t е трансакција. корелации.1. Едно интересно својство на множеството X ⊆ R на записи (items) е колку редици (трансакции) од базата го содржат истото множество. распоредот на производите во маркетите и сл. Нека е дадено множеството R.3.

r ) = {t ∈ r X ⊆ t} и исто така се нарекува обвивка на X .е M ( X .. F } t3 { B. каде A. G} t2 { A. . B.. т. K се бинарни атрибути и оттаму доаѓа и изразот за бинарна релација. r ) и е дадена со релацијата (3. Множеството X се содржи во редицата t ∈ r . G . I . B. K } t4 { A... На слика 3.34 - . B} . B} . H } t5 {E .2 е прикажана базата во овој облик.. B.1) Доколку контекстот на базата на податоци е еднозначно определен се користат ознаките M ( X ) и fr ( X ) ... 5 Во литературата за поимот фреквентно множество се користат и поимите large set и covering set. t4 } и фреквенцијата на множеството е fr ({ A. Број на Редица редица t1 { A. r ) = M ( X .1] . M ({ A. r ) .2.1 Нека е дадена една бинарна релација r над множеството R = { A.r) r (3... r ) = {t1 . Фреквенцијата на X во r се означува со fr ( X . D. C . E . За множеството { A. B.1) fr ( X .1.. Множеството на редици од r во кои се содржи X се означува со M ( X . B . Нека R е множество и r е бинарна релација над R и нека X ⊆ R е множество од записи. тогаш множеството X е фреквентно5 ако fr ( X . а за фреквенцијата се користи поимот support. B. r ) ≥ min_ fr . r ) = 3 5 = 0. K } .. J } Слика 3-1 Пример за бинарна релација r над множеството R = { A. Ако е даден праг на феквенцијата min_ fr ∈ [ 0.6 ..Дефиниција 3. K } Пример 3. t2 .. B} се добиваат следниве параметри. Базата на податоци може да се разгледува и како релациона база над шемата { A. K } прикажано на слика 3... ако X ⊆ t .. B.

r ) ≥ min_ fr . Празното множество ∅ е тривијално фреквентно во секоја бинарна релација и празните множества обично не се земаат предвид во апликациите. Дефиниција 3. min_ fr ) и е дадено со релацијата (3. (3. (3.3) = {{ A} .1 е F ( r .3) Пример 3.2 Нека претпоставиме дека прагот на фреквенцијата е 0.2) { } F ( r .3. min_ fr ) = X ⊆ R fr ( X . {E} . Колекцијата од фреквентни множества со големина l е дадена со релацијата (3. {B} . Колекцијата на фреквентни множества во r зависно од min_ fr се означува со F ( r . { A. . 0. {G} .Број на A B C D E F G H I J K t1 1 1 1 1 0 0 1 0 0 0 0 t2 1 1 0 0 1 1 0 0 0 0 0 t3 0 1 0 0 0 0 0 0 1 0 1 t4 1 1 0 0 0 0 0 1 0 0 0 t5 0 0 0 0 1 0 1 0 0 1 0 редица Слика 3-2 Пример за бинарна релација r дадена во релациона форма над бинарни атрибути Прагот на фреквенцијата min_ fr е параметар кој го дава корисникот и зависи од самата апликација.2) или едноставно се означува со F ( r ) ако е познат прагот на фреквенцијата.3) { } Fl ( r ) = X ∈ F ( r ) X = l . B}} бидејќи ниту едно непразно множество не се појавува во повеќе од една редица. Колекцијата на фреквентни множества во базата r од слика 3.35 - . Нека R е множество и нека r е бинарна релација над R и min_ fr е праг на фреквенцијата.3.

36 - . Во текот на пребарувањето. иако прагот на фреквенцијата го ограничува излезот во разумен потпростор. ако имаме долги трансакции овој број би можел да биде се’ уште многу голем и е потребно да се изврши оптимизација за да се генерираат оние подмножества со големина помала или еднаква на дадената максимална големина. Многу е важно да се генерираат што помалку кандидати. додека за големи или dense бази на податоци овој алгоритам има големи барања за мемориски ресурси и заради тоа се предложени неколку решенија да се изврши подирекно пребарување во просторот за пребарување. 3. . т. Просторот за пребарување е експоненцијален со бројот на атрибути кои се појавуваат во базата на податоци. Понатаму во овој дел подетално ќе бидат разгледани двата аспекти. Секако. Во најдобар случај ќе се генерираат само фреквентните множества.3. Понатаму.1 Простор за пребарување Целосното пребарување на фреквентни множества е очигледно непрактична задача освен можеби за најмалите множества бидејќи просторот за пребарување на потенцијалните фреквентни множества се состои од 2 R подмножества од R. Очигледно е дека големината на колекцијата од кандидатните множества не смее да ја надмине големината на главната меморија.е ќе извршиме генерирање на сите подмножества од сите трансакции од базата. ама оваа идеја не е општо применлива што ќе биде покажано покасно. Според тоа можеме да ги генерираме само оние множества што се појавуваат барем еднаш во трансакциската база.2 Генерирање на фреквентни множества Откривањето на сите фреквентни множества е предизвикувачка задача.2. Оваа решение е добро кај sparse бази на податоци. базите на податоци можат да бидат масивни и да содржат милиони трансакции со што броењето на фреквенцијата е тежок процес. бидејќи пресметката на фреквенцијата е процедура што е временски зависна. се генерираат неколку колекции од кандидати множества и се пресметуваат нивните фреквенции сè додека не се генерираат сите фреквентни множества.

Најважното својство кое се користи од повеќето алгоритми за генерирање на фреквентни множества е дека фреквенцијата е монотоно опаѓачка функција зависно од големината на множеството. Y ⊆ R се две множества. Ажурирањето на фреквенциите на сите кандидати записи кои се содржат во една трансакција бара повеќе време отколку читањето на таа трансакција од датотека или база на податоци.2 База на податоци За да се пресметаат фреквенциите на колекција на записи (itemsets). Една важна забелешка во повеќето постоечки алгоритми е репрезентацијата на базата на податоци. потребно е да пристапиме до базата на податоци. 3. Концептуално. Таквата матрица може да се имплементира на неколку начини.1 (монотоност на фреквенцијата) Нека X . За да се пресмета фреквенцијата на множеството записи X со користење на хоризонталниот формат. потребно е базата на податоци целосно да се измине и за секоја трансакција T да се тестира дали е исполнет условот X ⊆ T . Според претходното својство. таквата база се претставува со бинарна дводимензионална матрица во која секој ред претставува индивидуална трансакција а колоните ги претставуваат записите во I.2. ако едно множество не е фреквентно тогаш сите негови надмножества (supersets) не се фреквентни. Својство 3. тогаш важи својството X ⊆ Y ⇒ fr ( X ) ≥ fr (Y ) .37 - . Доказ: доказот следи од M ( X ) ⊆ M ( Y ) што следува од претпоставката X ⊆ Y . Многу е важно да се забележи дека наоѓањето на фреквентни шеми во податоцте е операција што бара многу време поради скенирањето на базата на податоци и е многу интензивна операција во поглед на I/O. не секогаш е можно тие да се зачуваат во главната меморија. Бидејќи базите на податоци имаат тендеција да бидат многу големи. Најчесто користен формат е хоризонталниот формат каде секоја трансакција содржи број на трансакцијата и листа на записи што се појавуваат во неа. Во повеќето случаи ова не е најскапиот чекор во алгоритмите. Друг користен формат на репрезентирање на матрицата е вертикалниот каде базата се состои од множество од записи заедно со нивната обвивка (cover). Ова може да се направи за голема колекција на записи. За секоја трансакција мораме да го провериме секој .

Овој алгоритам понатаму бил подобрен и преименуван во Apriori каде било искористено својството на монотоност на фреквентните множества доверливоста на асоцијациските правила. Алгоритам 3. Y ∈ Fk . σ Output: F ( r .кандидат запис дали е се содржи во трансакција која се процесира или пак потребно е да се проверат сите подмножесва од трансакцијата дали се содржат во множеството од кандидати записи. 3. кој бил даден заедно со описот на овој проблем од податочно рударење. I ) ∈ r do for all candidate sets X ∈ Ck do if X ⊆ I then Increment X. k:=1.3 Аpriori алгоритам Прв алгоритам кој се користел за генерирање на сите фреквентни множества и доверливи асоцијациски правила бил алгоритамот AIS развиен од Agrawal. 3.1 Опис на Аpriori алгоритамот Фазата на откривање на фреквентните множества е дадена со алгоритмот 3. Според претходното можеме да заклучиме дека бројот на трансакции во базата има влијание врз потребното време за пресметка на фреквенциите на фреквентните множества.38 - и . while Ck ≠ { } do //compute the frequencies of all candidate sets for all transactions ( tid .3. X [i ] = Y [i ] for 1 ≤ i ≤ k − 1 and X [ k ] < Y [ k ] do . for all X .frequency by 1. σ ) C1 := {{i} i ∈ R} . //Extract all frequent sets Fk := { X ∈ Ck X .1. //Generate new candidate sets Ck +1 := { } .1 Apriori Input: r. frequency ≥ σ } .

39 - . За да се избројат фреквенциите на сите k кандидати множества. Ако X .2 Податочни структури Генерирањето на множествата кандидати и броењето на фреквенцијата на кандидатите бараат ефикасна податочна структура во која ќе се чуваат сите кандидати множества. Поконкретно. . Прво се изведува спојување на Fk самиот со себе. Во чекорот на поткастрување во Ck се додава унијата X U Y . и фреквенциите на сите кандидати множества кои се вклучени во таа трансакција се инкрементираат. наместо да се генерираат множества со големина k+2. Y ∈ Fk и ако тие имаат ист k-1 префикс се генерира унијата X U Y . 3. Ако бројот на k+1 кандидати множества е премногу голем да остане во главната меморија. Процедурата за генерирање на кандидати запира и се пресметува фреквенцијата на сите дотогаш генерирани кандидати. само ако сите нејзини k подмножества се појавуваат во Fk . J = k : J ∈ Fk then Add I to Ck +1 .3. се врши модификација на алгоритмот на следниот начин.I := X U {Y [ k ]} . Тоа се прави во два чекори. почнувајќи со k=0. се генерираат останатите кандидати со големина k+1 и се пресметува нивната фреквенција се додека не се определат сите фреквентни множества со големина k+1. базата на податоци дадена во хоризонтален формат се скенира трансакција по трансакција. if ∀J ⊂ I . Сите множества кои се фреквентни се додаваат во Fk . Во следната итерација. Increment k by 1. C1 се состои од сите записи од R и во одредена фаза k се генерираат сите множества со големина k+1. Алгоритмот извршува breadth-first пребарување врз просторот составен од сите множества со итеративно генерирање на множества кандидати Ck +1 со големина k+1. Едно множество е кандидат множество ако за сите негови подмножества е познато дека се фреквентни. бидејќи е важно ефикасно да се определат сите множества кои се содржат во една трансакција или во друго множество.

Кај префиксното дрво.3. Кога вршиме додавање на k – множеството X во текот на процесот на генерирање на кандидатите. Кога ќе стигнеме до еден внатрешен јазол на длабочина d.40 - . секое k-множество е поврзано со еден јазол како и неговиот k-1 префикс. Ако се наоѓаме во лист. ја применуваме hash – функцијата врз секој член што доаѓа по i во Т и рекурзивно ја применуваме оваа процедура врз јазелот во соодветниот букет. Коренот на hash – дрвото е дефинирано да биде на длабочина 1.1 Hash – дрво За ефикасно да може да се определат сите k – подмножества на потенцијалното кандидат множество.3. Кога бројот на множества во листот на длабочина d го надмине дадениот праг.2. Кандидатите множества се чуваат во hash – дрво.2 Префиксно дрво Друга податочна структура која често се користи е префиксно дрво (prefix tree. Сите јазли на почетокот се креираат како листови. листот се конвертира во внатрешен јазол. наоѓаме кои од множествата во листот се содржат во Т и ја зголемуваме нивната фреквенција.2. одлучуваме по која гранка ќе се движиме со примена на hash – функција врз членот X [ d ] од множеството и со следење на покажувачот од соодветниот букет. trie). се започнува од коренот и се движиме надолу по дрвото се додека не стигнеме до лист. Коренот е празно множество. Множествата се чуваат во листовите. Ако се наоѓаме во внатрешен јазол и сме стигнале до него со примена на hash – функција врз членот i . започнуваме од коренот. 3.3. само ако k > d . За коренот ја применуваме hash – функцијата врз секој член од Т. Внатрешен јазол на длабочина d покажува кон јазлите на длабочина d+1. За да се определат сите кандидати множества кои се содржат во една трансакција Т. сите фреквентни множества во Fk се чуваат во hash – дрво. Еден јазол од hash – дрвото содржи листа од множества (лист) или hash – табела (внатрешен јазол). Кај внатрешниот јазол секој букет од hash – табелата покажува кон некој друг јазол. Сите 1-множества се прикачени на коренот и нивните гранки се означени со членот кој го .

За да се определат сите кандидати множества кои се содржат во трансакција Т. . Чекорот на спојување во процедурата за генерирање на кандидати множества е многу едноставна со користење на оваа податочна структура.репрезентираат. За трансакција за еден јазол од префиксното дрво да се процесира. бидејќи сите множества со големина k со истиот k-1 префикс се претставуваат со гранките од истиот јазол (самиот јазол го претставува k-1 префиксот). Секој јазол го чува последниот член од множеството кое го претставува. Секое друго k-множество е поврзано со неговиот k-1 префикс. започнуваме од коренот. вршиме копирање на сите деца на јазелот кој го претставуват X како гранки на тој јазол. Во конкретна итерација k. За да се генерираат сите кандидати множества со k-1 префикс X . Гранките на јазелот можат да се имплементираат со користење на неколку податочни структури како hash – табела.41 - . (1) се следи гранката што одговара на првиот член од трансакцијата и го процесираме остатокот од трансакцијата рекурзивнo за таа гранка и (2) се занемарува првиот член од трансакцијата и се процесира рекурзивно за самиот јазол. сите кандидати k – множества се чуваат на длабочина k во префиксното дрво. бинарно пребарувачко дрво или вектор. Оваа процедура може понатаму да се оптимизира. неговата фреквенција и неговите гранки.

наместо да вршиме изминување на множеството податоци и броење на појавувањето на одреден атрибут (заедно со неговата вредност). Фреквенцијата на појавување на групација од атрибути можеме да ја добиеме ако извршиме генерирање на фреквентните множества за даденото множество податоци. за множеството податоци (dataset) што го користиме за градење на предиктивниот модел.2 Модификација на алгоритмот за учење на веројатносни модели Во делот 2. бидејќи целта на дипломската работа е да се испита и спореди однесувањето на оригиналините и модифицираните алгоритми. 4. наместо да работат со самите податоци. Познавањето на вредноста на фреквенцијата за дадена групација од атрибути ќе ни помогне во фазата на градење на предиктивниот модел да ја определиме дистрибуцијата на веројатноста за секоја од класите. МОДИФИКАЦИЈА НА АЛГОРИТМИТЕ ЗА УЧЕЊЕ НА ПРЕДИКТИВНИ МОДЕЛИ ОД СУМАРНИ ПОДАТОЦИ 4.2 беше опишан оригиналниот алгоритам за учење на Баесовиот класификатор каде за определување на условната веројатност P ( Ai = vik | Ck ) се .42 - . Сумарните податоци се состојат од податоци за фреквенцијата на појавување на групација од атрибути. заедно со вредностите на атрибутите.4. Поради тоа што за генерирањето на фреквентните множества е потребно атрибутите од множеството на податоци да примаат само дискретни вредности во оваа дипломска работа ќе се задржиме само на дискретни множества од податоци за да се избегне дискретизацијата на нумеричките атрибути.1 Мотивација Идејата на оваа дипломска работа е да се изврши модификација на постоечките алгоритми за учење на предиктивни модели така да тие можат да користат сумарни информации за податоците за пресметка на веројатностите кај моделите.

. а N ( C = c j ) е бројот на инстанци каде C = c j . Ова доведува до проблем при пресметката на веројатностите бидејќи за одредени групи атрибути. Apriori алгоритмот што се користи за генерирање на групи од атрибути (itemsets) врши генерирање само на групи чија фреквенција на појавување во множеството податоци е поголема од праговната (минимална) фреквенција. ние немаме информација за точната вредност на фреквенцијата. исто така.користи формулата P ( Ai = vik | Ck ) = N ( Ai = vik ∧ C = c j ) N (C = c j ) . Од претходното. оваа проценка е 2 добро избрана затоа што вистинската фреквенција на групата од атрибути се наоѓа во интервалот 0 ≤ fr < min fr така да ако се избере вредноста min fr за 2 фреквенцијата вкупната грешка на моделот би била најмала. Кај Naive Bayes алгоритмот земена е проценката дека за сите групи на атрибути чија фреквенција не е позната се зема вредноста min fr . Поради ова потребно е да се изврши проценка на фреквенцијата за таквата група на атрибути (non-frequent itemset). каде N ( Ai = vik ∧ C = c j ) е бројот на инстанци од множеството податоци кај кои се појавуваат заедно Ai = vik ∧ C = c j .43 - . чија фреквенција е помала од праговната. Според тоа модифицираната формула ќе биде: P ( Ai = vik | Ck ) = fr ( Ai = vik ∧ C = c j ) fr ( C = c j ) (4. Вредностите на бројачите се добиваат со изминување на множеството податоци. Доколку се избере многу голема вредност за прагот. Модификација на алгоритмот вклучува замена на бројачите со фреквенцијата на појавување парот Ai = vik ∧ C = c j и фреквенцијата на појавување на класата C = c j . грешката ќе биде голема и моделот ќе биде речеси неупотреблив бидејќи голем дел од бројачите ќе имаат иста вредност за фреквенцијата а со тоа и веројатностите кои ќе се пресметуваат ќе бидат рамномерно распределени. може да се забележи дека вкупната грешка на моделот ќе зависи од изборот на праговната фреквенција.1) За пресметка на фреквенциите ни се потребни групи од атрибути (itemsets) со големина еден и два. Статистички гледано.

...& Al = alm ) fr ( Ai = aij & ... се потребни а за фреквентни фреквенцијата множества со големина l +1..& Al = alm . и тука постои проблемот на проценка на фреквенцијата на групата на атрибути која не е фреквентна т. Според тоа распределбата на веројатност за соодветниот јазол се пресметува по формулата: ( fr ( Ai = aij & .4.& Al = alm = fr ( Ai = aij & . ни се потребни фреквентни множества со големина l. & Al = alm & C = ck ) јазол. Модификацијата ја опфаќа само фазата на индукција на дрвото..3 беше детално опишан стандардниот алгоритам за учење на дрва за одлучување.е фреквенцијата на групата атрибути е помала од избраната праговна фреквенција min fr . наместо со изминување на множеството податоци и броење на примероците кои го задоволуваат соодветниот услов определен со изборот на атрибут за поделба.2). тогаш за оценка на распределбата на веројатноста во соодветниот внатрешен јазол за сите класи Ck е потребно да ја познаваме фреквенцијата на групата атрибути fr ( Ai = aij & . каде l е бројот на атрибути што се тестирани до соодветниот fr ( Ai = aij &.3 Модификација на алгоритмот за учење на дрва за одлучување Во делот 2.& Al = alm & C = ck ) ) P C = ck Ai = aij & .. во секој јазол мораме да чуваме информација кои атрибути се тестирани во патеката од коренот до тој јазол за да можеме да ја најдеме фреквенцијата на групата атрибути. Модификацијата на алгоритмот за учење на дрва за одлучување се состои од користење на фреквентните множества за пресметка на веројатностите на сите класи во секој чекор на индукција на дрвото за одлучување... Според претходното. & Al = alm & C = ck ) за сите вредности на k....& Al = alm ) За пресметка на фреквенцијата (4.& Al = alm ) и фреквенцијата на групата атрибути заедно со класниот атрибут fr ( Ai = aij &....44 - . Нека патеката од коренот до даден внатрешен јазол од дрвото е составена од следниве тестирања на атрибути: Ai = aij & . Како и кај претходниот алгоритам (Naive Bayes). додека фазата на поткастрување во овој момент ја оставаме непроменета. .

за записи со големина 2 ќе имаме или општо 2 2*2 min fr фреквентниот запис. се состои од постепено намалување на процеката на фреквенцијата со растење на големината на групата од атрибути. потребно е да ги бараме подмножествата на групата атрибути и да провериме кои од подмножествата се фреквентни. 4. опфаќа определување на моментот кога одредена група атрибути станува нефреквентна. т. Модификацијата ја опфаќа само фазата на градење на правилата. Модификацијата на алгоритмот за учење на правила се состои од користење на фреквентните множества за пресметка на точноста (accuracy) на правилото. определен со претходно искористените тестови врз атрибутите од правилото. т.4 беше детално опишан стандардниот алгоритам за учење на правила за одлучување.45 - .4 Модификација на алгоритмот за учење на класификациски правила Во делот 2. полесен за имплементација. Значи. а Ваквото g е големината на постепено намалување на проценката на фреквенцијата е логично затоа што ако би ги генерирале сите записи (минимална фреквенција е еднаква на 0) тогаш фреквенцијата на појавување на записите со максимална големина (еднаква на вкупниот број на атрибути од множеството податоци) би била 0 или 1.е дали во множеството податоци постои таква инстанца или не постои. Првиот начин.е за фреквентни записи со големина 1 проценката би била min fr 2* g каде min fr min fr . додека фазата на поткастрување во овој момент ја оставаме непроменета. е минималната фреквенција. Во имплементацијата на алгоритмот што ќе биде опишана во следното поглавје е искористен вториот пристап заради поедноставната имплементација. Понатаму фреквенцијата на овие подмножества може да се искористи за проценка на фреквенцијата на оригиналната групација на атрибути.Постојат повеќе начини за проценка на фреквенцијата на групата атрибити која не е фреквентна. покомплексен за имплементација. Втор начин. . наместо со изминување на множеството податоци и броење на примероците кои го задоволуваат соодветниот услов.

& Al = alm & C = ck ) се потребни фреквентни множества со големина l +1.3)... Формулата за пресметка на точноста на правилото го има следниов облик: Accuracy = fr ( Ai = aij &..46 - .& Al = alm THEN C = ck тогаш за пресметка на точноста на правилото потребно е да ја познаваме фреквенцијата на групата атрибути fr ( Ai = aij & . ....& Al = alm ) и фреквенцијата на групата атрибути заедно со класниот атрибут fr ( Ai = aij &...Нека едно правило за одлучување го има следниов облик: IF Ai = aij & .& Al = alm & C = ck ) fr ( Ai = aij & ... каде l е бројот на атрибути опфатени во условот на правилото.& Al = alm ) (4. а за фреквенцијата fr ( Ai = aij &.... ни се потребни фреквентни множества со големина l.& Al = alm ) За пресметка на фреквенцијата fr ( Ai = aij & .. Постапката на проценката на фреквенцијата на групата на атрибути која не е фреквентна кај правилата на одлучување е иста како и кај дрвата за одлучување и е опишана погоре во текстот. & Al = alm & C = ck ) .

Освен алгоритми за учење. WEKA обезбедува и филтри за пред и пост – процесирање на податоците. ИМПЛЕМЕНТАЦИЈА НА АЛГОРИТМИТЕ ЗА УЧЕЊЕ НА ПРЕДИКТИВНИ МОДЕЛИ ОД СУМАРНИ ПОДАТОЦИ 5. . како што се алгоритми за дискретизација и различни типови на филтри за податоците. методи за пред и пост процесирање и евалуација на резултатите на шемите за учење на кое било множество податоци.47 - . Како и кај класификаторите и филтрите имаат стандардизиран интерфејс од командна линија. Перформансите на сите класификатори се мерат со ист модул за евалуација. развиен во универзитетот Waiakato во Нов Зеланд. JAVA ни дозволува да обезбедиме униформен интерфејс за многу различни алгоритми за учење. Системот WEKA е напишан во JAVA. Еден начин на користење на WEKA е да се примени методот за учење врз множеството податоци и да се анализира неговиот излез и да се екстрахираат информациите за податоците. направена е имплементација на добри алгориитми за учење што можат да се применуваат врз податоците за обучување дирекно од командна линија. Постојат неколку нивоа на користење на WEKA системот. Кратенката WEKA е добиена од сложенката Waiakato Enviroment for Knowledge Analysis што во превод значи Waiakato околина за анализа на знаење. објектно – ориентиран програмски јазик што е широко достапен за сите компјутерски платформи како Windows. Друг начин е да се применат неколку алгоритми за учење и да се споредат нивните перформанси за да се избере најдобриот за предикција.1 WEKA – Waiakato Enviroment for Knowledge Analysis Алгоритмите што беа разгледани во претходните поглавја се имплементирани во системот наречен WEKA. Сите тие алгоритми имаат ист интерфејс од командна линија и постои множество од генерички опции од командна линија и опции кои се карактеристични за секој алгоритам посебно. Прво. Исто така вклучено е множество од алатки за трансформација на множества од податоци. Методите за учење се наречени класификатори.5. Linux и Macintosh.

Објект од класа Instances содржи подредено множество на инстанци или со други зборови го содржи множеството податоци. 5. Секој пакет содржи група на класи што се меѓусебно поврзани и делат заеднички функционалности. Поради тоа што во WEKA постојат многу класи за различни алгоритми за учење и филтрирање на податоците тие се орагнизирани во пакети. освен овие алгоритми се вклучени и алгоритми за учење на асоцијациски правила и кластерирање на податоци. Тој содржи класи кои ги користат сите останати класи во системот.1 weka.Од претходното искажување може да се заклучи дека основната цел на WEKA системот е развивање на алоритми за класификација и филтрирање на податоци. Во повеќето апликации за податочно рударење.48 - .core пакет Пакетот core е основен пакет во WEKA системот. . Објект од класа Attribute претставува еден атрибут. Основни класи во core пакетот се: Attribute. Instance и Instances. тип на атрибутот и во случај кога имаме номинален атрибут ги содржи и можните вредности на атрибутот. 5. Објект од класа Instance ги содржи вредностите на атрибутите за една конкретна инстанца од множеството на податоци. Тој содржи име на атрибутот.2 Основни компоненти во WEKA системот Во WEKA системот секој алгоритам за учење е претставен со посебна класа. Во WEKA. Поради овој факт беше избран токму WEKA системот за имплементација на модифицираните алгоритми за учење на предиктивни модели од сумарни податоци.2. компонентата за машинско учење е само еден мал дел од многу поголемиот софтверски систем и затоа во случај кога сакаме да пишуваме нова апликација за податочно рударење можеме да ги користиме програмите од WEKA од сопствениот код и во тој случај го решаваме нашиот проблем со минимално дополнително програмирање.

. За евалуација на користи ист модул за сите класификатори.5.classifiers пакет Пакетот classifiers ги содржи имплеметациите на повеќето од алгоритмите за класификација и нумеричка предикција.2. Секој алгоритам за класификација врши дефинирање на методите според тоа како го градат класификаторот и како ги класифицираат инстанците. Во жаргонот на објектно–ориентираното програмирање класите за учење на класификатори се подкласи на Classifier и според тоа тие автоматски ги наследуваат овие методи.49 - . classifyInstance() и distributionForInstance(). Ова дава униформен интерфејс за градење и користење на класификатори од страна на друг JAVA код. Најважната класа во пакетот е Classifier. која ја дефинира општата структура на кој било алгоритам за класификација. Слика 5-1 UML класен дијаграм за класата Classifier Класата содржи три методи што мораат да бидат имплементирани од сите алгоритми за учење на класификатори и тоа: buildClassifier().2 weka. Класиот дијаграм на класата е прикажан на слика 5-1.

weka.classifiers.3 Други пакети во WEKA системот Останатите пакети во WEKA системот се: weka. вкупниот број на трансакции од множеството податоци и поле од целобројни вредности за евиденција кои атрибути се присутни во една комбинација.3. Индексот на елементите од полето се користи за нумерација на атрибутите. weka. за таа да ги генерира само фреквентните множества за дадено множество податоци а не и самите асоцијациски правила кои не се потребни во овој случај. 5.3 Иплементација на Apriori алгоритам Во пакетот weka. weka. тогаш вредноста на елементот на соодветната позиција е -1. 5. Големината на полето m_items е еднаква на вкупниот број на атрибути во множеството податоци заедно со класата. За потребите на дипломската работа беше извршена модификација на класата Apriori.estimators.associations што содржи класи за имплементација на Аpriori алгоритмот за учење на асоцијациски правила и генерирање на фреквентни множества од множество податоци. Доколку атрибутот е присутен вредноста на елементот .5. Од интерес за дипломската работа е пакетот weka.attributeSelection и многу други.2. така да позицијата i од полето е резервирана за евиденција на присутност на атрибутот i во соодветната комбинација на атрибути. Новоформираната класа FrequentItemsets заедно со останатите модифицирани класи за учење на класификатори се сместени во пакетот weka. Ако атрибутот не е присутен во комбинацијата.freqitemsets.1 Класа ItemSet Класата ItemSet содржи податоци што опишуваат еден член (запис) од фреквентно множество.associations.filters.50 - . Класниот дијаграм за оваа класа е прикажан на слика 5-2.clusterers. weka.associations постојат класи кои го имплементираат алгоритмот за учење на асоцијациски правила Apriori. Оваа класа заедно со други класи за учење на класификатори ќе бидат обработени понатаму во ова поглавје од дипломската работа. Од класниот дијаграм се забележува дека се чуваат податоци за бројот на трансакции во кои е присутна соодветната комбинација на атрибути.

Слика 5-2 UML дијаграм за класата ItemSet Во класата ItemSet се реализирани методи за манипулација на вакви објекти.2 Класа FrequentItemsets Во класата FrequentItemsets е имплементиран Apriori алгоритмот за генерирање на фреквентни множества.3. кои се користат кај Apriori алгоритмот за генерирање на фреквентни множества. . Вредностите на атрибутите во WEKA се кодирани со целобројна вредност почнувајќи од 0 до бројот на вредности на атрибутот – 1.51 - . Класниот дијаграм за оваа класа е даден на слика 5-3. бришење и поткастрување на вектори составени од вакви објекти. Постојат методи спојување. 5.на соодветната позиција е еднаква на вредноста на самиот атрибут.

* * @param the instances to be used * @exception Exception if an attribute is numeric */ private void findLargeItemSets(Instances instances)throws Exception { FastVector kMinusOneSets. Креирањето на објект од класа FrequentItemsets се врши со конструкторот FrequentItemsets() со што се иницијализира векторот во кој се чуваат фреквентните множества и миималната и максималната фреквенција. Оваа метода користи приватна метода findLargeItemSets() што е реализација на Apriori алгоритмот.Слика 5-3 UML класен дијаграм за класата FrequentItemsets Фреквентите множества кои се генерираат со Apriori алгоритмот се чуваат во објектот m_Ls кој е од тип FastVector и припаѓа на пакетот weka. Во класата се чуваат податоци за минималната фреквенција m_minSuppot. kSets.4. Со методата buildAssociations() се генерираат фреквентните множества.52 - . максималната фреквенција m_upperBoundMinSupport и некои дополнителни помошни податоци. . /** * Method that finds all large itemsets for the given set of instances. Hashtable hashtable.core. Кодот за методата findLargeItemSets() е даден на слика 5.

mergeAllItemSets(kMinusOneSets. Понатаму се врши ажурирање на бројачите на трансакции од записите во векторот и се врши бришење на оние кандидати записи кои ја немаат потребната минимална фреквенција. ItemSet. } while (kSets. instances).numInstances()).53 - .size() == 0) return. do { m_Ls.numInstances())). 6 Под големина во овој случај се подразбира бројот на членови (атрибути) во еден запис (itemset). kSets = ItemSet. instances).getHashtable(kMinusOneSets.i = 0. kSets = ItemSet.size() > 0). necMaxSupport. kMinusOneSets.е ги отстрануваме оние записи кои не го исполнуваат условот за минимална фреквенција.pruneItemSets(kSets. } Слика 5-4 Имплементација на Аpriori алгоритам Алгоритмот започнува со повикување на методот singletons() што од множеството податоци го креира на почетното множество кандидати записи каде секој запис содржи само по еден член (атрибут).singletons(instances). kMinusOneSets = kSets. hashtable = ItemSet.size()).deleteItemSets(kSets.addElement(hashtable). necSupport.deleteItemSets(kSets.instances. m_instances = instances. necMaxSupport = (int)Math. if (kSets.floor((m_minSupport * (double)instances.upDateCounters(kSets. // Find large itemsets // minimum support necSupport = (int)Math.addElement(kSets). Ваквата постапка продолжува итеративно се додека бројот на кандидати записи во к-1 итерацијата е различен од нула. necMaxSupport).int necSupport.numInstances())). Значи прво правиме спојување на сите кандидати записи и со помош на hash табелата вршиме поткастрување на множеството записи т.floor((m_upperBoundMinSupport * (double)instances. Множеството записи од к–та итерација се чуваат во објектот kSets од тип FastVector. kSets =ItemSet. necMaxSupport). i++. kSets =ItemSet. m_hashtables. hashtable).upDateCounters(kSets.i. . Во променливата m_Ls во секоја итерација го додаваме добиеното фреквентно множество со големина i6 така да на крај во оваа променлива ќе го добиеме целото фреквентно множество за дадено множество податоци. ItemSet. kSets = ItemSet. necSupport.

.1 Класа NaiveBayes Во класата NaiveBayes е имплементиран алгоритмот за учење на веројатносни модели.4. 5. За потребите на дипломската работа беше извршена модификација на оваа класа така да таа со помош на опции од командна линија може да работи на стандарден начин или со користење на фреквентни множества. кои се користат за пресметка на веројатностите на моделот. Класниот дијаграм за оваа класа е даден на слика 5-5. класата NaiveBayes ги дефинира методите кои ги наследува од основната класа Classifiers.2.4 Имплементација на алгоритмот за учење на веројатносни модели Учењето на веројатносни модели (класификатори) во системот WEKA е имплементирано во класата NaiveBayes. што е подетално опишан во поглавието 2.54 - .5. m_Devs [klasa] [atribut] и m_Means [klasa] [atribut] се користат за пресметка на параметрите на Гаусовата распределба во случај кога имаме нумерички атрибут и m_Priors [klasa] се користи за определување на априорните веројатности. Како што може да се забележи од класниот дијаграм. Во класата се дефинирани повеќе променливи. Тридимензионалното поле m_Counts [klasa] [atribut] [vrednost na atribut] се користи за пресметка на условните веројатности во случај на дискретни атрибути.

length-1.size(). count=((ItemSet)((FastVector)itemSets. Тогаш прво се врши иницијализација на FrequentItemsets објект и потоа се врши генерирање на фреквентни множества. можеме да користиме само дискретни атрибути.elementAt(0)).length-1]!=-1) m_Priors[help[help. } //naoganje na brojacite za presmetka na verojatnostite na klasite i atributite so klasite for(int i=0. На слика 5-6 е даден програмски сегмент со кој се доделуваат вредности на бројачите за пресметка на веројатностите.i++){ help=((ItemSet)((FastVector)itemSets.items().counter(). Понатаму се повикува приватната метода calculateProbs() која ги врши потребните пресметки и прави нормализација на веројатностите. Во случај кога работиме со фреквентни множества. count=((ItemSet)((FastVector)itemSets.elementAt(1)).elementAt(i)).elementAt(1)).j<help.elementAt(i)).j++){ .elementAt(0)).elementAt(i)).55 - . потребни ни се само фреквентни записи со големина 1 и 2.size()-1. Кај овој тип на класификација.i<((FastVector)itemSets.items().Слика 5-5 UML класен дијаграм за класата NaiveBayes Во методата buildClassifier() се одлучува дали ќе се работи по стандардниот алгоритам или ќе се работи по модифицираниот алгоритам врз основа на параметрите од командната линија. за разлика од останатите.length-1]]=count. for(int j=0. if(help[help.i++){ help=((ItemSet)((FastVector)itemSets.i<=((FastVector)itemSets.elementAt(i)). //za klasna verojatnost for(int i=0.elementAt(1)).counter().elementAt(0)).

На сличен начин се пополнува и полето m_Counts [klasa] [atribut] [vrednost na atribut] само во тој случај се користат фреквентни записи со големина 2. тогаш на соодветиот елемент од полето m_Priors [klasa] му се доделува фреквенцијата на појавување на вредноста на класниот атрибут во множеството податоци. ја доделуваме вредноста min fr .length-1]][j][help[j]]=count. Инстанцата од множеството податоци која се процесира ќе биде доделена на онаа класа за која веројатноста е најголема. 2 При евалуацијата на моделот врз конкретно множество на податоци.5 Имплементација на алгоритмот за учење на дрва за одлучување Учењето на дрва за одлучување во системот WEKA е имплементирано преку множество од класи. модулот за евалуација ја повикува методата distributionForInstance() која враќа поле со распределба на веројатноста врз класите. Оваа метода се повикува за сите инстанци чија класа сакаме да ја определиме и според добиените резултати од класификацијата модулот за евалуација врши статистичка обработка од која можеме да ги процениме перформансите на моделот. За пресметка на веројатностите потребно е да се пополнат сите елементи од двете полиња и во случај кога не е позната фреквенцијата за одредена комбинација на атрибут и класа. Концептално гледано.56 - . } } } Слика 5-6 Коден сегмент за пресметка на веројатностите кај NaiveBayes Значи. 5. класите можат да се поделат во неколку групи според функцијата што ја имаат во алгоритмот и тоа: класи за манипулација со дрва за . како што се гледа од кодниот сегмент за определување на априорните веројатности вршиме изминување на фреквентните записи со големина 1 и кога ќе се најде запис кој во себе го содржи класен атрибут. Секоја класа посебно има определена улога во алгоритмот.if(help[j]!=-1) { m_Counts[help[help.

3. Слика 5-7 UML класен дијаграм за класата Ј48 7 Алоритмите врз кои се базира имплементацијата подетално се разработени во книгата: Ross Quinlan (1993).одлучување. класи за селекција на модел на дрво.Понатаму во текстот ќе бидат разгледани некои од класите подетално.57 - . класи за критериуми за поделба. 5. за да се опише целокупната функционалност на алгоритмот.5: Programs for Machine Learning.5. San Mateo. Morgan Kaufmann Publishers. C4. Класниот дијаграм за ова класа е прикажан на слика 5-6.1 Класа Ј48 Класата Ј48 е основна класа која го имплементира алгоритмот за учење на с4. класа за пресметка на распределбата на веројатност на ниво на јазол и др. класи за поделба на ниво на јазол. .57 што е подетално обработен во поглавјето 2. CA.

58 - . Слика 5-8 UML класен дијаграм за класата ClassifierTree Во класата се чуваат податоци за еден јазол од дрвото.Во класата се дефинирани повеќе променливи кои се користат за определување на карактеристиките на дрвото. модел на ниво на јазол (ClassifierSplitModel m_localModel). логичка променлива која определува дали јазолот е лист (boolean m_isLeaf) и поле . Класата Ј48 е наследник на класата Classifiers и ги имплементира методите buildClassifier(). classifyInstance() и distributionForInstance(). Податоците кои дефинираат еден јазол од класификациско дрво се: модел на дрвото (ModelSelection m_toSelectModel). што се користат од модулот за евалуација. 5. референци кон јазлите наследници (ClassifierTree [] m_sons).5. Класниот дијаграм за оваа класа е прикажан на слика 5-8.2 Класа ClassifierTree Класа ClassifierTree е основна класа што дефинира рекурзивна структура на класификациско дрво.

За градење на дрвото се користи методата buildTree() во која се врши избор на најдобар атрибут за поделба преку повикување на метода selectModel() од објектот m_toSelectModel. по патеката од коренот до конкретниот јазол (int []m_usedAttr).е преку параметрите од класата Ј48.59 - .3 Апстрактна класа ModelSelection и класа C45ModelSelection Апстрактната класа ModelSelection ја дефинира апстрактната метода selectModel() која го избира атрибутот за поделба за дадено множество на податоци.4.е се гради бинарно стебло. т. Методата враќа објект од тип ClassifierSplitModel кој го содржи најдобриот атрибут за поделба заедно со неговата дистрибуција. Класата PrunableClassifierTree ги дефинира параметрите и методите за креирање на дрва кои се поткаструваат со користење на IREP(Increased Reduced Error Pruning) алгоритмот. Изборот на најдобар атрибут за поделба ќе биде разгледан покасно во текстот. се креира поле од објекти од тип ClassifierTree што ги репрезентира наследниците (децата) на дадениот јазол и рекурзивно се повикува методата за градење на дрво.3. Класата BinC45ModelSelection дефинира бинарен тип на поделба. Ако е можна поделбата за избраниот атрибут. додека со класата C45ModelSelection вршиме градење на општо стебло (во гранките се опфатени .4. Полето од употребени атрибути за поделба е помошна информација која се користи од класата Distribution за пресметка на дистрибуцијата на веројатност на класите за конкретен јазол од дрвото со френвентни множества. 5.5. Во WEKA постојат две класи кои ја наследуваат класата ClassifierTree што се користат за дефинирање на дрво кое може да се поткаструва. Класите C45ModelSelection и BinC45ModelSelection ја имплементираат апстрактната класа ModelSelection. т. Класата C45PrunableClassifierTree ги дефинира параметрите и методите за креирање на дрва кои се поткаструваат со користење на класична процедура на поткастрување опишана во поглавието 2. Изборот на начинот на поткастрување се врши преку параметри од командна линија.од атрибути кои се искористени за поделба. Во случај кога не е можна поделба јазолот се дефинира како лист. Методата враќа објект од тип ClassifierSplitModel што содржи информации и параметри за самата поделба.

5. Слика 5-9 UML класен дијаграм за класата C45ModelSelection Методата selectModel() може да се подели на два дела. така да нема посебно да биде разгледана.4 Апстрактна класа ClassifierSplitModel и класа C45Split Апстрактната класа ClassifierSplitModel се користи за класификациски модели што вршат рекурзивна поделба на податоците. Методата selectModel() за класата BinC45ModelSelection е аналогна на претходно опишаната. Доколку поделба не е можна методата враќа објект од тип NoSplit.сите вредности на даден атрибут). 5. се избира онаа поделба што ја максимизира параметарот gain ratio дефиниран во делот 2.1. Во вториот дел се иницијализира поле од објекти од тип C45Split за сите атрибути и се врши избор на најдобар атрибут. . Во првиот дел се врши проверка дали се исполнети сите неопходни предуслови за поделбата како што се: неопходен број на инстанци за поделба и дали сите инстанци припаѓаат на иста класа. Класниот дијаграм за класата C45ModelSelection ќе биде прикажан на слика 5-9.60 - . Методата ја враќа најдобрата поделба.3. Класниот дијаграм за оваа класа е даден на слика 5-10.4. Од сите можни поделби.

заедно со статичките референци кон објекти InfoGainSplitCrit и GainRatioSplitCrit. Bin C45Split и NoSplit. Класниот дијаграм за ова класа е даден на слика 5-11. Класата C45Split иплементира C45 вид на поделба врз конкретен атрибут.61 - . . во m_distribution се чува распределбата на веројатност за таквата поделба и во променливата m_numSubsets го чуваме бројот на генерираните деца на конкретниот јазол. Апстрактната класа декларира повеќе методи што ги имплементираат класите: C45Split. Во случај кога имаме нумерички атрибути во променливата m_splitPoint ја чуваме вредноста од поделбата.Слика 5-10 UML класен дијаграм за класата ClassifierSplitModel Во класата се дефинирани повеќе променливи кои ја опишуваат поделбата на ниво на јазол и тоа: во m_attIndex се чува индексот на атрибутот што се користи за поделба. Од класниот дијаграм може да се забележи дека во класата се чуваат податоци што се битни за конкретна поделба и се користат од страна на методата selectModel() за избор на најдобра поделба. Се чуваат вредностите за информационата добивка m_infoGain и факторот на добивка m_gainRatio.

Приватната метода handleNumericAttribute() се користи за поделба врз нумерички атрибути. Класата Bin C45Split се користи во случај кога имаме бинарна поделба на атрибути.62 - .Слика 5-11 UML класен дијаграм за класата C45Split Во методата buildClassifier() се врши иницијализација на параметрите од објектот и се повикуваат приватните методи за справување со дискретен или нумерички тип на атрибут. Приватната метода handleEnumeratedAttribute() прави поделба врз дискретен атрибут. Во методата се врши определување на најдобрата вредност за точката на поделба m_splitPoint. Во методата прво се врши иницијализација на објект од тип Distribution во кој се чуваат распределбите за дадена поделба. . бидејќи кај нумеричките атрибути е можна само бинарна поделба на атрибутите. Податоците и методите што ги имплементира оваа класа се аналогни на претходно опишаните така да тие нема посебно да бидат разгледувани. Врз основа на распределбата и со користење на методите од објектите InfoGainSplitCrit и GainRatioSplitCrit се определуваат вредностите за информациската добивка и факторот на добивка кои се користат понатаму за определување на најдобар атрибут за поделба.

63 - .5 Класа Distribution Класата Distribution се користи за справување со распределбата на класни вредности при поделба со даден атрибут.5. Класниот дијаграм за оваа класа е прикажан на слика 5-12. Слика 5-12 UML класен дијаграм за класата Distribution .5.

for(int j=0. .getMinSupport()/(numOfUsedAttr+1))/2).length-1]=new Double(j).Од класниот дијаграм се гледа дека за определлување на распределбата на класни вредности се користат променливите: матрица m_perClassPerBag[klasa][vrednost na atribut] што дава распределба на бројот на инстанци по класи и по вредности на даден атрибут. break.length-1.j<numClasses. for(int i=0. int[] usedAttr=usedAtt.x++){ usedAttr[attIndex]=x. for(int x=0.e lementAt(i)). вектор m_perBag[vrednost na atribut] што дава распределба на бројот на инстанци по вредности на атрибут.i<bags. for(int i=0.numBags().size(). Во оваа класа е имплементирана модификацијата на алгоритмот за користење на податоците за фреквенцијата на фреквентните записи за определување на распределбата на класни вредности.64 - .i++){ m_perBag[i]=0.i++) m_perClass[i]=0. } int sizeOfSets=((FastVector)itemsets. if(Arrays.getItemSet()).counter(). int numClasses=this.int[] usedAtt.i++){ int[]pom=((ItemSet)((FastVector)((FastVector)itemsets. for(int j=0. Во класата се дефинирни повеќе конструктори за истата класа да може да се користи за определување за распределбите од страна на сите класи од пакетот Ј48.i<numClasses. for(int i=0.equals(usedAttr. вектор m_perClass[klasa] што дава распределба на бројот на инстанци по класи и променлива total во која се чува вкупниот број на инстанци кои се процесираат.i<usedAtt.j<numClasses. Модификацијата на алгоритмот е реализирана преку методата populateDistribution() прикажана на слика 5-13.pom)){ m_perClassPerBag[x][j]=freq. int numOfUsedAttr=0.getItemSet()).elementAt(numOfUsedAttr+1)).numClasses().size().elementAt(numOfUsedAttr+1)). for(int i=0.ele mentAt(i)).j++) m_perClassPerBag[i][j]=(int)((itemsets. intfreq=((ItemSet)((FastVector)((FastVector)itemsets.j++){ usedAttr[usedAttr.intValue(). public final void populateDistribution(int attIndex.FrequentItemsets itemsets){ int bags=this.items(). if (sizeOfSets>numOfUsedAttr+1){ int sizeAttCl=((FastVector)((FastVector)itemsets.i++) if (usedAtt[i]!=-1) numOfUsedAttr++.getItemSet()).i<sizeAttCl.x<bags.elementAt(numOfUsedAttr+1)).getItemSet()).

Подетален опис за изборот на оваа проценка е даден во делот 4. Методата прво врши иницијализација на полињата m_perBag[] и m_perClass[] на вредност нула. totaL=0.i++) m_perBag[i]=Utils.i++) m_perClass[j]+=m_perClassPerBag[i][j]. for(int j=0.j<bags. Доколку вредноста на sizeOfSets е поголема од бројот numOfUsedAttr + 1 се врши изминување на фреквентните записи со големина numOfUsedAttr + 1 и се пополнува матрицата со распределбите. Во променливата sizeOfSets ја сместуваме максималната големина на генерираните фреквентни записи. а numOfUsedAttr е бројот на искористени атрибути по патеката од коренот до јазолот кој го процесираме. Матрицата m_perClassPerBag[][] се иницијализира на вредност min fr каде min fr е минималната 2 ⋅ (numOfUsedAtrr + 1) фреквенција од Apriori алгоритмот. usedAtt (поле од атрибути кои се искористени по патеката од коренот до конкретниот јазол) и itemsets (генерирани фреквентни записи за множеството падатоци).j<numClasses. } Слика 5-13 Функција populateDistribution() Функцијата populateDistribution() прима три аргументи и тоа: attIndex (индекс на атрибутот за поделба).i<bags.i<bags.sum(m_perClassPerBag[i]).65 - . Во случај кога не е позната вредноста за фреквенцијата на некој од фреквентните записи во матрицата останува иницијалната вредност поставена на почетокот од функцијата.j++) for(int i=0.} } } } }//end if for(int i=0. for(int i=0. Ако вредноста на sizeOfSets е помала од бројот numOfUsedAttr + 1 тогаш не ги изминуваме фреквентните записи.i++) for(int j=0.3. . бидејќи не постојат генерирани фреквентни записи со таква големина и вредностите на матрицата остануваат на иницијалната вредност. Иницијализацијата е направена за да се справиме со вредностите на фреквенцијата за оние записи кои не се фреквентни.j++) totaL+=m_perClassPerBag[j][i].i<numClasses.

6 Класи InfoGainSplitCrit и GainRatioSplitCrit За пресметка на информациската добивка и факторот на добивка за дадена распределба на класни вредности се користат класите InfoGainSplitCrit и GainRatioSplitCrit.5. Класните дијаграми за овие класи се дадени на сликите 5-14 и 5-15 соодветно. Слика 5-14 UML класен дијаграм за класата InfoGainSplitCrit Слика 5-15 UML класен дијаграм за класата GainRatioSplitCrit Од класните дијаграми се гледа дека и двете класи ја наследуваат класата EntropyBasedSplitCrit.66 - . Во методите се имплементирани алгоритми за пресметка на информациска добивка и фактор на добивка за дадена распределба на класни . 5.Врз основа на матрицата m_perClassPerBag[][] се пресметуваат векторите m_perBag[] и m_perClass[].

Понатаму овие вредности ќе се искористат за избор на најдобар атрибут за поделба. classifyInstance() и distributionForInstance(). статистики за множеството правила FastVector m_RulesetStats и други параметри за фазата на поткастрување. За потребите на алгоритмот се дефинира и помшна класа RuleStats која ги дефинира потребните статистички функции што се користат во самиот алгоритам.вредности. За секоја класа се генерираат правила со повикување на методата rulesetForOneClass(). Класниот дијаграм за оваа класа е даден на слика 5-16. без да имаме поткастрување и оптимизација на добиените правила. Со подесување на параметрите од командна линија може да се користи само фазата на градење. сé додека не биде задоволен условот за престанување на генерирањето на правилата. 5. класниот атрибут Attribute m_Class. Класата JRip ги дефинира параметрите на алгоритмот како што се: множество на генерирани правила FastVector m_Ruleset. Методата buildClassifier() ги гради правилата за одлучување по растечки редослед на класните фреквенции.1 Класа JRip Класата JRip ја наследува класата Classifiers и ги имплементира методите buildClassifier(). 5. .6.6 Имплементација на алгоритмот за учење на правила за одлучување Учењето на правила за одлучување со RIPPER алгоритам во системот WEKA е имплементирано преку класата JRIP. За секоја класа алгоритмот рабои во две фази: фаза на градење и фаза на оптимизација. Во класата JRIР се вгнездени приватни класи и тоа: апстрактна класа Antd што дефинира еден услов во правилото. класи NumericAntd и NominalAntd што ја имплементираат апстрактната класа Antd и служат за справување со нумерички и дискретни услови соодветно и класа RipperRule што дефинира изглед на едно класификациско правило. што се користат од модулот за евалуација.67 - .

Во фазата на оптимизација се повторуваат истите чекори само условите за престанок на генерирање на преавилата се различни.68 - . Понатаму се креира објект од тип RipperRule што претставува едно правило и се врши негово растење и поткастрување. За генерирањето на правила да биде статистички исправно мора да се изврши претходна стратификација на податоците.Слика 5-16 UML класен дијаграм за класата Jrip Mетодата rulesetForOneClass() е имплементација на RIPPER алгоритмот. . Во случај кога не користиме поткастрување на правилата имаме само растење на правилата. Во случајот кога користиме поткастрување на правилата почетното множество на податоци го делиме на подмножество за растење и подмножество за поткастрување на правилата.

Класниот дијаграм за оваа класа е прикажан на слика 5-18. Класниот дијаграм за оваа класа е даден на слика 5-17. ратата на точност врз податоците за растење accuRate.2 Апстрактна класа Antd и класа NominalAntd Класата Antd дефинира еден услов од правилото. Класата NominalAntd ја наследува класата Antd и се користи за работа со дискретни атрибути. Класата дефинира апстрактна метода splitData() која се користи за поделба на податоците според условот.5.69 - . покриеност која се остварува врз податоците за растење cover и точноста на овој услов accu. вредноста на атрибутот value. Слика 5-17 UML класен дијаграм за класата Antd Класата чува податоци за: атрибутот att. Еден услов се состои од пар атрибут и вредност на атрибут. максималната информациска добивка која се остварува со примена на овој услов врз податоците за растење maxInfoGain.6. .

Слика 5-18 UML класен дијаграм за класата NominalAntd Класата NominalAntd дополнително дефинира два вектори accurate[] и coverage[] за пресметка на информациската добивка за сите вредности на атрибутот за податоците за обучување. Имплементацијата кај правилата е слична со таа кај дрвата на одлучување. Во методата splitData() е имплементирана модификацијата на алгоритмот за користење на информација за фреквенцијата од фреквентните множества. за точно да можеме да ги изминеме оние фреквентни записи што ја даваат фреквенцијата на појавување на групата атрибут-вредност за сите вредности на атрибутот кој се процесира. Тука се користат фреквентни записи со големина која е еднаква на бројот на употребени услови во правилото. Ова информација ја добиваме со проследување на вектор од објекти од тип NominalAntd на самата метода.70 - . Оној услов кој врши максимизирање на информациската добивка се додава во правилото и итеративно се повторува целата постапка за атрибутите кои не се опфатени во правилото. Од овој вектор ја добиваме и информацијата кои од атрибутите заедно со вредностите биле употребени во правилото до тогаш. .

Основни методи кои ги имплементира оваа класа се: grow() и prune(). Во неа се врши додавање на услови на правилото при позната последица. Класата RipperRule ја наследува и иплементира класата Rule.6. Методата grow() го гради правилото од податоците за растење. За секој атрибут се врши пресметка на информациската добивка за сите вредности на конкретниот атрибут. Слика 5-19 UML класен дијаграм на класата RipperRule Едно правило за одлучување се состои од вектор од услови m_Antds и последица на правилото m_Consequent. Во правилото се додава оној пар атрибут-вредност кој ја максимизира информациската добивка т. за растење и поткастрување на правилата соодветно.е покрива повеќе позитивни примероци за класата.71 - .5.3 Апстрактна класа Rule и класа RipperRule Апстрактната класа Rule дефинира општо правило за одлучување и ги дава дефинициите на методите кои ги имплементираат сите правила за одлучување. Методата prune() го поткаструва правилото со податоците за поткастрување со користење на стандардните алгоритми за поткастрување на правила. . Се започува од празно правило и се изминуваат сите атрибути. Класниот дијаграм за класата е прикажан на слика 5-19.

6. Тестирање и евалуација на алгоритмите

6.1 Евалуација на алгоритмите за учење
Евалуацијата на добиените модели од процесот на машинско учење е клучен
фактор во податочното рударење. Постојат многу начини за добивање на модели
од податоците, но за да определиме која од методите да ја користиме за решавање
на некој конкретен проблем, потребни се систематски начини за евалуација како
работат различни методи и правење на споредби на истите.
Постапката на евалуација не е едноставна, како што изгледа на прв поглед. За
проценка на перформансите на креираниот модел не е доволно само да вршиме
тестирање со податоците за обучување, туку е потребно да обезбедиме тестирање
и над независно множество податоци за тестирање. Кога имаме големо
количество на податоци на располагање не постои проблем: го креираме моделот
со многу податоци за обучување и тестираме врз друго множество податоци за
тестирање. Вообичаената постапка за проценка на точност на креираниот модел е
дадена на слика 6-1.
Множество од
сите податоци
Множество
податоци за
учење

Множество
податоци за
тестирање

Индуциран
класификатор

Систем за
учење

Точност на
моделот врз
податоците за
тестирање

Слика 6-1 Процедура за проценка на точност на модел

Следно прашање кое се поставува во случај кога имаме независно множество на
податоци за тестирање е: дали може проценката на точноста добиена со
независното множество за тестирање да важи и за нови податоци и со каква
- 72 -

доверливост би важела? За проценка на точноста и интервалот на доверливост се
користи Бернулиев случаен процес. Со примена на формулите што важат за
ваквиот случаен процес можеме да дојдеме до параметрите за точност на моделот
врз нови податоци.
Во случај кога имаме малку податоци тогаш предикцијата на перформансите на
создадените модели е комплексна задача. Најчесто, во овој случај се користи
holdout техника. Оваа техника го дели појдовното множество на податоци на дел
за обучување и дел за тестирање. Вообичаено е да се извои една третина од
податоците за тестирање а останаите две третини за обучување на моделот. За да
се подобри доверливоста на резултатите постапката на учење и тестирање мора да
се повтори повеќе пати (обично 10 пати). При секоја нова поделба податоците
мора да бидат избрани случајно за да можат да се применат формулите од
статистиката за проценка на точноста на моделот. Ако користиме стратифицирана
holdout техника, тогаш имаме еднаква дистрибуција на класите во множествата за
обучување и тестирање.
Крос-валидацијата е специјален случај на повторено учење и тестирање. Овде
случајно се дели множеството податоци во k подмножества. За секое од k-те
подмножества за тестирање се користи едно подмножество, додека за учење на
моделот се користат останатите k-1 подмножества. Проценката на точност се
добива со усреднување на k проценки на точност. Најчесто користена вредност за
k е 10, и ова претставува стандардна процедура за евалуација која се користи во
практиката.
Процедурата за споредба на два различни програми за учење се состои од
изведување на крос-валидацијата врз двете програми со користење на исти
распределби на податоците и правење на споредба врз сите k подмножества и
примена на Студентова t-распределба врз добиените резултати.
Постојат и други мерки за оценка на перформансите на еден модел како што се:
прецизност и recall, ROC криви и др.
Поимите за прецизност и recall се дефинирани со следнаве формули:
TP
TP + FP
TP
Recall=
TP + FN
Precision=

- 73 -

каде TP е број на точни позитивни класификации, FP е број на неточни позитивни
класификации, TN е број на точни негативни класификации и FN е број на
неточни негативни класификации. Значи, recall ни кажува колкав дел од
инстанците за тестирање се класифицираат како позитивни, додека прецизноста
ни кажува колкав дел од случаите кои се класифицирани како позитивни се
навистина позитивни.
ROC кривите ни го даваат односот на ратите на TP и FP, дефинирани со следниве
формули:
TP
TP + FN
.
FP
FP rate=
FP + TN

TP rate=

6.2 Пример
За тестирање на перформансите на алгоритмите што беа опишани во дипломската
работа се користени множества податоци од UCI репозиториумот. Во текот на
работата постоеше проблем на изнаоѓање на адекватно множество на податоци
кое содржи само дискретни атрибути и бројот на таквите атрибути да не е многу
голем. Во случај кога имаме голем број на атрибути и вредности на атрибути
имаме проблем при генерирање на фреквентните записи за множеството податоци
со ваквата имплементација на APRIORI алгоритамот заради големи побарувања за
мемориски ресурси, така да беше направен одреден компромис и беа избрани
помали множества врз кои ќе бидат илустрирани перформансите на алгоритмите.

6.2.1 Опис на множеството податоци
Vote е база на податоци што ги содржи записите за гласањето на конгресмените
во Конгресот на САД за 1984 година. Во базата се вкучени вкупно 435 записи од
кои 267 записи за демократи и 168 записи за републиканци. Вкупно постојат 16
атрибути и еден класен атрибут. Вредноста на класниот атрибут е „democrat“ или
„republican“. Сите вредности на атрибутите се булови и имаат вредност „y“ или
„n“. На слика 6-2 е даден преглед на атрибутите заедно со вредностите.
Attribute Information:

- 74 -

%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%

1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.

Class Name: 2 (democrat, republican)
handicapped-infants: 2 (y,n)
water-project-cost-sharing: 2 (y,n)
adoption-of-the-budget-resolution: 2 (y,n)
physician-fee-freeze: 2 (y,n)
el-salvador-aid: 2 (y,n)
religious-groups-in-schools: 2 (y,n)
anti-satellite-test-ban: 2 (y,n)
aid-to-nicaraguan-contras: 2 (y,n)
mx-missile: 2 (y,n)
immigration: 2 (y,n)
synfuels-corporation-cutback: 2 (y,n)
education-spending: 2 (y,n)
superfund-right-to-sue: 2 (y,n)
crime: 2 (y,n)
duty-free-exports: 2 (y,n)
export-administration-act-south-africa: 2 (y,n)
Слика 6-2 Атрибути од базата на податоци Vote

6.2.2 NaiveBayes
Со примена на NaiveBayes алгоритмот врз множество на податоци добиваме
резултати за грешката и точноста на моделот, систематизирани во Табела 6-1.
Даден е табеларен преглед на параметрите во зависност од минималната
феквенција на фреквентните записи.

Min
Support

Ориг.
0,01
0,05
0,1
0,15
0,2
0,25
0,3
0,4
0,5

Време
потребно за
градење
на
моделот
0,06
1,26
1,08
0,95
0,72
0,56
0,48
0,31
0,31
0,31

Точно
класи
фицир
ани
инста
нци
392
391
388
388
388
384
385
383
383
383

Неточно
класифи
цирани
инстанци

Kappa
статисти
ка

Средна
апсолутна
грешка

Средна
квадрат
на
грешка

43
44
47
47
47
56
50
52
52
52

0,7949
0,7904
0,7763
0,7763
0,7787
0,7614
0,7668
0,7585
0,7585
0,7585

0,0995
0,0996
0,1059
0,1093
0,1151
0,1187
0,1228
0,1314
0,1314
0,1314

0,2977
0,2977
0,3072
0,3116
0,3168
0,3196
0,3224
0,3284
0,3284
0,3284

Релативна
апсолутна
грешка
%
20,9815
21,011
22,339
23,0409
24,2646
25,0286
25,8928
27,7174
27,7174
27,7174

Релативна
квадрат
на
грешка
%
61,1406
61,1482
63,1038
63,9927
65,0684
65,6502
66,2183
67,4427
67,4427
67,4427

Вкупен
број
на
инста
нци
435
435
435
435
435
435
435
435
435
435

% на
точно
класифи
цирани

% на
неточно
класифи
цирани

90,1149
89,8851
89,1954
89,1954
89,1954
88,2759
88,5057
88,0460
88,0460
88,0460

9,8851
10,1149
10,8046
10,8046
10,8046
12,8736
11,4943
11,9540
11,9540
11,9540

Табела 6-1 Перформанси на модифицираниот NaiveBayes алгоритам

Од Табелата 6-1 се гледа дека оригиналниот алгоритам врши точна класификација
на инстанците во 90,1149% од случаите и времето на градење на моделот е

- 75 -

9400 0.1500 0.76 - . Модифициранот алгоритам беше генериран за повеќе вредности на минималната фреквенција на фреквенцијата за да се види влијанието на промената на овој параметар врз добиениот модел.9000 0.8800 0.8620 0.2000 0.9620 0.8420 0.1160 0.01 до 0.9400 0.9110 0.9400 0.0830 0.2500 0.5000 TP Rate FP Rate Precision Recall F-Measure 0.9460 0. Значи со понатамошно зголемување на овој параметар немаме влијание во перформансите на моделот.8730 Табела 6-2 Параметри за оценка на моделот добиен со Naive Bayes 6.7890 0.2500 0.8840 0. Со понатамошно зголемување на минималната фреквенција се гледа дека параметрите на моделот имаат исти вредности.0890 0. Резултатите во табелата се дадени во зависност од минималната феквенција на фреквентните записи. Тоа настанува бидејќи при голема вредност за фреквенцијата се генерираат помал број на фреквентни записи и повеќето од бројачите ќе ја имаат вредноста на проценка на фреквенција.9170 0.8630 0.9170 0.8500 0.3000 0.9090 0.9740 0.0360 0.8280 0.0000 0.8390 0.8800 0. Во табелата 6-2 е дадена зависноста на параметрите за проценка на точност на моделот од промената на минималната фреквенција на генерираните записи по класи.1500 0.9460 0.9170 0.9640 0.9580 0. Class=republican 0.8610 0.8500 0.1500 0.8840 0.релативно мало.9700 0.8980 0. За вредности на параметарот од 0.9130 Class=democrat 0.8320 0.8950 0.1570 0.9440 0.8910 0.1000 0.1090 0.8660 0.9010 0.9580 0. Во сите случаи беше граден модел на непоткастрено дрво.9070 0.2.4000 0. Ова се должи времето на генерирање на фреквентните записи што се намалува со зголемување на минималната фреквенција.8430 0.9400 0.0600 0.1720 0.2000 0.8280 0.1390 0.1000 0.9110 0.8770 0.8610 0.0420 0.8390 0.8710 0.8910 0.4000 0. .9440 0.7910 0.1200 0.5000 TP Rate FP Rate Precision Recall F-Measure 0.9170 0.8270 0. со таа разлика што времето на генерирање на моделот е поголемо од оригиналниот алгоритам.8100 0.9580 0.15 добиваме перформанси кои се споредливи со оригиналниот алгоритам.3 J48 Резултатите на примена на Ј48 алгоритамот врз ова множество податоци се дадени во Табела 6-3.9400 0.0600 0.7790 0.9640 0.8430 0.3000 0.8670 0.8620 0.7980 0.9170 0.0540 0.0000 0.1610 0.9580 0.0830 0.

8127 50.8547 16.2 0.77 - .3695 0.2407 0.64 5.9310 38. Доколку за вредност на минимална фреквенција земеме 0. .0799 0.1971 0. Во поглед на времето на генерирање на моделот имаме ист случај како и кај претходниот алгоритам т.484 53.625 0 0.68 75.25 1.7518 59.794 0. Бројот на листови е 25 а големината на дрвото е 49.2332 99. За вредност 0.Min Sup port Ор.904 0.882 100 435 435 435 435 435 435 435 435 96.08 13.241 0. Разликата во изгледот на дрвото е поради фактот што имаме проценка на фреквенција на оние записи што не се фреквентни.892 40.25 0.3218% од случаите и при тоа се гради дрво на одлучување кое содржи 19 листови и има вкупна големина од 37 јазли.2596 0. Со зголемување на фреквенцијата се намалува големината на дрвото.1272 0. 0.1993 0.1748 0.4253 6.0690 61.9015 28.856 0.2809 0.5 веќе имаме комплетно неточен модел со само еден лист кој прави предикција само на една класна вредност.922 0.5747 93. Времето потребно за градење на моделот е 0.94 0.4023 90.4869 11.4741 0. Во Табелата 6-4 е дадена зависноста на параметрите за проценка на точност на моделот од промената на минималната фреквенција на генерираните записи по класи.4 0.4023 17.0552 0.74 0.3 0. Времето на генерирање е поголемо бидејќи имаме генерирање на фреквентни записи со поголема големина.3441 0.1034 84.3218 95.507 70.3678 4.5 Време потребно за градење на моделот 0.6322 95.09 Точно класифицир ани инстан ци Неточно класифицирани инстанци 419 416 415 394 405 368 357 267 16 19 20 41 30 67 78 168 Kappa статистика Средна апсолутна грешка Средна квадратна грешка Релативна апсолутна грешка % Релативна квадратна грешка % Вкуп ен број на инста н-ци % на точно класифи цирани % на неточ-но класифицирани Број на листови во дрвото Гол емин а на дрв о-то 0.1 0.0802 0. а со тоа и точноста на моделот.6207 19 25 22 19 9 4 2 1 37 49 43 37 17 7 3 1 Табела 6-3 Перформанси на модифицираниот J48 алгоритам Од Табелата 6-3 можеме да забележиме дека оригиналниот алгоритам врши точна класификација на инстанците во 96.23 секунди.5643 26.15 0.308 49.6782 4.5977 82.19 0. Колку минималната фреквенција има помала вредност толку дрвото ќе биде послично на оригиналното дрво.1 добиваме дрво на одлучување кое има слични перформанси како и оригиналното дрво.1355 0.909 0.3793 3.е со намалување на минималната фреквенција расте времетрањето на генерирање на моделот.928 40.8966 15.9723 35.5977 9.6378 16.23 107.682 0.

9999 Вкупен број на инстанци 435 435 435 435 435 435 435 435 % на точно класифицирани % на неточно класифицирани Број на правила 95.7051 50.03 0.7484 0.5219 56.2000 0.97 0.3563 85.0522 38.6437 14.2073 0.8161 12.052 0.903 0.4023% од случаите и при тоа се градат 10 правила за одлучување. 0.209 0.13 секунди.0608 0.839 0.879 0.019 0.857 0.3 0.53 3.53 8.948 0.9844 70.952 0.036 0.78 - .962 0.4 0.64 6.9540 10.1000 0.2 0.14 Точно класифицира ни инстанци 415 401 380 371 383 390 368 247 Неточно класифицирани инстанци 20 34 55 64 52 45 67 168 Kappa статистика Средна апсолутна грешка Средна квадратна грешка 0.2500 0.839 0.5000 0.773 0 0 0 0 0 Табела 6-4 Параметри за оценка на моделот добиен со J48 6. Резултатите во табелата се дадени во зависност од минималната феквенција на фреквентните записи.3525 0.912 0.25 0.927 0.0460 89.865 0.921 0.3000 0.1803 0.6552 84.0000 0.1344 66.0000 0.852 1 1 0.5977 56.839 0.3044 0.97 0.052 0.4023 92.067 0.13 267.756 0.4033 99.3000 0.161 0.929 0.66 0.97 0. Во сите случаи беше граден модел на непоткастрени правила.17 37.952 0.786 0.948 0.9209 99.945 0.942 0.03 0.946 0.143 0.2980 43.761 0.2636 0.38 0.5000 0.9750 Релативна квадратна грешка % 42.4869 Релативна апсолутна грешка % 12.214 0.964 0.811 0.8143 29.15 0.8295 0.5 Време потребно за градење на моделот 0.2874 88.4000 0.4023 38.277 0.952 0.3448 15.97 0.Class=republican TP Rate FP Rate Precision Recall F-Measure Class=democrat TP Rate FP Rate Precision Recall F-Measure 0.2462 0.5977 7.981 0.8911 72.161 0.952 0.2.981 0.071 0.6661 0.97 0.1500 0.87 0.1500 0.9028 0.2500 0.6711 0 0.964 0.7858 0.9263 54.208 0.7816 4.1 добиваме модел кој .4000 0.948 0.857 0.614 1 0.1389 0.866 0.4 JRIP Резултатите на примена на ЈRip алгоритамот врз ова множество податоци се дадени во Табела 6-5.948 0.7126 11.3445 0.1 0.943 0.792 0.6207 10 4 3 2 3 3 2 1 Од Табелата 6-4 можеме да забележиме дека оригиналниот алгоритам врши точна класификација на инстанците во 95.1839 87.7181 0.954 0.77 0.048 0.3261 0.792 0.2000 0.7564 62.1523 0. Табела 6-5 Перформанси на модифицираниот JRIP алгоритам Min Support Ориг.839 0.0096 32.1116 51.977 0. Ако за минималната фреквенција ја избереме вредноста 0.933 0.97 0.2374 0.933 0.92 0.929 0. Времето потребно за градење на моделот е 0.964 0.1000 0.786 0.4741 0.981 0.897 0.

79 - .69 0.1500 0.892 0.0000 0.2500 0.339 0. Поради овој факт кога имаме 4 правила.083 0.993 0.794 0 0 0 0 0 Табела 6-6 Параметри за оценка на моделот добиен со JRIP .993 0.963 0.989 0.821 0.81 0.895 0. Помалиот број на правила се должи на тоа што RIPPER алгоритмот почува со градење на правилата кои покриваат помал број на инстанци.034 0.851 0.3000 0.877 1 1 0.989 0. грешката на моделот не е многу различна од грешката на оригиналниот алгоритам.4000 0.986 0.4000 0.94 0.846 0.81 0.959 0.935 0.889 0.2500 0.884 0.966 0.895 0.105 0.3000 0.065 0.851 0.946 0.899 0.1000 0.761 0.алгоритам врши точна класификација на инстанците во 92.782 0.906 0.614 1 0.768 0.0000 0.19 0.232 0. Ако овој број е помал од минималната фреквенција се зема проценка на фреквенцијата.116 0. Во Табелата 6-5 е дадена зависноста на параметрите за проценка на точност на моделот од промената на минималната фреквенција на генерираните записи по класи.5000 0.835 0.884 0.981 0.1500 0.902 0. Class=republican TP Rate FP Rate Precision Recall F-Measure Class=democrat TP Rate FP Rate Precision Recall F-Measure 0. Со зголемување на минималната фреквенција се зголемува и грешката на добиениот модел и така за вредност 0.5000 0.935 0.981 0.768 0.94 0.899 0.86 0.944 0.966 0.2000 0.011 0.906 0.917 0.2000 0.957 0.873 0.5 моделот станува неупотреблив бидејќи генерира само едно правило што врши предикција само на една класа.661 0.808 0.149 0.019 0.975 0.841 0.822 0.69 0.913 0.917 0.007 0.661 0.101 0.1839% од случаите и при тоа се градат 4 правила за одлучување.832 0.894 0.31 0.1000 0.

Идејата е во понатамошната работа да се искористат т. . бидејќи како што можеше да се види од разработениот пример од тоа зависат многу од перформансите на моделите.80 - . Бројот на „freesets“ што се генерират за дадено множество податоци е помал и постои добро развиена теорија за процека на фреквенцијата на фреквентните записи со нивна помош. Прво потребно е да се користи друг алгоритам за генерирање на фреквентни записи.н „freesets“ за определување на фреквенциите на сите фреквентни записи. Со ова модификација би се добило значително забрзување на алгоритмот.ЗАКЛУЧОК Со анализата и модификацијата на алгоритмите за учење на предиктивни модели може да се заклучи дека може успешно да се генерираат предиктивни модели врз основа на сумарни информации добиени од фреквентните записи. потребно е да се разработи подобра стратегија за проценката на фреквенцијата на нефреквентните записи и да се модифицира поткастувањето на дрвата и правилата. Понатаму. Перформансите на алгоритмите зависат од структурата на податоците чиј модел го бараме и од изборот на минималната фреквенција. Сепак постојат повеќе подобрувања и дополнувања на алгоритмите што треба да се направат со цел ова техника да стане прифатлива и применлива за поширок круг на корисници. Со намалување на параметарот за минимална фреквенција добиваме модел кој се доближува до моделот добиен со оригиналните алгоритми. Ако распределбата по класи во множеството податоци е приближно рамномерна тогаш добиваме подобри резултати при предикцијата.

PKDD 2000.fi/u/goethals/dmcourse/chap12. Dunham: Data Mining – Introductory and Advanced Topics. 2003 3. 1999 2. Rakesh Agrawal. Quinlan: Induction of decision trees. Proceedings of the Twelfth International Conference on Machine Learning. Tomasz Imielinski and Arun Swami: Mining Association Rules between Sets of Items in Large Databases. Bykowski and C. Machine Learning. 1995 6. Morgan Kaufmann Publishers.81-106. Proceedings of the 20th International Conference on Very Large Data Bases. Prentice Hall. Johannes Fürnkranz and Gerhard Widmer: Incremental Reduced Error Pruning. William W. 1994 7. A. J. . 1986 5. May 1993 9. Washington DC.cs.1. R. Bart Goethaals: Course notes in Knowledge Discovery in Databases – Search for Frequent Patterns. Margaret H.helsinki. Proceedings of the Eleventh International Conference on Machine Learning. Cohen: Fast Effective Rule Indution. Proceedings of the 1993 ACM SIGMOD Conference. Witten and Eibe Frank: Data Mining – Practical Machine Learning Tools and Techniques with Java Implementations. 1994 8. San Francisco. pg. F. http://www.КОРИСТЕНА ЛИТЕРАТУРА 1. California. Rigotti: Approximation of Frequency Queries by Means of Free-Sets.pdf 10. no. Sašo Džeroski: Data Mining in a Nutshell 4. Ian H. Rakesh Agrawal and Ramakrishnan Sirkant: Fast Algorithms For Mining Association Rules. Boulicaut.81 - . J.