Алгоритам за класификација

**Алгоритам за класификација** претставува метод на машинско учење со кој се врши класификација на класите во рамките на одредено множество на податоци.

## Видови алгоритми за класификација

## Оцена и споредба на алгоритмите за класификација
При класифицирањето, најпрвин се работи со податочно множество во кое се познати класите и тоа се користи при градењето модел. Потоа, се користи друго податочно множество во кое се познати класите, со цел да се оцени изградениот модел. Притоа, второто податочно множество може да биде дел од првичното податочно множество, т.е. првичното податочно множество може да се поделе на две податочни множества, од кои едното се користи за градење на моделот за класификација (учење), додека второт множество се користиме за оцена на моделот. Оценувањето се извршува на тој начин што се прави споредба или пребројување на предвидените класи од страна на моделот (*predicted classes*) и вистинските класи (*actual classes*) кои се познати од оригиналното податочно множество. Тоа значи дека за одредени записи од податочното множество се проверува дали предвидената и вистинската (познатата) класа се идентични, или пак моделот извршил погрешна класификација со тоа што дадениот запис го класификувал како дел од некоја друга класа.

Постојат различни статистички показатели на успешноста на класификаторот, од кои најпознати се стапката на грешка (*error rate*) и капа-статистиката. Стапката на грешка го покажува процентот на случаи кои биле погрешно препознаени од страна на класификаторот, додека капа-статистиката (*Cohen kappa*) го покажува степенот на согласување помеѓу два класификатори (*inter-rater agreement*).

### Капа-статистика
Доколку се мери степенот на согласување помеѓу два класификатори кои класифицираат *N* различни случаи во *C* взаемно исклучиви класи, тогаш равенката за капа-статистиката (*k*) е:

*k* = (Po - Pe) / (1 - Pe) = 1 - (1 - Po) / (1 - Pe)

каде: Po е релативното регистрирано согласување помеѓу класификаторите, додека Ре е хипотетичката веројатност за случајно согласување, т.е. веројатноста за тоа секој класификатор по случаен избор да класифицира одреден случај во секоја од категориите.

Доколку класификаторите бележат целосно согласување, тогаш *κ* = 1, а ако помеѓу нив постои единствено случајна согласност (дадена преку Ре), тогаш *κ* ≤ 0.

### Матрица на конфузија
Матрицата на конфузија (*Confusion  matrix*) е еден од стандардните начини за приказ на успешноста на моделите за класификација. Таа го покажува бројот на точни и погрешни предвидувања кои се направени од страна на моделот за класификација, споредено со вистинските, познати вредности од податочното множество. Притоа, еден дел од податочното множество во кое се познати класите се користи за градење на моделот на класификација, додека другиот дел се користи за оцена на моделот, така што постои можност за извршување на споредба од таков тип на добиените резултати од класификацијата. Матрицата на конфузија се состои од броеви на точно и погрешно извршени класификации и има форма *N* x *N*, каде *N* е вкупниот бројот на класи при класифицирањето.

