You are on page 1of 22

Машинско учење предавање 7

Линеарни дискриминативни модели

Класификацијата е постапка за предвидување на дискретните лабели, односно ознаки на


поедничени примери. Има повеќе приоди кон класификацијата, како што се линеарните модели.
Тоа е фамилијата на линеарните дискриминативните модели, каде поефикасни се логистилчката
регресија и машините со носечки вектори. Линеарни значи дека границата меѓу класите е
линеарна, права ако просторот е 2д, рамнина ако просторот е 3д или хиперрамнина за простор со
повеќе од 3 димензии. Линеарниот модел може да тргне од хипотезата за регресија .
Вака дефинирана хипотеза со фиксирани тежини w дава вредност од м-во на реални броеви за
секој влезен вектор х. Овој модел го дели просторот на два полупростори, едниот h(x)>=0 а
другиот h(x)=0, и со ова може да се дефинира дека хипотезата ќе биде еднаква на индукациската
функција . Границата е подпростор со димензија n-1, за 1 помала од влезниот
простор, и го дели просторот на два полупростори и оваа граница се нарекува дискриминантна
функција/граница на одлука. Во МЛ границата меѓу класата треба да е нелинеарна. Ако сакаме
нелиеарна граница, може да се користи нелинеарна ф-ја на пресликување. Овој модел има
линеарна граница во просторот на особини, но нелиеарна граница во влезниот простор.

Дискриминативните модели наоѓаат граница која ги дискриминира/разликува класите на тој


начин да параметрите на моделот ја опишуваат таа граница. Дискриминативните модели се
наспроти генеративните модели кои имаат повеќе параметри и моделираат повеќе од граница
меѓу гласи.

Пример: Ако имаме класификација на кредитоспособни клиенти на банка, банката треба да


одлучи на кои клиенти ќе даде кредит, и во предвид ќе се земат приходот и заштедата, па
просторот ќе е 2д. Овде, границата ќе биде опишана со параметрите на дискриминативниот
модел. А кај генеративниот модел, ќе имаме моделирање на густините на веројатност, а
границата ќе се пресмета врз основа на ова. Па генеративниот модел нуди повеќе информации,
но тие информации не се секогаш потребни.

Кај линеарните дискриминативни модели границата меѓу класите е хиперрамнина. Границата


меѓу класите е дефинирана со h(x) е нула што е n-1 димензионална хиперрамнина. Кога имаме 2д
простор каде границата е права и во тој случај хипотезата ќе биде .
Имплицитна равенка на права е кога прирамнување на изразот на нула.

На сликата има права со црвено и таа права ја чинат точките x1,x2 за кои хипотезата е 0. Таа го
дели просторот на два полупростори, од кој едниот се
сите точки за кој хипотезата е поголема од 0, а другиот е
за кој хипотезата е помала од нула. Векторот w е нормала
на таа права и е прикажан како вектор со почетна точка во
координатниот почеток, но почетната точка е произволна.
Има и вектор на х кој се наоѓа го просторот на позитивни
примери. Имаме разложување на векторот х на збир од
два вектори dw/||w||. Овде, најважно е од која страна се
наоѓа пример и колку е оддалечен од хиперрамнината
која кажува колку е добро класифициран примерот. Скаларниот производ на два вектори ќе
исчезне кога тие два вектори се нормални, односно векторот w е нормален на сите вектори кои
лежат на хиперрамнината. Оддалеченоста на примерот од хиперрамнината може да биде
позитивна/негативна па тоа е означена оддалеченост. Векторот w без w0 е нормала на n-1
димензионалната рамнина во просторот R^n и покажува во насока на полупросторот за кој h(x)>0.
Означеното растојание од w е еднакво на нормата на w.

Класификација со повеќе класи

Проблем кај оваа класификација е дека многу линеарни дискриминативни модели се бинарни
класификатори и се поставува прашање како да се искористат овие модели. Проблемот можеме
да го разделиме на повеќе класи во м-во на бинарни класификациски проблеми и тогаш
повеќепати ќе може да се употреби бинарна класификација. Има две шеми за ова, едната е еден
наспроти еден и другата е еден наспроти останатите. Кај еден наспроти еден таа се сведува на К
на 2 независни бинарни класификациски проблеми, односно по еден за секој пар на класи. Ако
има три класи, ќе ни требаат три бинарни класификатори. На сликата лево секоја од трите
хипотези секогаш разделува само две класи, а третата ја игнорира. Овде се разделуваат y=2 и y=3
со ориентација кон примери од класата y=2, додека пак поминува низ примерите на класата y=1.
Кај еден наспроти остантите имаме
декомпозиција на бинарни
класификации. Кај оваа шема има К
независни бинарни класификатори, од
кои секој се тренира за да ги раздели
примерите на класата од сите останати
класи. На сликата десно имаме три класи,
па ќе имаме три бинарни класификатори
со нивните хипотези каде хипотезата ги
разделува примерите на класата од
примерите на сите останати класи.

Кај еден наспроти еден треба да се избере онаа класа каде збирот од бинарните класификатори е
максимален. Оваа шема е едноставна, но може да има ситуација каде одлуката за класификација
не е еднозначна. Примерот кај еден наспроти останати се доделува на онаа класа која е
најсигурна во својата позитивна класификација. Вака дефинираниот модел значи дека
имплицитно меѓу две соседни класи има граница кои одговараат на симетралите на аглите. Кај
оваа шема не може да се случи да не се знае каде е класифициран примерот, за разлика од еден
наспроти еден, освен ако примерот е во координатниот почеток. Еден наспроти остани има
помалку модели, но проблем е неурамнотеженост на класите (нееднаков број на примери).
Проблем кој се јавува е кога оптимизацискиот алгоритам сака да ја намали емпириската грешка,
тоа ќе штети на примерите од помалата класа и се нарекува проблем на неурамнотеженост на
класа.

Класификација со регресија

Нека ја разгледаме регресијата со две особини, просторот е 2д и регресискиот модел е рамнина.


