Дата Сциенце

Водич за машинско учење са Сцикит-леарн

Водич за машинско учење са Сцикит-леарн

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

Пакет сцикит-леарн садржи једноставне и ефикасне алате за примену података и анализу података на скуповима података и ови алгоритми су доступни за примену у различитим контекстима. То је пакет отвореног кода доступан под БСД лиценцом, што значи да ову библиотеку можемо користити чак и комерцијално. Изграђен је на врху матплотлиб-а, НумПи-а и СциПи-а, тако да је свестране природе. Користићемо Анаконду са Јупитер бележницом да представимо примере у овој лекцији.

Шта пружа сцикит-леарн?

Сцикит-леарн библиотека се у потпуности фокусира на моделирање података. Имајте на уму да у сцикит-леарну нису присутне неке веће функционалности када је реч о учитавању, манипулисању и резимирању података. Ево неколико популарних модела које нам нуди сцикит-леарн:

Инсталирајте Питхон сцикит-леарн

Само напомену пре започињања процеса инсталације, за ову лекцију користимо виртуелно окружење које смо направили следећом командом:

питхон -м виртуаленв сцикит
извор сцикит / бин / активирај

Једном када је виртуелно окружење активно, можемо инсталирати библиотеку панда унутар виртуелне енв тако да се могу извршити примери које следећи креирамо:

пип инсталирати сцикит-леарн

Или можемо користити Цонда за инсталирање овог пакета следећом наредбом:

цонда инсталирати сцикит-леарн

Нешто слично видимо када извршимо горњу команду:

Када се инсталација заврши са Цонда, моћи ћемо да користимо пакет у нашим Питхон скриптама као:

увоз склеарн

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

Увоз скупова података

Једна од згодних ствари са сцикит-леарн-ом је та што долази са унапред учитаним скуповима података са којима је лако брзо започети. Скупови података су Дужица и цифре скупови података за класификацију и цене кућа у Бостону скуп података за технике регресије. У овом одељку ћемо погледати како се учитава и започиње коришћење скупа података ириса.

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

из скуарн скупова података за увоз
ирис = скупови података.лоад_ирис ()
цифре = скупови података.лоад_дигитс ()
цифре.подаци

Једном када покренемо горњи исечак кода, видећемо следећи излаз:

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

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

Истраживање скупа података

Сад кад смо у скрипту увезли понуђени скуп података о цифрама, требали бисмо почети сакупљати основне информације о скупу података и то ћемо овдје учинити. Ево основних ствари које бисте требали истражити док тражите информације о скупу података:

Напишимо кратки исјечак кода да извучемо горе наведене три информације из нашег скупа података:

принт ('Циљ:', цифре.мета)
принт ('Тастери:', цифре.тастери ())
принт ('Опис:', цифре.ДЕСЦР)

Једном када покренемо горњи исечак кода, видећемо следећи излаз:

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

Почећемо са добијањем облика података низа, то су редови и колоне које низ има. За ово прво морамо добити стварне податке, а затим добити њихов облик:

дигитс_сет = цифре.подаци
принт (дигитс_сет.облик)

Једном када покренемо горњи исечак кода, видећемо следећи излаз:

То значи да у нашем скупу података имамо 1797 узорака, заједно са 64 карактеристике података (или колонама). Такође, имамо и неке циљне ознаке које ћемо овде визуализовати уз помоћ матплотлиб-а. Ево исечка кода који нам помаже у томе:

импорт матплотлиб.пиплот као плт
# Спојите слике и циљне налепнице као листу
имагес_анд_лабелс = лист (зип (цифре.слике, цифре.мета))
за индекс, (слика, налепница) у енумерате (имагес_анд_лабелс [: 8]):
# иницијализујте подплоту од 2Кс4 на и + 1-ој позицији
плт.подзаплет (2, 4, индекс + 1)
# Нема потребе за уцртавањем било које осе
плт.оса ('искључено')
# Прикажи слике у свим подплотама
плт.имсхов (слика, цмап = плт.центиметар.греи_р, интерполација = 'најближе')
# Додајте наслов у сваку парцелу
плт.наслов ('Обука:' + стр (ознака))
плт.Прикажи()

Једном када покренемо горњи исечак кода, видећемо следећи излаз:

