Машинско учење у Р за почетнике са примером



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

Машинско учење са Р.

Машинско учење је садашњост и будућност! Од Нетфлик-овог механизма за препоруке до Гоогле-овог аутомобила који се сам вози, све је то машинско учење. Овај блог о Машинском учењу са Р помаже вам да разумете основне концепте машинског учења праћених различитим алгоритмима машинског учења и примену тих алгоритама машинског учења са Р.

Овај блог на тему „Машинско учење са Р“ састоји се од ових одељака:





Машинско учење са Р | Едурека

Разумевање машинског учења

Фисх1- Машинско учење са Р - Едурека



Како знате да су све то рибе?



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

Тако функционише наш мозак, али шта је са машином? Ако се иста слика даје машини, како ће је машина препознати као рибу?

Овде је М. ацхине Леарнинг улази. Наставићемо да хранимо слике рибе на рачунару са ознаком „риба“ до машина учи све повезане функције са риба.

Једном када машина научи све карактеристике повезане са рибом, хранићемо је новим подацима како бисмо утврдили колико је научила.

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

Кренимо даље у овом блогу о машинском учењу са Р и разумејмо типове машинског учења.

Врсте машинског учења

  • Надгледано учење:

Алгоритам супервизованог учења учи из познатог скупа података (Траининг Дата) који има ознаке за предвиђање.

Регресија и класификација су неки примери супервизованог учења.

#Цлассифицатион:

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

У овом примеру, ако је прво запажање добило ознаку „Мушкарац“, онда је с правом класификовано, али ако је добило ознаку „Жена“, класификација је погрешна. Слично је и за друго запажање, ако је наведена ознака „Жена“, с правом је класификована, иначе је класификација погрешна.

#Регресија:

Регресија је надгледани алгоритам учења који помаже у одређивању како једна променљива утиче на другу променљиву.

је а има однос

Овде је „површина_живота“ независна променљива, а „цена“ је зависна променљива, тј. Ми одређујемо како се „цена“ разликује у односу на „површину_живота“.

  • Учење без надзора:

Алгоритам учења без надзора извлачи закључке из података који немају ознаке.

Груписање је пример учења без надзора. „К-средства“, „Хијерархијска“, „Нејасна Ц-средства“ су неки примери кластер алгоритама.

У овом примеру, скуп посматрања је подељен у два скупа. Груписање се врши на основу сличности између посматрања. Постоји велика сличност унутар кластера и мала сличност међу кластерима, тј. Постоји врло велика сличност између свих аутобуса, али мала сличност између аутобуса и аутомобила.

  • Учење ојачања:

Појачано учење је врста алгоритма машинског учења код којег машина / агент у ан Животна средина учи идеално понашање како би максимизовао своје перформансе. Једноставне повратне информације о награди потребне су агенту да би научио његово понашање, то је познато као сигнал ојачања .

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

Примена машинског учења са Р:

Линеарна регресија:

Радићемо са скупом података о дијамантима како бисмо применили алгоритам линеарне регресије:

Опис скупа података:

Пре него што направимо било који модел на подацима, требало би да поделимо податке на скупове „воз“ и „тест“. Модел ће бити направљен на скупу „воз“, а тачност ће се проверавати на скупу „тест“.

Морамо учитати пакет „цаТоолс“ да бисмо податке поделили на два скупа.

библиотека (цаТоолс)

Пакет „цаТоолс“ пружа функцију „сампле.сплит ()“ која помаже у подели података.

сампле.сплит (дијаманти $ цена, СплитРатио = 0,65) -> сплит_индек

65% запажања из колоне цена има ознаку „тачно“, а осталих 35% ознаку „лажно“.

подскуп (дијаманти, сплит_индек == Т) -> воз подскуп (дијаманти, сплит_индек == Ф) -> тест

Сва запажања која имају ознаку „истинито“ сачувана су у „ воз ”објект а она запажања која имају ознаку „лажно“ додељена су скупу „тест“.

Сада када је подела завршена и имамо своје скупове „воз“ и „тест“, време је да се на моделу тренинга изгради модел линеарне регресије.

Користићемо функцију „лм ()“ за изградњу модела линеарне регресије на подацима „воза“. Утврђујемо Цена дијаманата у односу на све остале променљиве скупа података. Изграђени модел се чува у објекту „мод_регресс“.

лм (цена ~., подаци = воз) -> мод_регресс

Сада, када смо изградили модел, морамо да предвидимо на „тест“ скупу. Функција „предицт ()“ користи се за добијање предвиђања. Потребна су два аргумента: изграђени модел и тест сет. Предвиђени резултати се чувају у објекту „ресулт_регресс“.

предвидети (мод_регресс, тест) -> ресулт_регресс

Повежимо стварне вредности цена из скупа података „тест“ и предвиђене вредности у један скуп података помоћу функције „цбинд ()“. Нови оквир података чува се у „Финал_Дата“

цбинд (Стварно = тест $ прице, Предицтед = ресулт_регресс) -> Финал_Дата 
ас.дата.фраме (Финал_Дата) -> Финал_Дата

Поглед на „Финал_Дата“ који се састоји од стварних вредности и предвиђених вредности:

Пронађимо грешку одузимањем предвиђених вредности од стварних вредности и додајте ову грешку као нову колону у „Финал_Дата“:

(Финал_Дата $ Ацтуал- Финал_Дата $ Предицтед) -> грешка
цбинд (Финал_Дата, грешка) -> Финал_Дата

Поглед на „Финал_Дата“ који такође садржи грешку у предвиђању:

Сада ћемо израчунати „ Корен средње квадратне грешке' што даје збирну грешку за сва предвиђања

рмсе1<-sqrt(mean(Final_Data$error^2)) 
рмсе1