Оваа рамнина на секој пример му доделува од минус бесконечност до плус бесконечност. Ова
може да се искористи за класификација, ако класификација се третира како регресија на тој начин
што на примерите од двете класи да се доделат бројни ознаки (0,1) и да го тренираме
регресискиот модел на такво м-во на примери.

Пример: нека на располагање има 4 примери од


позитивна класа и 4 од негативната класа. Нека
го тренираме регрескиот модел за кои целна
вредност за тие од позитивната класа ќе биде 1, а
за другите ќе биде целна вредност 0 и на тој
начин се добива регресиска права h(x;w). Точката
на оската х која е еднаква на 0.5 е граница меѓу
класите до едно димезнионалниот влезен
простор, каде лево се класифицираат негативни, а десно се класифицираат позитивни примери.

Предности на решавање на проблемот преку линеарниот модел на регресија е едноставна и


постои решение во затворена форма, но при класификација излезите од моделот не се
веројатности и моделот е неотпорен на вредности кои отскокнуваат.

Кога влезниот простор е со една димензија, примерот кој бил правилно класифициран кога ќе се
додаде нов пример ќе придонесе до грешна класификација на друг пример. Истото се случува и
кај влезен простор со повеќе димензии каде примерите кои се наоѓаат далеку од границата имаат
големо влијание и ја смалуваат точноста на класификаторот. Ова укажува дека линеарниот модел
на регресија не е добар класификатор. Ако примерите се лиенарно одвоиво, се очекува да имаме
перфектна класификација, но кај линеарната регресија ова не се случува.

Секој алгоритам на МЛ се состои од модел, ф-ја на загуба и оптимизациски алгоритам и ако има
грешка при класификација со регресија, проблемот е во првите две, каде може да имаме големо
квадратно отстапување каде се казнуваат и добро класифицираните примери.

На графот имаме х оска имаме вредност која ќе е позитивна за точна класификација, и негативна
за неточна класификација. Оваа вредност е мерка за точност на класификацијата. Колку сме
подалеку од координатниот почеток, толку
класификација е точна/неточна. На у оската е
вредност на функцијата на загува L. На графот, оваа
функција има вредност 1 ако класификацијата е
неточна, а вредност 0 ако класификацијата е точна.
Загубата ќе биде еднаква на нула кога вредноста на
предикцијата е еднаква на ознаката у, односно тоа
ќе биде кога вредност на х оската ќе биде еднаква
на 1. Кога предикцијата е еднаква на 0, загубата ќе
биде 1. Кога предикцијата е еднаква на 2, загубата
ќе биде 1. Ако ова сакаме да го поправиме, односно
само да се казнуваат погрешните класификации,
сакаме загубата да биде 0-1, но ова не е погодно, бидејќи ако ф-јата на загуба ја замениме треба
да ја промениме и оптимизациската постапка и ова нема веќе да биде алгоритам за линеарна
регресија.
За класификација, не можеме да ја употребиме регресијата, па се наметнува користење на
алгоритам кој како ф-ја на загуба има 0-1. Но, ф-јата на грешка дефинирана како очекување на ф-
ја на загуба 0-1 нема да може да се користи за оптимизација, бидејќи не е диференцијабилна. Но
место загуба 0-1, може да се искористи друга функција која е диференцијабилна.

На сликата имаме ф-ја на загуба со црвена боја која


на позитивната страна на х оската е нула, а на
негативната линеарно расте. Тој дел од ф-јата каде
примерите се неточно класифицирани е
диференцијабилен па може да се направи
оптимизација. Има веќе ваков алгоритам, тоа е
алгоритам на перцептрон.

Алгоритамот на перцептрон е еден од најраните


алгоритми и пример на конекционистички пристап. Тој се користи за бинарна класификација.
Основна разлика од линеарниот модел на регресија, овде излезите се ограничени на вредности -1
и 1. Моделот е дефиниран преку функцијата на праг како активациска функција f. Грешката на
перцептронот мора да биде конвексна бидејќи е дефинирана како збир на конвексни функции на
загуба.

Кога имаме промена на ф-ја на загуба нема минимизатор во затворена форма, па решение е
градиентно спуштање каде тежините се ажурираат во насока спротивна на градиентот и тоа ќе не
доведе до минимумот на грешката. Тежините се ажурираат според правилото на Widrow-Hoff
каде се одредува величина на чекор со кој се спуштаме кон минимумот.

Алгоритам на перцептрон:

Предности: порубусен, точно класифицира примери кои се далеку од границата, едноставен


алгоритам, едноставна оптимизациска поставка.

Недостатоци: излези на модел не се веројатности, конвергира само ако примери се линеарно


одвоиви и резултатот зависи од почетните тежнини и редоследот на нивното изведување.
Машинско учење предавање 8

Кај надгледувано машинско учење примерите се означени, односно тоа се парови х,у и ни е
позната целната класа ако е класификација, односно целната вредност ако е регресија. Кај
ненадгледуваното учење немаме означени примери. Има различни пристапи кај ова учење, но
најпрво станува збор за кластерирање каде неозначените примери се собираат во кластери во
зависност од тоа колку се слични. Основна мотивација за ненадгледувано учење е немањето на
информација за тоа кој пример на која класа припаѓа. Овде располагаме со м-во на неозначени

примери . Примерите може да бидат неозначени бидејќи не знаеме да ги означиме или


означувањето е прескапо. Ова ненадгледувано учење се користи кај: групирање на статии од
весници, групирање на клиенти според нивно однесување, групирање на текстови според автори,
анализа на сличност на решенија, групирање на гени со слична функционалност, откривање на
напади врз мрежи итн. Ненадгледуваното учење има неколку методи: кластерирање, процена
на густина (наоѓање на густина на веројаност која ја опишува дистрибуција на неозначените
податоци), откривање на нови/отскокнувачки вредности (наоѓање на примери чии особини се
разликуваат од оние на останати примери), намалување на димензионалноста (намалување на
бројот на особини, односно пресликување на податоците од изворниот влезен простор во простор
со помалку димензии за откривање на димензии кои доволно добро ќе ги опишуваат разликите
во податоците).

