је тренутно модна реч. Неке невероватне ствари се раде уз помоћ машинског учења. Од нашег лични асистент , до одлучивања о нашем путне руте , помаже нам у куповини, помаже нам у вођењу посла, бринемо о себи здравље и добростање, машинско учење је интегрисано у наше свакодневно постојање на тако основним нивоима, да већину времена ни не схватамо да се на њега ослањамо. У овом чланку ћемо следити почетнички приступ за примену стандардног класификатора машинског учења у Питхону.
- Преглед машинског учења
- Предложак за класификаторе машинског учења
- Проблем класификације машинског учења
Преглед машинског учења
Машинско учење је концепт који омогућава машини да учи на примерима и искуству, и то без изричитог програмирања. Дакле, уместо да пишете код, оно што радите је да податке шаљете генеричком алгоритму, а алгоритам / машина гради логику на основу датих података.
како отворити авс цли
Машинско учење укључује способност машина да доносе одлуке, процењују резултате својих радњи и побољшавају своје понашање како би узастопно постизале боље резултате.
Процес учења одвија се на три главна начина
- Надгледано учење
- Учење без надзора
- Учење ојачања
Предложак за класификаторе машинског учења
Алати за машинско учење пружају се врло повољно у Питхон библиотеци названој сцикит-леарн, којима је врло једноставно приступити и применити је.
Инсталирајте сцикит-леарн путем командне линије користећи:
пип инсталл -У сцикит-леарн
Ако сте корисник анацонде, у одзиву анацонда можете да користите:
цонда инсталирати сцикит-леарн
Инсталација захтева претходну инсталацију пакета НумПи и СциПи на вашем систему.
Предобрада: Први и најнеопходнији корак у било којој анализи података заснованој на машинском учењу је део предобраде. Тачно представљање и чишћење података је апсолутно неопходно за МЛ модел да би се добро обучио и извео свој потенцијал.
Корак 1 - Увезите потребне библиотеке
импорт нумпи ас нп импорт пандас ас пд импорт матплотлиб.пиплот ас плт
Корак 2 - Увезите скуп података
скуп података = пд.реад_цсв ()
Затим поделимо скуп података на независне и зависне променљиве. Независне променљиве биће улазни подаци, а зависне променљиве излазни подаци.
Кс = скуп података.илоц []. Вредности и = скуп података.илоц []. Вредности
3. корак - Руковање подацима који недостају
Скуп података може садржати празне или нулл вредности, што може проузроковати грешке у нашим резултатима. Стога морамо да се бавимо таквим уносима. Уобичајена пракса је замена нулл вредности заједничком вредношћу, попут средње вредности или најчешће вредности у тој колони.
фром склеарн.препроцессинг импорт Импутер импутер = Импутер (недостајуће_вредности = 'НаН', стратегија = 'значи', ос = 0) импутер = импутер.фит (Кс []) Кс [] = импутер.трансформ (Кс [])
4. корак - Претворите категоричке променљиве у нумеричке променљиве
фром склеарн.препроцессинг импорт ЛабелЕнцодер ле_Кс = ЛабелЕнцодер () Кс [] = ле_Кс.фит_трансформ (Кс []) лабеленцодер_и = ЛабелЕнцодер () и = лабеленцодер_и.фит_трансформ (и)
Сада, након кодирања, може се догодити да машина претпоставља нумеричке податке као рангирање за кодиране колоне. Дакле, да бисмо обезбедили једнаку тежину, морамо претворити бројеве у једно вруће векторе, користећи класу ОнеХотЕнцодер.
фром склеарн.препроцессинг импорт ОнеХотЕнцодер онеХЕ = ОнеХотЕнцодер (цатегорицал_феатурес = []) Кс = онеХЕ.фит_трансформ (Кс) .тоарраи ()
Корак 5 - Извршите скалирање
Овај корак је суочавање са неслагањима која произлазе из неусклађених скала променљивих. Стога их све скалирамо у исти опсег, тако да добијају једнаку тежину док су улазни у модел. У ту сврху користимо објекат класе СтандардСцалер.
фром склеарн.препроцессинг импорт СтандардСцалер сц_Кс = СтандардСцалер () Кс = сц_Кс.фит_трансформ (Кс)
Корак 6 - Поделите скуп података на податке о обуци и тестирању
Као последњи корак предобраде, скуп података треба поделити на сет за обуку и тест. Стандардни однос поделе воз-тест је 75% -25%. Можемо модификовати према захтевима. Функција траин_тест_сплит () то може учинити за нас.
фром склеарн.модел_селецтион импорт траин_тест_сплит Кс_траин, Кс_тест, и_траин, и_тест = траин_тест_сплит (Кс, и, тест_сизе = 0.25)
Грађење модела: Овај корак је заправо прилично једноставан. Једном када одлучимо који ћемо модел применити на податке, можемо створити објекат одговарајуће класе и уклопити објекат у наш сет обуке, узимајући у обзир Кс_траин као улаз и и_траин као излаз.
од склеарн. увоз класификатор = () класификатор.фит (Кс_траин, и_траин)
Модел је сада обучен и спреман. Сада можемо применити наш модел на тестни скуп и пронаћи предвиђени излаз.
и_пред = класификатор.предицт (Кс_тест)
Резултати прегледа: Учинак класификатора може се проценити параметрима тачности, прецизности, опозива и ф1-резултата. Ове вредности се могу видети помоћу методе познате под називом класификација_извештаја (). Такође се може посматрати као матрица забуне која нам помаже да знамо колико је које категорије података тачно класификовано.
фром склеарн.метрицс импорт цонфусион_матрик цм = цонфусион_матрик (и_тест, и_пред) принт (цм) фром склеарн.метрицс импорт логистицс_репорт таргет_намес = [] принт (класификација_извештаја (и_тест, и_пред, таргет_намес = таргет_намес))
Проблем класификатора машинског учења
Користићемо веома популаран и једноставан скуп података Ирис који садржи димензије цвећа у 3 категорије - Ирис-сетоса, Ирис-версицолор и Ирис-виргиница. Постоји 150 уноса у скупу података.
# Увоз библиотека импорт нумпи као нп импорт матплотлиб.пиплот као плт импорт пандас као пд # Увоз скупа података скупа података = пд.реад_цсв ('ирис.цсв')
Погледајмо скуп података сада.
сет података.хеад ()
Имамо 4 независне променљиве (искључујући Ид), наиме бројеве колона 1-4, а колона 5 је зависна променљива. Тако да их можемо раздвојити.
зашто нам је потребна сериализација у јави
Кс = скуп података.илоц [:, 1: 5] .вредности и = скуп података.илоц [:, 5] .валуес
Сада можемо поделити скуп података на обуку и тестирање.
# Раздвајање скупа података у сет за обуку и тест из скуарн.модел_селецтион импорт траин_тест_сплит Кс_траин, Кс_тест, и_траин, и_тест = траин_тест_сплит (Кс, и, тест_сизе = 0.25)
Сада ћемо применити класификатор логистичке регресије на скуп података.
# Изградња и обука модела из склеарн.линеар_модел импорт ЛогистицРегрессион класификатор = ЛогистицРегрессион () класификатор.фит (Кс_траин, и_траин) # Предвиђање резултата скупа тестова и_пред = класификатор.предицт (Кс_тест)
Последњи корак биће анализа учинка обученог модела.
# Израда матрице збрке од склеарн.метрицс импорт цонфусион_матрик цм = цонфусион_матрик (и_тест, и_пред) принт (цм)
То нам показује да је модел правилно предвидео 13 уноса прве категорије, 11 друге и 9 треће категорије.
# Генерирање тачности, прецизности, опозива и ф1-резултата из склеарн.метрицс импорт логистицс_репорт таргет_намес = ['Ирис-сетоса', 'Ирис-версицолор', 'Ирис-виргиница'] принт (репорт_цласс_порт (и_тест, и_пред, таргет_намес = таргет_намес) )
Извештај приказује вредности прецизности, опозива, ф1-резултата и тачности модела на нашем тестном скупу, који се састоји од 38 уноса (25% скупа података).
Честитамо, успешно сте креирали и применили свој први класификатор машинског учења у Питхону! Да бисте стекли детаљно знање о заједно са разним апликацијама, можете се пријавити за онлајн Питхон онлине тренинг са подршком 24/7 и доживотним приступом.