На пример, ако во множеството податоци има само две класи (позитивна и негативна), тогаш, во колоните на матрицата на конфузија се наведуваат вистинските класи, а редовите на матрицата ги покажуваат предвидените класи од страна на моделот. Притоа, ако: со *а* се бележи бројот на позитивните случаи од податочното множество кои биле предвидени како позитивни; *b* го покажува бројот на негативните случаи од податочното множество кои биле погрешно предвидени како позитивни од страна на моделот за класификација; *c* ги означува позитивните класи кои биле погрешно предвидени како негативни од страна на моделот; и *d* се однесува на бројот на негативни случаи кои биле точно предвидени од страна на моделот, тогаш можат да се пресметаат следниве показатели на успешноста на моделот за класификација:
* позитивна предвидувачка вредност (*positive predictive value*) е пропорцијата на позитивни препознаени случаи кои се точно идентификувани. Овој показател се пресметува како однос меѓу точно препознаените позитивни случаи и вкупниот број позитивни препознаени случаи, т.е. позитивната предвидувачка вредност = a/(a+b). Високата стапка на прецизност значи дека алгоритамот вратил значително повеќе релевантни (точни) резултати отколку нерелевантни. 
* негативна предвидувачка вредност (*negative predictive value*) претставува пропорција на негативни случаи кои се точно идентификувани и препознаени како негативни. Станува збор за односот помеѓу точно препознаените негативни случаи и вкупниот број негативни случаи, т.е. негативната предвидувачка вредност = d/(c+d). 
* погрешна позитивна стапка (*false positive rate*, *fall-out*) е стапката која го прикажува делот од негативните случаи кои се погрешно идентификувани и препознаени како позитивни. Таа се пресметува како количник од погрешно идентификуваните негативни случаи кои се препознаени како позитивни и вкупниот број негативни случаи, т.е. погрешната позитивна стапка = b/(b+d).
* погрешна негативна стапка (*false negative rate*, *miss rate*) = c/(a+c).
* погрешна стапка на откривање (*false discovery rate*) = b/(a+b).
* чувствителност (*sensitivity*) е делот од вистинските позитивните случаи кои се точно идентификувани и препознаени. Овој показател се пресметува како однос помеѓу точно препознаените позитивни случаи и вкупниот број вистински позитивни случаи, т.е. чувствителноста = a/(a+c). Високиот коефициент на чувствителност укажува на тоа дека алгоритамот за класификација на излезот ги вратил повеќето од релевантните (точните) резултати. 
* специфичност (*specificity*) е делот од вистински негативните случаи кои се точно идентификувани и препознаени. Се пресметува како однос помеѓу точно препознаените негативни случаи и вкупниот број вистински негативни случаи, т.е. специфичноста = d/(b+d).
* точност (*accuracy*) се пресметува како количник од бројот на точните предвидувања и вкупниот број направени предвидувања, т.е точност = (a+d)/(a+b+c+d)
* Ф1 резултат (*F1 Score*) е хармониска средина на чувствителноста и прецизноста, т.е. Ф1 резултатот = 2a/(2a+b+c).

### ROC-крива
*ROC-кривата* (*Receiver Operating Characteristic*, *ROC Curve*) претставува графички приказ на успешноста на моделот за класификација, а може да се користи и за споредба помеѓу два или повеќе класификатори. На х-оската, таа ја прикува лажната позитивна стапка (*false positive rate*), т.е. односот меѓу негативните случаи кои погрешно се препознаени како позитивни и сите негативни случаи, додека на y-оската ја прикажува чувствителноста, т.е. делот од позитивните случаи  кои се точно идентификувани како позитивни. Притоа, на графиконот на ROC-кривата, најчесто се претставува и дијагонална линија која претставува случајно изгенериран модел, како најлошото можно сценарио, т.е. како најлош можен класификатор. Со цел да се квантифицира успешноста на даден класификатор, во литературата се користи „површината под ROC-кривата“ (*Area Under ROC Curve*, *Area Under the Curve*, *AUC*) како мерка за квалитетот на моделот за класификација (класификаторот). Случајниот класификатор (класификаторот кој ги класифицира инстанциите по случаен избор) има површина под ROC-кривата од вредност 0,5, додека пак совршениот класификатор има површина која изнесува 1 и ROC-кривата ќе го допре горниот лев агол од графиконот. Ако пак, површината под ROC-кривата изнесува, на пример, 0,8, тоа значи дека во 80% извлечените случаи од примерокот, класификаторот точно би класифицирал кој случај на која класа ѝ припаѓа. Во праксата, моделите за класификација имаат површина под ROC-кривата чија вредност се движи помеѓу 0,5 и 1. Ако површината под ROC-кривата изнесува од 0,9 до 1, тоа значи дека класификаторот е одличен; ако површината под ROC-кривата изнесува од 0,8 до 0,9, моделот за класификација е добар; за вредностите од 0,7 до 0,8, клсификаторот е солиден; за вредностите од 0,6 до 0,7, класификаторот е лош; и ако површината на ROC-кривата има вредност од 0,5 до 0,6, класификаторот е неуспешен.

## Наводи

Категорија:Алгоритми за класификација