Кластерирање е разделување на примери во кластери па слични примери се во ист кластер/група.


Целта е наоѓање на природни групи во м-во на неозначени примери. Сличноста кај примерите кај
кластерирање наједноставно се пресметува со евклидово растојание. Еден главен проблем кај
кластерирањето е дека може примерите да бидат групирани во различен број на групи, во
зависност од сличноста. Видови на кластерирање: ако алгоритамот генерира групи на примери
кои имаат интерна структура односно подгрупи тогаш тоа кластерирање е хиерархиско и имаме
партициско каде групите се рамни, односно немаме интерна структура. Кај хиерархиското имаме
претставување преку дијаграм на вгездени класи или со дентограм кој е стебло каде листовите се
групираните примери. Независно од типот на кластерирање, може еден ист пример да припаѓа
само на една група/кластер и тоа е цврсто кластерирање/групирање или истовремено да припаѓа
во повеќе подгрупи и тоа е меко кластерирање/групирање.

Групирањето/Кластерирањето може да служи како претходна обработка за надгледуваното


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

Алгоритам К-средни вредности (К-means)

Овој алгоритам примерите од неозначеното м-во ги групира во К цврсти кластери. Овде станува
збор за партициско групирање бидејќи има цврсто групирање. Идејата е да секоја група има своја
средна вредност односно центроид која го претставува кластерот и секој пример припаѓа на група
на која центроидот му е најблизок. Постапката на кластерирање е итеративна, се почнува од
центроид на к-тата група и сите примери се додаваат на онаа група на која центроидот им е
најблизок. Ова може да доведе до поместување на центроидот, па во следниот чекор се
пресметуваат нови центроиди во секоја група. Ова може да доведе до промена на припадноста во
групите, па примерите повторно се разделуваат во групи каде центроидот им е најблизок. Оваа
постапка продолжува се додека не се постигне конвергенција, нема менување на центроид/групи
на примероци.

Функцијата на грешка за кластерирање се нарекува критериумска функција и се дефинира како

каде собира колку примери во секој кластер отстапуваат од центроидите.


Овде b ни е индикаторска променлива која кажува дали примерот припаѓа на групата к, ако е 1,
примерот припаѓа. Групирањето се дефинира со два параметри, индикаторската променлива и
центроидите на групите. Се бара да се минимизира критериумската функција/грешка. Грешката ќе
е поголема ако примероци се подалеку од центроидите па ако сакаме да ја минимизираме
грешката секој пример треба да го поделиме во група чиј центроид му е најблиску.

Алгоритам к-средни вредности псевдо код:

1. се иницијализираат центроидите на произволни вредности

2. се повторува се додека не се постигне конвергенција

3. во рамките на циклусот се пресметува на која група припаѓа примерокот

4. се пресметува нов центроид

Сложеноста на евкливодовото растојание е O(n) каде n е бројот на особини.

Бројот на итерации Т е многу помал од бројот на примери, па бројот на итерации е клучен фактор
кај сложеност. Не интересира дали овој алгоритам е детерминистички, оптимален и дали
конвергира. Детерминистички значи да дава исти излези за исти влезови. Во алгоритамот треба
да се изберат почетни средини на групите, ако тоа избирање се прави стохастички, тогаш
алгоритамот ќе биде стохастички/недетерминистички. Ако изборот е детерминистички,
алгоритмот има додатен извор на недетерминизам, односно разрешување на исто растојание на
два примери од центроидот. Конвергирање значи бројот на конфигурации да биде конечен,
односно партиционирање плус распределба на средни вредности. Оптимизациската постапка
значи да критериумската функција Ј се смалува со итерациите. Од ова следи дека алгоритмот
никогаш не ја посетува истата конфигурација повеќе пати, па тоа значи дека мора да конвергира.
Кога ќе конвергира алгоритмот, не е најдено оптимално кластерирање бидејќи станува збор за
алчен алгоритам кој наоѓа локално оптимално решение. Групирање зависи од изборот на
почетните центроиди. (примее 39:17)

Пристап за избор на почетни средни вредности/центроиди:

- Случаен избор (со ова се избегнува поставување на центроиди во места во просторот во


кои случајно се избираат центроидите. Со ова решава проблемот на заглавување во
локален оптимум)
- Пресметување на средни вредности од сите примери а потоа на вектор да му се додаваат
помалку случајни вектори. Го решава проблем со изолирани примери.
- Пресметка на прва главна компонента во м-во на примери (таа е дефинирана со насоката
на најголемата варијанса на податоците. Потоа примерите се делат во К групи и се земаат
средни вредности од тие групи како почетни вредности. Ова не го решава локален
оптимум)
- K-means++: случајно да се избере почетно средиште а потоа секое следно да се бира така
да биде што подалеку од другите средишта. Веројатноста на новото средиште е
пропорционална на квадратот на оддалеченоста од веќе избраните центроиди. Овој начин
ја намалува грешка при кластерирање.

Алгоритам К-медоиди

Тој се користи кога примерите може да се прикажат во векторски пристап, односно кога може да
се пресмета центроидот и евклидовото растојание. Левенштајново растојание – за пар примери ја
враќа нивна сличност.

Примерите не се елементи на векторски простори па меѓу нив не може да се пресмета евклидово


растојание и не може да се најдат центроидите, па наместо тоа имаме општа мерка за сличност
чиј комплемент е мерка за различност. Мерката за сличност се изразува со матрица на сличност,
која е симетрична квадратна матрица која ја дефинира сличноста меѓу сите парови. Сличноста е
рефлексивна, секој пример е сличен сам на себе, па дијагонајата на матрицата има 1.

Кај овој алгоритам прототипите на кластерите не се центроиди, туку медоиди (репрезентативни


примери од секој кластер, за разлика од центроидите кои може да не ни припаѓаат на кластерот).
Типична изведба на К-медоиди е алгоритам РАМ или партиционирање околу медоиди. Кај овој
алгоритам имаме иницијализација на медоиди, па повторување на чекорот се додека не настане
конвергенција. Овие чекори ги разделуваат примерите во кластерите, па се наоѓаат нови
медоиди.