Напред, направимо још један модел како бисмо могли да упоредимо тачност оба ова модела и утврдимо који је бољи.

Изградићемо нови модел линеарне регресије на скупу „воз“, али овог пута испуштаћемо колоне „к“ и „и“ из независних променљивих, тј. „Цену“ дијаманата одређују сви колоне осим 'к' и 'и'.

Изграђени модел се чува у „мод_регресс2“:

лм (цена ~.-и-з, подаци = воз) -> мод_регресс2

Предвиђени резултати се чувају у „ресулт_регресс2“

предвидети (мод_регресс2, тест) -> ресулт_регресс2

Стварне и предвиђене вредности се комбинују и чувају у „Финал_Дата2“:

цбинд (Стварна = тест $ прице, Предицтед = ресулт_регресс2) -> Финал_Дата2 
ас.дата.фраме (Финал_Дата2) -> Финал_Дата2

Додајмо и грешку у предвиђању на „Финал_Дата2“

(Финал_Дата2 $ Ацтуал- Финал_Дата2 $ Предвиђено) -> еррор2
цбинд (Финал_Дата2, еррор2) -> Финал_Дата2

Поглед на „Финал_Дата2“:

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

рмсе2<-sqrt(mean(Final_Data2$error^2))

је хадооп лако научити

Видимо да је „рмсе2“ незнатно мањи од „рмсе1“ и стога је други модел незнатно бољи од првог модела.

Класификација:

Радићемо на скупу података „цар_пурцхасе“ да бисмо применили рекурзивна партиција што је алгоритам класификације.

Поделимо податке на скупове „воз“ и „тест“ помоћу функције „сампле.сплит ()“ из пакета „цаТоолс“.

библиотека (цаТоолс)

65% запажања из колоне „Купљено“ биће додељене ознакама „ИСТИНИТО“, а остатку ће бити додељене ознаке „ФАЛСЕ“.

сампле.сплит (цар_пурцхасе $ Пурцхасед, СплитРатио = 0.65) -> сплит_валуес

Сва опажања која имају ознаку „ТРУЕ“ биће сачувана у подацима „воза“, а она која имају ознаку „ФАЛСЕ“ биће додељена подацима „тест“.

подскуп (купња аутомобила, дељене_ вредности == Т) -> подаци о возовима
подскуп (купња аутомобила, подељене_вредности == Ф) -> подаци_теста

Време је за изградњу алгоритма рекурзивне партиције:

За почетак ћемо учитати пакет „рпарт“:

библиотека (рпарт)

Колона „Купљено“ биће зависна променљива, а сви остали ступци су независне променљиве, тј. Ми утврђујемо да ли је особа купила аутомобил или не у односу на све остале колоне. Модел је изграђен на „дата_полоза“, а резултат се чува у „мод1“.

рпарт (Купљено ~., подаци = подаци_погона) -> мод1

Зацртајмо резултат:

заплет (мод1, маржа = 0,1) текст (мод1, прилично = Т, цек = 0,8)

Ајмо сада и предвидимо резултате на „тест_дата“. Као први аргумент дајемо уграђени рпарт модел „мод1“, тест тест „дата_дата“ као други аргумент и тип предвиђања као „класу“ за трећи аргумент. Резултат се чува у објекту ‘ресулт1’.

предвидети (мод1, тест_дата, типе = 'цласс') -> резултат1

Проценимо тачност модела помоћу функције „цонфусионМатрик ()“ из пакета царет.

библиотека (царет) цонфусионМатрик (табела (тест_дата $ Пурцхасед, ресулт1))

Матрица забуне говори нам да је од 90 запажања где особа није купила аутомобил, 79 запажања исправно класификовано као „Не“, а 11 погрешно класификовано као „ДА“. Слично томе, од 50 запажања где је особа стварно купила аутомобил, 47 је с правом класификовано као „ДА“, а 3 погрешно је класификовано као „НЕ“.

Тачност модела можемо пронаћи дељењем тачних предвиђања са укупним предвиђањима, тј. (79 + 47) / (79 + 47 + 11 + 3).

К-Меастер Кластер:

Радићемо са скупом података „ирис“ да бисмо применили к-значи кластерирање:

Уклонимо колону „Врсте“ и креирајмо нови скуп података који садржи само прва четири ступца из скупа података „ирис“.

ирис [1: 4] -> ирис_к

Узмимо број кластера као 3. Функција „Кмеанс ()“ узима улазне податке и број кластера у којима подаци треба да се групишу. Синтакса је: кмеанс (подаци, к) где је к број центара кластера.

кмеанс (ирис_к, 3) -> к1

Анализа груписања:

стр (к1)

Функција стр () даје структуру кмеанс-а која укључује разне параметре попут Витхинсс, Бетвеенсс итд., Анализирајући које можете сазнати перформансе кмеанс-а.

Бетвеенсс: Између збира квадрата, тј. сличности унутар групе

унутар: У оквиру збира квадрата, тј. сличности интеркластера

тотвитхинсс: Збир свих унутрашњости свих кластера, тј. Укупна сличност унутар кластера

Добро груписање имаће нижу вредност „тот.витхинсс“ и већу вредност „бетвеенсс“ што зависи од броја кластера „к“ који су изабрани у почетку.

Време је сазрело да постанете стручњак за машинско учење да бисте искористили нове могућности које вам се нађу на путу. Ово нас доводи до краја овог „ Машинско учење са Р. ' блог. Надам се да је овај блог био информативно плодоносан.

Едурека има посебно курирану који вам помаже да стекнете стручност у алгоритмима машинског учења попут К-Меанс кластера, дрвећа за одлучивање, случајне шуме, наивне Баиес. Научићете концепте статистике, временских серија, рударења текста и увод у дубинско учење. Нове серије за овај курс почињу ускоро !!