Сцикит леарн - Машинско учење помоћу Питхона



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

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

Шта је машинско учење?

Машинско учење је врста вештачке интелигенције која омогућава софтверским апликацијама да уче из података и постају тачније у предвиђању исхода без људске интервенције. Али како се то дешава? За то, машина треба да се обучи за неке податке и на основу тога ће открити образац за стварање модела.Овај процес стицања знања из података и пружања моћних увида односи се на машинско учење. Погледајте доњу слику да бисте боље разумели њен рад:





МацхинеЛеарнинг - Сцикит Леарн - Едурека

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



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

    • Надгледано учење : Ово је процес учења алгоритма из скупа података о обуци. Учење под надзором је место где генеришете функцију мапирања између улазне променљиве (Кс) и излазне променљиве (И) и користите алгоритам за генерисање функције између њих. Такође је познато и као предиктивно моделирање које се односи на процес предвиђања помоћу података. Неки од алгоритама укључују Линеарну регресију, Логистичку регресију, Стабло одлука, Случајну шуму и Наивни Баиесов класификатор. Даље ћемо расправљати о случају употребе надзираног учења тамо где тренирамо машину користећи логистичка регресија .
    • Учење без надзора : Ово је процес у којем се модел обучава користећи информације које нису означене. Овај процес се може користити за груписање улазних података у класе на основу њихових статистичких својстава. Учење без надзора се назива и цанализа сјаја која подразумева груписање предмета на основу података пронађених у подацима који описују предмете или њихов однос. Циљ је да објекти у једној групи буду међусобно слични, али различити од објеката у другој групи. Неки од алгоритама укључују групирање К-средстава, хијерархијско кластерирање итд.
    • Учење ојачања: Појачано учење је учење интеракцијом са простором или околином.РЛ агент учи из последица својих поступака, а не из експлицитног учења. Своје акције бира на основу својих прошлих искустава (експлоатација), а такође и на основу нових избора (истраживање).

Преглед Сцикит Леарн

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



  • НумПи
  • Матплотлиб
  • СциПи (научни Питхон)

Да бисмо применили Сцикит леарн, прво морамо да увозимо горе наведене пакете. Ако нисте упознати са овим библиотекама, можете погледати моје претходне блогове на и . Ова два пакета можете преузети помоћу командне линије или ако користите П.И.Цхарм, можете га директно инсталирати тако што ћете отићи до своје поставке на исти начин као што то радите и за друге пакете.

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

пип инсталл сципи

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

Након увоза горе наведених библиотека, истражимо дубље и схватимо како се тачно Сцикит учење користи.

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

Узмимо пример где ћемо узети цифре скупа података и он ће нам категоризовати бројеве, на пример- 0 1 2 3 4 5 6 7 8 9. Погледајте доњи код:

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

Оутпут -

[[0. 0. 5. ..., 0. 0. 0.] [0. 0. 0. ..., 10. 0. 0.] [0. 0. 0. ..., 16. 9. 0.] ..., [0. 0. 1. ..., 6. 0. 0.] [0. 0. 2. ..., 12. 0. 0.] [0. 0. 10. ..., 12. 1. 0.]]

Овде смо управо увезли библиотеке, СВМ, скупове података и одштампали податке. То је дугачак низ цифрених података у којима се подаци чувају. Омогућава приступ карактеристикама које се могу користити за класификацију цифре Узорци. Даље, можете испробати и неке друге операције као што су мета, слике итд. Размотрите пример у наставку:

укуцајте кастинг у јави са примером
увоз матплотлиб.пиплот као плт из склеарн увоз скупова података из склеарн импорт свм дигитс = датасетс.лоад_дигитс () принт (дигитс.таргет) принт (дигитс.имагес [0])

Оутпут -

[0 1 2 ..., 8 9 8] // циљ података [[0. 0. 5. 13. 9. 1. 0. 0.] // слика података [0. 0. 13. 15. 10. 15. 5. 0.] [0. 3. 15. 2. 0. 11. 8. 0.] [0. 4. 12. 0. 0. 8. 8. 0.] [0. 5. 8. 0. 0. 9. 8. 0.] [0. 4. 11. 0. 1. 12. 7. 0.] [0. 2. 14. 5. 10. 12. 0. 0. ] [0. 0. 6. 13. 10. 0. 0. 0.]]

Као што видите горе, штампају се циљне цифре и слика цифара. цифре.циљ даје основну истину за цифра скуп података, то је број који одговара свакој цифреној слици. Даље, подаци су увек 2Д низови који имају облик (н_самплес, н_феатурес), иако су оригинални подаци можда имали другачији облик. Али у случају цифара, сваки оригинални узорак је слика облика (8,8) и може му се приступити помоћу цифре . слика.

Учење и предвиђање

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

увоз матплотлиб.пиплот као плт из склеарн увоз скупова података из склеарн увоз свм дигитс = датасетс.лоад_дигитс () // скуп података цлф = свм.СВЦ (гама = 0,001, Ц = 100) принт (лен (дигитс.дата)) к, и = дигитс.дата [: - 1], дигитс.таргет [: - 1] // обучи податке цлф.фит (к, и) принт ('Предицтион:', цлф.предицт (дигитс.дата [-1]) ) // предвиђање података плт.имсхов (дигитс.имагес [-1], цмап = плт.цм.граи_р, интерполатион = 'најближи') плт.схов ()