Недостаток на овој алгоритам е големата временска сложеност.

Кај последните два алгоритми, бројот на кластери треба однапред да се одреди. Ова е случај кај
многу алгоритми на кластерирање, исклучок се непараметарските алгоритми за кластерирање.
Изборот на оптималниот број на кластери е дел од проблемот проверка на кластери. Тоа е
проверка колку добро е извршено кластерирањето. Бројот на кластери одговара на бројот на
природни групи во м-вото на податоци но тој број не се знае. Проблемот на избор на кластери е
аналоген на избор на моделот. Техники за избор на број на кластери: рачна проверка на
квалитет на кластери (се разгледуваат примерите во групите и се обидуваме да разбереме дали
групирањето има смисла), редукција на димензии во 2д простор и визуелна проверка
(примерите од високо димензионалниот простор да ги пресликаме во 2д простор и да утврдиме
оптимален број на групи, па да ги групираме), метод на колено (графички се прикажува
зависноста на критериумска функција од параметарот к и се бара колено на таа крива, односно
место каде ф-јата нагло паѓа и стагнира. Со зголемување на бројот на групи, влезноста на ф-јата ќе
паѓа но тој пад нема да биде изедначен. Со мало зголемување, имаме подобро групирање, а во
моментот кога ќе нема да има добро групирање, односно ф-јата ќе стагнира, новододадените
групи не одговараат на природното групирање на примерите.), анализа на силуета (графички се
прикажува вредноста на силуетата за секој пример и по основа на тоа визуелно се одредува
оптималниот број на групи. Вредноста на силуетата за еден пример се дефинира со просек на
оддалеченост од примерот до примерите каде не се наоѓа примерот. Ако вредноста на силуетата
е 1, примерот е многу оддалечен од примерите од соседната група,а блиску до примерите од
својата група. Ако е -1, примерот е погрешно групиран, обратно. пример околу минута 13.),
минимизација на регуларизирана функција на грешка (идејата за избор на групи е слична со
онаа на регуларизација кај надгледуваното учење. Овде се проширува критериумот за групирање
кој го минимизираме со цел да ја комбинира изворната критериска функција и сложеноста на
моделот со цел да ги казнуваме моделите со голем број на групи. . проблемот е
избирање на оптимална ламбда која индиректно одредува што значи примерите да се доволно
слични. Не може вкрстена проверка, бидејќи нема означени примери. Кога избираме ламбда
можеме да гледаме на меко кластерирање.) - акаикеов критериум (сложеноста на моделот се
проценува како производ од бројот на особини и бројот на групи. Ламбда ни е 2n.), точност на
подмножество примери (споредба на добиеното групирање со групирањето кое го сметаме за
точно и не знаеме кое е точно групирање. За помал број на примери, можеме да го одредиме
точниот број на групи.) – рандов индекс (мерка за грешка, односно точност на групирање на ниво
на парови примери. За секој можен пар, гледаме дали тие примери завршиле во иста група или
не. Ако се во иста, парот на примери е позитивен, инаку е негативен. Ако примерите се во иста
група и навистина требало да бидат во иста група, тој пар е вистински позитивен, инаку ако
завршиле во друга група и така требало да биде тоа е вистински негативен пар. Збирот на
вистински негативни и вистински позитивни парови е бројот на точно групирани парови.

. пример 32:30. Рандовиот индекс е во интервалот 0-1. Ако бројот на групи е премал,
групите ќе се преголеми, па ќе имаме лажно позитивни парови. Ако бројот на групи е преголем,
бројот на групи ќе биде премал, па ќе имаме лажно негативни парови. Рандовиот индекс е
унимодална функција од бројот на групи.)
Masinsko ucenje predavanje 9

Модел на Гаусова мешавина

Тој изведува меко партициско групирање. Тоа е алгоритам кој е пробабилистичко обопштување на
алгоритмот к-средни вредности. Исто така тој е генеративен модел со латентни променливи за чие
тренирање ќе ни треба нов алгоритам кој е алгоритам за максимизација на очекувањето.

Во некои проблеми примерите може да припаѓаат на повеќе групи, па може да има


преклопување. Но може и секој пример да припаѓа само на една група, но без да знаеме на која
група, па сакаме да ја моделираме веројатноста за секоја група примерот да припаѓа на таа група.
И во двата случаи, се работи за меко групирање. Второто групирање е пробабилистичко, а
алтернативно е кога секој пример на кластерите припаѓа со некоја мерка на припадност и тоа е
непрецизирано групирање. Најкористен алгоритам е моделот на Гаусова мешавина или мешавина
од Гаусови криви. пример од 7:37.

Псевдо код и објаснување како оде: Алгоритамот на к-средни вредности во секоја итерација
прави два чекори, во прв чекор примерите ги доделува на кластер со најблизок центроид а во
следниот чекор ги пресметува новите центроиди. Клучна измена кај алгоритмот модел на Гаусова
мешавина е дека примерот на групата припаѓа со некоја веројатност чии вредности се во интервал
[0,1]. Таа веројатност се нарекува и одговорност и се означува со h k ( i). Прво се иницијализираат

параметрите тета кои се , каде првата вредност односно пи ни е


веројатноста на кластерот, втората ни е средна вредност, а третата ни е матрица на коваријанса.
Потоа се повторува ова се до конвергенција на log-извесноста или на параметрите. Следен е
чекорот expectation или е-чекор каде за секој пример х од м-во на примери D и за секоја
компонента К ја пресметува веројатноста h k ( i) која е количник од веројатност примерот х да
припаѓа во кластерот К и збир од веројатностите на припаѓањето на тој примерок во сите
кластери. Следен е М-чекор каде за секоја компонента К се пресметуваат новите параметри на
кластерот, односно средната вредност,матрицата и веројатноста на кластерот. Потоа се
пресметува вредноста на log-извесноста. И к-средни вредности и алгоритмот на гаусова мешавина
се итеративни и во секоја итерација прават два чекори. Разлика е што кај алгоритмот к-средни
вредности, примерите припаѓаат цврсто во кластерите а кај Гаусова мешавина примерите
припаѓаат меко со некоја веројатност. Кога се пресметува центроидот кај Гаусова мешавина, тој за
секој кластер се пресметува така да векторите на примерите тежински се собираат во зависно од
веројатноста на припаѓање на примерот.