Имајте на уму како смо зиповали две НумПи низове пре него што смо их уцртали у мрежу 4 са 2 без икаквих информација о оси. Сада смо сигурни у информације које имамо о скупу података са којима радимо.

Сада када знамо да имамо 64 карактеристике података (што је иначе пуно карактеристика), изазов је визуализирати стварне податке. Ипак имамо решење за ово.

Анализа главне компоненте (ПЦА)

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

  1. Елиминација карактеристика
  2. Издвајање својстава

Иако се прва техника суочава са проблемом изгубљених карактеристика података чак и када су могле бити важне, друга техника не пати од проблема као уз помоћ ПЦА, ми конструишемо нове карактеристике података (мање у броју) где комбинујемо улазне променљиве на такав начин да можемо изоставити „најмање важне“ променљиве, а да притом задржимо највредније делове свих променљивих.

Као што се и очекивало, ПЦА нам помаже да смањимо високо-димензионалност података што је директан резултат описивања објекта помоћу многих особина података. Не само цифре, већ и многи други практични скупови података имају велик број карактеристика, што укључује податке о финансијским институцијама, податке о времену и економији за регион итд. Када изводимо ПЦА на скупу података са цифрама, наш циљ ће бити пронаћи само две карактеристике које имају већину карактеристика скупа података.

Напишимо једноставан исечак кода за примену ПЦА на низ цифара како бисмо добили наш линеарни модел од само две карактеристике:

од склеарн.разлагање увоз ПЦА
феатуре_пца = ПЦА (н_компоненте = 2)
смањен_дата_рандом = особина_пца.фит_трансформ (цифре.подаци)
модел_пца = ПЦА (н_компоненте = 2)
смањена_података_пца = модел_пца.фит_трансформ (цифре.подаци)
смањена_података_пца.облик
испис (смањен_датан_рандом)
испис (смањена_података_пца)

Једном када покренемо горњи исечак кода, видећемо следећи излаз:

[[-1.2594655 21.27488324]
[7.95762224 -20.76873116]
[6.99192123 -9.95598191]

[10.8012644 -6.96019661]
[-4.87210598 12.42397516]
[-0.34441647 6.36562581]]
[[-1.25946526 21.27487934]
[7.95761543 -20.76870705]
[6.99191947 -9.9559785]

[10.80128422 -6.96025542]
[-4.87210144 12.42396098]
[-0.3443928 6.36555416]]

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

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

Примена к-значи кластерисање

Алгоритам к-значи кластерисања један је од најлакших алгоритама кластерисања за учење без надзора. У овом кластерисању имамо неки случајни број кластера и своје тачке података класификујемо у једно од ових кластера. Алгоритам к-значи пронаћи ће најближи кластер за сваку од задатих тачака података и доделити ту тачку података том кластеру.

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

Једноставно применимо овај алгоритам без било какве претходне обраде података. За ову стратегију исечак кода биће прилично лак:

из склеарн импорт кластера
к = 3
к_меанс = кластер.КМеанс (к)
# одговара подацима
к_меанс.уклопити (цифре.подаци)
# резултати штампања
испис (к_меанс.ознаке _ [:: 10])
испис (цифре.циљ [:: 10])

Једном када покренемо горњи исечак кода, видећемо следећи излаз:

У горњем излазу можемо видети да се различити кластери пружају свакој тачки података.

Закључак

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

Молимо поделите повратне информације о лекцији на Твиттеру са @сбмаггарвал и @ЛинукХинт.

Додајте покрете миша у Виндовс 10 помоћу ових бесплатних алата
Последњих година рачунари и оперативни системи су се увелико развили. Било је време када су корисници морали да користе команде за навигацију кроз мен...
Контролишите и управљајте кретањем миша између више монитора у оперативном систему Виндовс 10
Двоструки приказ миша омогућава вам контролу и конфигурисање кретања миша између више монитора, успоравајући његово кретање близу границе. Виндовс 10/...
ВинМоусе вам омогућава да прилагодите и побољшате кретање показивача миша на Виндовс рачунару
Ако желите да побољшате подразумеване функције показивача миша, користите бесплатни програм ВинМоусе. Додаје још функција које ће вам помоћи да на нај...