Оутпут -

1796
Предвиђање: [8]


У горњем примеру, прво смо пронашли дужину и учитали 1796 примера. Даље, користили смо ове податке као податке за учење, где треба да тестирамо последњи елемент и први негативни елемент. Такође, морамо да проверимо да ли је машина предвидела праве податке или не. За то смо користили Матплотлиб где смо приказали слику цифара.Дакле, да закључимо, имате цифрене податке, добили сте мету, уклапате се и предвиђате је и зато сте спремни за полазак! Заиста је брзо и лако, зар не?

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

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

Оутпут-


Као што видите у горњем коду, користили смо функцију „зип“ за спајање слика и циљних ознака на листу, а затим је сачували у променљиву, рецимо имагес_анд_лабелс. Након тога индексирали смо првих осам елемената у мрежи 2 пута 4 на свакој позицији. После тога смо управо приказали слике уз помоћ Матплотлиба и додали наслов као „тренинг“.

Случај употребе - Предвиђање помоћу логистичке регресије

Изјава о проблему - Аутомобилска компанија је на тржиште пустила нови СУВ. Користећи претходне податке о продаји њихових теренаца, желе да предвиде категорију људи који би могли бити заинтересовани за куповину овог.

како направити класу синглетон

За ово, погледајмо скуп података који имам ИД корисника, пол, старост, процењена зарада и купљено као колоне. Ово је само узорак скупа података, из којег можете преузети читав скуп података овде . Једном када увозимо податке у пиЦхарм, изгледа некако овако.

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

Прво, хајде да направимо преглед логистичке регресије.

Логистичка регресија - Логистичка регресија даје резултате у бинарном формату који се користи за предвиђање исхода категорички зависне променљиве. Најшире се користи када је зависна променљива бинарна, тј. Број доступних категорија је две, као што су уобичајени излази логистичке регресије -

  • Да и не
  • Тачно и нетачно
  • Високо и ниско
  • Пасс анд Фаил

Сада да започнемо са кодом, прво ћемо увести ове библиотеке - Нумпи, Матплотлиб и Пандас. Прилично је лако увести панде у Пицхарм пратећи следеће кораке:

Подешавања -> Додај пакет -> Панде -> Инсталирај

Након тога увеземо скуп података и раздвојимо зависну променљиву (купљену) и независну променљиву (старост, зарада) према:

скуп података = пд.реад_цсв ('Социал_Нетворк_Адс.цсв') Кс = дата.илоц [:, [2, 3]]. вредности и = дата.илоц [:, 4] .валуес принт (Кс) принт (и)

Следећи корак би био обука и тестирање података. Уобичајена стратегија је узимање свих означених података и подела на подскупове тренинга и тестирања, који се обично узимају у омјеру 70-80% за подскуп тренинга и 20-30% за подскуп тестирања. Стога смо креирали креирајте сетове за обуку и тестирање помоћу унакрсне валидације.

фром склеарн.цросс_валидатион импорт траин_тест_сплит Кс_траин, Кс_тест, и_траин, и_тест = траин_тест_сплит (Кс, и, тест_сизе = 0.25, рандом_стате = 0)

Такође можемо скалирати улазне вредности за боље перформансе користећи СтандарСцалер као што је приказано доле:

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

Сада ћемо створити наш модел логистичке регресије.

фром склеарн.линеар_модел импорт ЛогистицРегрессион класификатор = ЛогистицРегрессион (рандом_стате = 0) класификатор.фит (Кс_траин, и_траин)

То можемо користити и предвидети резултате нашег скупа тестова.

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

Сада можемо да проверимо колико је предвиђања било тачно, а колико није матрица забуне . Одредимо И као позитивне инстанце, а Н као негативне. Четири исхода формулисана су у матрици збуњености 2 * 2, као што је представљено у наставку:

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

Оутпут-

[[65 3] [8 24]]

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

= ТП + ТН / ФН + ФП

= 65 + 24/65 +3+ 8 + 24

= 89%

Ово смо урадили ручно! Сада да видимо како машина израчунава исто за нас, јер за то имамо уграђену функцију ‘сцоре_сцоре’ која израчунава тачност и штампа је, као што је приказано доле:

из склеарн.метрицс увоз тачност_скор // увози функцију прецизност_резултата испис (сцоре_цоре (и_тест, и_пред) * 100) // исписује тачност

Оутпут -

89.0

Ура! Стога смо успешно применили логистичку регресију користећи Сцикит учење са тачношћу од 89%.

како укуцати текст у јави

Кликните овде да бисте добили пуни потпуни извор горе наведеног предвиђања користећи Питхон Сцикит леарн библиотеку.

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

Имате питање за нас? Молимо вас да га спомињете у одељку за коментаре овог блога „Сцикит леарн“ и јавићемо вам се што је пре могуће. Да бисте стекли детаљно знање о Питхону, заједно са разним апликацијама, то можете за онлајн обуку уживо са подршком 24/7 и доживотним приступом.