Модел на мешана густина

Модел на Гаусовата мешавина е специјален случај на моделот на мешана густина.


Овој модел на мешана густина е генеративен модел кој ја моделира густината p(x) како линеарна
комбинација од к компоненти. Нека тргнеме од претпоставката дека има заедничка веројатност
p(x,y) каде y e ознаката на групата каде припаѓа примерот. Претпоставуваме дека примерите х
припаѓаат во групи у па може да се зборува за заедничка веројатност. Но, овде имаме
ненадгледувано учење, па у и заедничката веројатност не ни се познати, само ја знаеме
веројатноста p(x). Овде го користиме правилото на собирање на веројатности по сите вредности
кои у може да ги прими. Ако се примени правило за множење на веројатности, овој модел може
да се запише како линеарна комбинација од к компоненти. Веројатностите од у се извесности од
кластерите и се компоненти на густината. Коефициентите со пи се коефициенти на мешавина.

Кај моделот на Гаусова мешавина густината на компонентите се Гаусови густини на веројатности


со средни вредности μk и матрица на коваријанса Σ k .

Пример: 29:15.

Влезниот простор овде може да биде повеќедимензионален, и за густина на компоненти ќе се


користи мултиваријатна Гаусова густина на веројатноста. Како и секој генеративен модел, и
моделот на Гаусова мешавина има начин на генерирање. М-вото на податоци се генерира така да
прво случајно по категориската дистрибуција p(y) се избира компонента к и по густината на
веројаност која одговара се генерира примерот х. Но овде најмногу не интересира веројатноста
примерот да припаѓа на групата к што е одговорност која може да се пресмета со Баесово
правило.

Параметри на моделот се тета која се состои од π k , μ k , Σ k , каде пи се коефициенти на мешавина,


ми се средни вредности и сигма се матрици на коваријанса. Ми и сигма се параметри на густината
на компонентите. Потребно е да ги одредиме параметрите на овој модел, односно да го научиме
моделот врз основа на податоците. И овде учењето на моделот се сведува на проценка на
параметрите од податоците. Наједноставано е кога параметрите ги проценува со Maximum
Livelihood Estimation со кој местиме компоненти така да ја максимизираме извесноста на
параметрите. MLE ги одредува параметрите средни вредности и матрици на коваријанси така да
примерите имаат што поголеми густини на веројатности. Може и овде да се употреби постапката
за проценување на параметри кај пробабилистички модели каде најпрво се применува log-
извесноста на параметрите каде не се факторизира по компоненти и нема решение во затворена
форма, па максимизацијата нема аналитичко решение. Но има решение кое е алтернативно, и тоа
е итеративна оптимизација, како кај градиентно спуштање.

Алгоритам за максимизација на очекување


Основна идеја е генеративниот модел да се прошири со скриени/латентни променливи. По такво
проширување, максимизацијата на извесноста може да се направи со итеративна постапка.
Моделот на мешана густина со латентни променливи (скриени променливи чија вредност не ја
забележуваме) кои се воведуваат за да се моделира врската меѓу примерите и групите. Овие
променливи дефинираат кој пример на која група припаѓа. Секој пример х ќе има своја латентна
променлива z која е категориска и има онолку вредности колку има кластери. Оваа променлива
може да се претстави како к димензионален вектор на примарни индикаторски променливи. Ако
пример х припаѓа на група к, сите компонентни променливи z ќе бидат нула, освен z k (i) која ќе
биде 1. Моделот проширен со латентни променливи дефинира заедничка веројатност на p(x,z).

Веројатноста z да биде еднакво на к е производ к да се менува од 1 до к и . На


ист начин се дефинира и извесноста на групата да го генерира примерот х. Во моделот на Гаусова
мешавина се претпоставува дека секој пример е генериран од една компонента, но не знаеме од
која, па тоа се одредува со веројатноста h k ( i), па веројатноста го моделира нашето незнаење а не
мешаната припадност на примерот во групи. Овде ќе се примени правилото за производот и ќе се
добие:

Ова горе е моделот на мешана густина со латентни променливи функционира ако знаеме на која
група примерот припаѓа, моделот ја зема и ја множи.

А кај моделот на мешана густина без латентни променливи нема голема разлика, нема
моделирана врска меѓу примерите и групата. Овде наместо производ, има сума.

Log-извесноста вака дефинирана е комплетна и можеме да имаме решение во затворена форма, а


log-извесноста на оној без латентни променливи е некомплетна.

Бидејќи се уште не се знае на која група припаѓа, се користи алгоритмот за максимизација на


очекувањето каде се пресметува очекувањето на извесноста со некои фиксирани вредности,
односно коефициентитите на мешавина и параметрите за густина на компонентите, па потоа да се
ажурираат овие параметрите така да го максимизираат тоа очекување. Овие два чекори
итеративно ќе се повторуваат каде прво се пресметува очекувањето на потполната извесноста (е-
чекор) и потоа имаме избирање на параметри за итерација кои го максимизираат очекувањето (м-
чекор).

Алгоритам GMM(модел GMM+EM алгоритам)

Непотполната и потполната log извесноста ќе расте со тек на итерациите се до конвергенција.


Резултат се научени параметри, односно коефициентите на мешавина, векторот на средни
вредности и матрицата на коваријанса. ЕМ алгоритмот конвергира но не се гарантира глобален
оптимум на log извесноста.

Моделот на Гаусова мешавина и Гаусовиот Баесов класификатор користат Гаусова густина за


моделирање на извесноста и Баесово правило за пресметка на веројатности на групи. Разликата
меѓу овие два е што првиот е за ненадгледувано, а вториот за надгледувано учење и кај него има
лабелирани примери, па може да се пресмета максималната извесност во затворена форма. И
двата модела користат матрица на коваријанса.

Акаикеов информациски критериум се користи за избирање на оптимален број на кластери.

Можни поедноставувања се делена матрица, дијагонална или изотропна.

Моделот на Гаусова мешавина бавно конвергира, па за да се забрза може да се искористи


алгоритмот за к-средни вредности. Со ова се добиваат поедноставни модели.

Хиерархиско групирање

Едноставен, но широко користен алгоритам за кластерирање, во длабинска анализа на податоци.


За разлика од партиционирање, каде имаме групи, овде имаме групи кои се состојат од подгрупи,
има хиерархија на групи. Оваа хиерархија се претставува со дендограм. Тој е стеблест приказ на
хиерархија, во листовите се примерите кои ги групираме, а гранките поврзуваат примери кои се
во иста група и поврзуваат групи и надгрупи. Кај листовите секој пример е во своја посебна група,
а нагоре групите од по еден пример се спојуваат. Висините на гранките кажуваат колку се далеку
групите споени во надгрупи и на колкава оддалеченост се спојуваат. Ова групирање се изведува
врз основа на мерка на оддалеченост или мерка на сличност/различност. Според ова, ова
групирање е слично со k-means. Користиени мерки за оддалеченост се: Евклидова, Менхетен,
Махаланобисова оддалеченост.

Ова групирање може да биде агломеративно (тргнува од листови па постепено се спојуваат


групите се додека не се спојат во една голема група) или разделувачко (оди обратно, големата
група се дели на групи и подгрупи).

Кај алгомеративното во секој чекор се спојуваат две најблиски групи од кои секоја има по еден
пример, па растојанието меѓу овие две групи се пресметуват преку растојанието меѓу овие два
примери. Оддалеченоста меѓу две групи може да се претстави како најмала оддалеченост меѓу
поединечни примери во тие групи и тоа се нарекува групирање со еднократна поврзаност или
единечно. Оддалеченоста може да се дефинира како најголема оддалеченост меѓу примерите од
тие групи и таквото групирање се нарекува групирање со потполно поврзување или комплетно.
Ако групите се природно добро одвоени, овие две методи не даваат различни резултати.
Компромис меѓу овие две е групирање во однос на просечна поврзаност или просечно
поврзување. Последна метода е поврзување во однос на центроиди или поврзување на
центроиди каде просторот мора да е векторски. Се користи и метода на Ward на минимална
варијанса која оддалеченоста ја пресметува како зголемување на квадрат на оддалеченост меѓу
примери и центроиди пред и по спојување на групи.

Оптимална е онаа метода чии претпоставки најдобро одговараат на податоците.

Псевдо код за хиерархиско агломеративно групирање: (по воа е пример – 33:22)


Masinsko ucenje predavanje 10

Алгоритми за надгледувано МЛ во python

Python има библиотеки за вчитување на податоци, визуелизација, статистичка обработка на


податоци, обработка на природен јазик, обработка на слики итн. Една од главни предносни на
python е можност за интеракција со кодот. Како јазик за програмирање со општа намена, тој
овозможува и создавање на веб сервиси и интеграција со постојни системи.

Scikit-learn: проект со отворен код. Содржи напредни алгоритми за МЛ.

Пример:

Import numpy as np

X = np.array([[1,2,3],[4,5,6]])

Print(“x:\n{}”.format(x))

Ќе се испечати:

x:

[[1 2 3]

[4 5 6]]

Jupyter е интерактивна околина за извршување на код и овозможува лесно вклучување на код,


текст и слики. Numpy е пакет кој содржи повеќедимензионални низи, математички функции од
повисоко ниво од алгебра, генератори на псевдослучајни броеви. Полињата се основни податочни
структури. Содржи класа ndarray за n димензионална низа, сите елементи на низата мора да се од
ист тип. SciPy се користи за научни истражувања и содржи функции за линеарна алгебра,
оптимизација, процесирање на сигнали, статистички дистрибуции. Таа се базира на scipy функции
за имплементирање на алгоритми. Најважен дел од scipy е scipy.sprase кој обезбедува празни
матрици.

Пример

From scipy import sparse


Eye = np.eye(4)

Print(eye) //vo dijagonalata kje ima 1, a site drugi prazni. 4 reda I 4 koloni

Konvertiranje na numpy niza vo sparse matrica

Sparse_matrix = sparse.csr_matrix(eye)

Print(sparse_matrix) //se zacuvuvaat vo numpy pole onie vlezovi koi ne se nula, zaedno so broj na red I
kolona

Matplotlib e primarna biblioteka I obezbeduva funkcii za vizuelizacii kako liniski dijagrami.

Primer

%matplotlib inline

Import matplotlib.pyplot as plt

X = np.linspace(-10,10,100)

Y = np.sin(x)

Plt.plot(x,y,market=”x”) //se generira sekvenca na broevi od -10 do 10 so 100 cekori megju ovie dva
broja. Se kreira vtoro pole so sinus. I se crta grafik na ovaa funkcii so plot

Pandas e biblioteka na python za analiza na podatoci I e izgradena vrz podatocna struktura DataFrame.
Pandas obezbeduva metodi za modifikacija so ovaa tabela I ovozmozuva sql prasanje I spojuvanje na
tabeli. Za razlika od numpy kade site elementi vo nizata treba da se od ist tip, pandas dozvoluva sekoja
kolona da ima svoj tip. Druga alatka e sposobnost da se primaat podatoci vo razlicni formati.

Import pandas as pd

Data = {‘Name’:[“Katerina”, “Marija”], ‘Location’:[“Probistip”, “Stip”]}

Data_pandas = pd.DataFrame(data)

Display(Data_pandas)

Display(data_pandas[data_pandas.Age>25]) //se filtrira tabela za site primeri koi se so godini povekje od


25

Класификација на база Ирис каде податоците се должината и ширината на ливчињата од светот


кои се petal и sepal. Има три типа на ирис: setosa, versicolor I virginica.
Класификатор к-најблиски соседи кој е непараметарски метод на класификација развиен во 1951.
Се користи за класфиикација и регресија. Во двата случаи влезот се состои од K најблиски примери
за учење, а излезот зависи од тоа дали алгоритамот се користи за класификација или регресија.
Кај класификација излезот е лабела накласа. Примерот е класифициран со класата која е најчеста
кај неговите к најблиски соседи. При регресија излезот е вредност на особината. Оваа вредност е
просечна вредност на вредностите на к најблиски соседи.

Примерокот со зелена боја треба да се класифицира или во класата со


црвено или зелено. Ако к е 3 (круг со цела линија), класата на новиот
пример ќе биде црвени триаголници. Во кругот со цела линија има
два црвени, а еден син, кои гласале на која класа припаѓа зелениот
круг. Ако к=5 (круг со испрекината линија), класата новиот пример ќе е
сини квадрати.

Сите модели на МЛ се имплементирани во сопствени класи кои се


нарекуваат estimated classes. Овој алгоритам е имплементиран со класата KNeighborsClassifier во
модул sklearn.neighbors. Пред да се користи моделот треба да се креира објект и да се постават
параметри за моделот.

Внесуваме ново поле со параметри: должина на sepal, ширина на sepal, должина petal, ширина
petal. Ја печатиме и се добива форма: број на пример 1 со број на особини 4. Следно потребно е
да предвидиме кој тип на ирис е ова. Креираме нова променлива prediction каде со помош на
објект од KNeighborsClassifier се предвидува на која класа припаѓа и името на класата на која
припаѓа.

KNeighborsClassfier содржи модел за градење со повикување на fit метод, а точноста се


предвидува со методот score. Предвидување на која класа припаѓа се прави со predict.

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

Пример е проверка дали банкноти се лажни или не. Податоците се добиени од слики на
оригинални банкноти. Користена е wavelet transformed image. Атрибути: variance, skewness,
curtosis, entropy, class.
За задачи за класификација се користат матрица на конфузија, прецизност, одзив и f1 мерка. Таа
ги содржи методи: classification_report, confusion_matrix.

Матрица на конфузија – стандарден начин за приказ на успешност на моделите при


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

а – број на позитивни случаи кои биле предвидени како позитивни

b – број на негативни случаи кои биле предвидени како негативни

c – број на позитивни случаи кои биле предвидени како негативни

d – број на негативни случаи кои биле предвидени како позитивни

Позитивна предвидувачка вредности: a/(a+b)

Погрешна позитивна стапка: b/(b+d)

Погрешна негативна стапка: c/(a+c)

Погрешна стапка на откривање: b/(a+b)

Чувствителност: a/(a+b)

Специфичност: d/(b+d)

Точност: (a+d)/(a+b+c+d)

F1 score е хармонска средина на чувствителност и прецизност: 2a/(2a+b+c)

Дрво на одлучување за проблем на регресија

Се користи класа DecisionTreeRegressor од модул tree.

Средна апсолутна грешка каде n е вкупен број на податочни точки, y е реална излезна вредност, y

со црта е предвидена излезна вредност. За секоја податочна точка се пресметува


остатокот, земајќи ја во предвид нејзината апсолутна вредност. Потоа се пресметува пресек од
сите остатоци и се добива средната апсолутна грешка со равенката. Остатоците се
пропорционални со вкупната грешка.

Средна квадратна грешка се пресметува сума од квадратите од разликите меѓу реалната и

предвидената вредност. Остатоците растат со квадратот.

Алгоритам машини со носечки вектори

Овој алгоритам е дел од алгоритмите за надгледувано учење, за класификација.


Во случај на податоци кои може линеарно да се поделат, овој алгоритам ќе се стреми да најде
граница на начин да грешката која ќе се добие да биде минимална. Овде има неколку граници
кои правилно би ја направиле поделбата. Двете испрекинати линии и полната линија ги
класифицираат податоците правилно. Овој алгоритам одбива граница со кој се максимизира
растојанието. Тој не ја одбира само границата, туку ја одбира најоптималната граница на поделба
која ја има максималната маргина од најблиските точки од сите класи. Најблиските точки се
наречени подржувачки/носечки вектори.

Границата на поделба е наречена максимален маргинален класификатор.

Бидејќи овде се работи за бинарна класификација, ќе се употреби класа, класификатор на


поддржувачки вектори, односно svc.
Masinsko ucenje predavanje 11

Ненадгледувано учење

Излезот не е познат, нема учител да го надгледува учењето. Овде на алгоритмот за учење му се


прикажуваат влезните податоци и се бара да се извлече знаење од податоци. Типови:
трансформации на базата на податоци и кластерирање. Првите се алгоритми кои создаваат нова
претстава за податоци со цел луѓето да можат полесно да ја разберат во споредба со
оригиналната претстава на податоците. Честа апликација на ненадгледувани апликации е
намалување на димензионалноста каде имаме трансформирање на податоци од повеќе
димензии во простор кој се состои од многу особини во нов начин за претставување на овие
податоци со сумирање на важни карактеристики со помалку особини. Нјачеста примена е
сведување на податоците на две димензии за подобра визуелизација, а друга примена е наоѓање
на компонентите кои ги градат податоците. Алгоритмите за кластерирање ги разделуваат
податоците во различни групи со слични особини.

Предизвик кај ова учење е да се предвиди дали алгоритмот научил нешто корисни. Овие
алгоритми се применуваат на податоци што не содржат никакви информации за класата, па не се
знае точниот излез. Овде е тешко да се каже дали моделот добро е најден. Единствен начин за
оценување на овие алгоритми е рачно да се оценуваат. Наоѓање на нова репрезентиација на
податоците ја подобрува точноста на алгоритмите за надгледувано учење. Вообичаена практика е
да се прилагодат особините, за репрезентацијата да биде посоодветна.

Кај StandardScaler обезбедува за секоја особина средната вредност да биде 0 и варијансата да


биде 1, па сите особини се иста големина. Ова скалирање не го обезбедува
минимумот/максимумот. RobustScaler обезбедува статистички својства за секоја од особините. Тој
користи медијана на м-во елементи е средишен елемент, така да еден дел од елементите да се
помали, а другите поголеми од неа. Долен квартил е број таков да ¼ од ел. да се помали од него, а
горен квартил е ¼ од ел. да се поголеми од него. Овозможува да ги игнорира податоците кои се
многу различни од останатите и овие несоодветни примери се нарекуваат исклучоци. Min/max
scaler ги поместува податоците така да сите се меѓу 0-1. Normalizer го скалира секој пример така
да векторот има евклидова должина 1, па секој пример е скалиран со различен број кој е
инверзен на неговата должина. Овие методи се применуваат пред да се примени надгледувано
МЛ.

За скалирање се користи метода fit врз податоците за учење. Кога со скалер се повикува овој
метод, единствено треба да се проследат податоци за учење, пример само X_train. Имаме и
користење на методот transform кој ја враќа нова репрезентација на податоците.

Методот transform секогаш го одзема минимумот најден во м-вото за учење и се дели со опсегот
на м-вото за учење.

Може да се користи и fit_transform кај StandardScaler.

Редукција на димензиите

Често користен алгоритам за редукција на димензиите е анализа на главните компоненти. Овде


има и друг алгоритам кој се користи за извлекување на особини и се нарекува ненегативна
матрична факторизација. Имаме и алгоритам за визуелизација на дво-димензионални слики и се
вика t-SNE.

Кај анализата на главни компоненти се ротира податочното м-во на начин на кој ротираните
особини се статистички некорелирани. Оваа ротација е следена од селектирање само на
подмножество од нови особини, според тоа колку се важни за објаснување на податоците.

К-средни вредности е еден од наједноставните и најкористени алгоритми за кластерирање, се


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

Имплементацијата на к-средни вредности е креирање на инстанца на класа kmeans и се поставува


број на кластери (kmeans = KMeans(n_clusters=3)). Се повикува метод fit чиј аргумент со
податоците кои се вештачки креирани (X,y = make_blobs(random_state=1)). При учење на секој
пример се доделува ознака на класа кои се добиваат со атрибут kmeans.labels_. со методот predict
може да се додели кластер на нови примери. Новите примери се доделуваат на кластер чиј
центар е најблизок, но центрите на веќе научениот модел не се менуваат. Центрите на кластерите
се сместени во cluster_centers. Со mglearn и функции за цртање се добива слика од kmeans
кластерирањето.
K-means може да креира кластери со едноставни форми и се претпоставува дека имаат ист
дијаметар и границата се црта точно на средина и ова води до неточни резултати. Исто така,
kmeans претпоставува дека сите правци се еднакво важни за сите кластери. Нема да се
идентификуваат кластери со комплексни форми, како кај пример со две месечини (7:50)

Квантизација на вектор/разгледување на вектор kmeans како декомпозиција

Споредба на анализа на основни компоненти со kmeans со прикажување на издвоени


компоненти, како и реконструкција на лица од тест м-во. Kmeans се обидува да ги претстави
податоците преку центри на кластери, па секој пример е претставен со една компонента. Овој
поглед врз kmeans како метод на декомпозиција се нарекува квантизација на вектор. За kmeans
реконструкцијата е најблискиот центар кој е пронајден. Недостаток: зависи од почетна
иницијализација и однапред задавање број на кластери.

Агломеративност кластерирање

Тоа е колекција на алгоритми за кластерирање изградени врз ист принцип. Алгоритмот започнува
со доделување на секој пример во посебен кластер и во секој чекор спојува два најслични
кластери се додека не се задоволи некој критериум за запирање. Критериум за запирање е број
на кластери. Има неколку критериуми за спојување кои специфицираат кои кластери се најслични,
има три избори во scikitlear:

- Ward: однапред дефиниран. Се спојуваат два кластери така да варијансата во сите


кластери најмалку се зголемила
- Average linkage: се спојуваат два кластери кои имаат најмало просечно растојание меѓу
сите нивни примери
- Complete linkage: спојува два кластери кои имаат најмало максимално растојание меѓу
нивни примери

Нема predict метод, се користи fit_predict за градење на модел.

Агломеративното кластерирање спаѓа во хиерархиско кластерирање.

Агломеративно кластерирање имплементирано со scipy:


DBSCAN – просторно кластерирање базирано на густина на апликации со шум

Предност е што однапред немора да се зададе број на кластеи, може да се пронајдат кластери со
различни форми и може да се идентификуваат примери кои се шум. Има два параметри:
min_samples и eps. Тој идентификува примери кои се во густи региони, каде има многу примери
еден до друг. Примерите во густите региони се наречени core samples или јадро примери. Ако има
најмалку min_sample примери на растојание eps од даден пример, тој пример се класифицира
како core sample. Core samples кои се на растојание помало од eps се ставаат во ист кластер од
DBSCAN. Има три примери: примери кои се core, примери кои се на растојание eps од core
примерите и шум примери. Членството на пример во кластер зависи од редоследот на
посетување на примерите.

DBSCAN се применува на вештачки создадена база и за кластерирање се користи метод fit_predict.

Споредба на претходните алгоритми:

Кај кластерирањето е тешко да се одреди дали алгоритмот добро работи. Има мерки/метрики за
оцена на резултатите од кластерирањето со приод ground truth. Најважни од овие мерки се
прилагоден Рандов индекс и нормализирана меѓусебна информација кои даваат резултат оценка
чија вредност се движи меѓу 0 и 1. Од 34:20 споредба на алгоритмите.
Грешка при кластирање е користење на accuracy_score (бара ознаките на кластерите да
одговараат точно на однапред познатите ознаки).

You might also like