Úvod do algoritmů strojového učení

Machine Learning je studie prediktivní analýzy, která pracuje na principu, že se počítače učí z minulých dat a poté předpovídají nová data. Příchod algoritmů Machine Learning byl dlouho ve vývoji počítačů. Nedávný humbuk je však výsledkem velkého množství generovaných dat a obrovské výpočetní síly, kterou mají moderní počítače. To má za následek vznik hlubokého učení, podoblasti Strojového učení, které prospívá více datům. Funguje to jako lidský mozek, kde se neurony používají k lepšímu rozhodování. Podobně v Deep Learning tvoří neuronové sítě vrstvy, které se řídí principem předávání a zpětného šíření, aby činily lepší rozhodnutí.

Kategorie algoritmů strojového učení

Pole algoritmů strojového učení lze rozdělit do -

  • Dohledované učení - Ve supervidovaném učení je sada dat označena, tj. Pro každou vlastnost nebo nezávislou proměnnou existují odpovídající cílová data, která bychom použili k tréninku modelu.
  • UN-supervised learning - na rozdíl od supervised learningu, datová sada není v tomto případě označena. Technika shlukování se tedy používá k seskupení dat na základě jeho podobnosti mezi datovými body ve stejné skupině.
  • Učení zesílení - speciální typ strojového učení, kde se model učí z každé provedené akce. Model je odměněn za každé přijaté správné rozhodnutí a penalizován za každé nesprávné rozhodnutí, které mu umožňuje učit se vzory a přijímat přesnější rozhodnutí o neznámých datech.

Rozdělení algoritmů strojového učení

Problémy v algoritmech strojového učení lze rozdělit na -

  • Regrese - existuje závislý vztah mezi závislými a nezávislými proměnnými. Cílová proměnná má numerickou povahu, zatímco nezávislé proměnné mohou být číselné nebo kategorické.
  • Klasifikace - Nejběžnějším problémovým příkazem, který byste našli v reálném světě, je klasifikace datového bodu do nějaké binární, multinomiální nebo ordinální třídy. V problému binární klasifikace má cílová proměnná pouze dva výstupy (Ano / Ne, 0/1, True / False). V problému multinomiální klasifikace existuje v cílové proměnné více tříd (Apple / Orange / Mango atd.). V případě řádové klasifikace je cílová proměnná uspořádána (např. - třída studentů).

Nyní, k vyřešení tohoto druhu problémů, programátoři a vědci vyvinuli některé programy nebo algoritmy, které by mohly být použity na datech k vytváření předpovědí. Tyto algoritmy lze rozdělit na lineární a nelineární nebo stromové algoritmy. Lineární algoritmy, jako je lineární regrese, logická regrese, se obvykle používají, pokud existuje lineární vztah mezi prvkem a cílovou proměnnou, zatímco data, která vykazují nelineární vzorce, metody založené na stromech, jako je strom rozhodování, náhodný les, zvýšení gradientu, atd., jsou preferovány.

Zatím jsme dostali krátkou intuici o strojovém učení. Nyní byste se naučili některé z jejích předprogramovaných algoritmů, které byste mohli použít ve vašem příštím projektu.

Algoritmy

V současné době je na trhu mnoho algoritmů strojového učení a vzhledem k objemu výzkumu, který se v této oblasti děje, se bude zvyšovat. Lineární a logistická regrese jsou obvykle první algoritmy, které se naučíte jako vědec dat, po nichž následují pokročilejší algoritmy.

Níže jsou uvedeny některé algoritmy strojového učení spolu s ukázkovými fragmenty kódu v pythonu.

1. Lineární regrese

Jak název napovídá, tento algoritmus by mohl být použit v případech, kdy je cílová proměnná, která je spojitá, lineárně závislá na závislých proměnných. To je reprezentováno -

y = a * x + b + e, kde y je cílová proměnná, kterou se pokoušíme předpovídat, a je přestávka a b je sklon, x je naše závislá proměnná použitá k vytvoření predikce. Toto je jednoduchá lineární regrese, protože existuje pouze jedna nezávislá proměnná. V případě vícenásobné lineární regrese by rovnice byla -

y = a1*x1 + a2*x2 + …… + a(n)*x(n) + b + e

Zde je e chybový termín a a1, a2 .. a (n) jsou koeficientem nezávislých proměnných.

Pro vyhodnocení výkonu modelu se používá metrika, která by v tomto případě mohla být Root Mean Square Error, což je druhá odmocnina průměru součtu rozdílu mezi skutečnými a předpovězenými hodnotami.

Cílem lineární regrese je najít nejvhodnější linii, která by minimalizovala rozdíl mezi skutečnými a předpokládanými datovými body.

Lineární regrese lze napsat v jazyce Python, jak je uvedeno níže -

2. Logistická regrese

Z hlediska udržování lineárního vztahu je to stejné jako lineární regrese. Na rozdíl od lineární regrese je však cílová proměnná v logistické regresi kategorická, tj. Binární, multinomiální nebo ordinální. Volba aktivační funkce je v Logistické regresi důležitá, pokud jde o binární klasifikační problémy, používá se log pravděpodobnosti ve prospěch tj. Sigmoidní funkce.

V případě problému s více třídami je výhodná funkce softmax, protože funkce sigmoidů zabírá hodně času na výpočet.

Metrika použitá k vyhodnocení klasifikačního problému je obecně přesnost nebo ROC křivka. Čím více je oblast pod ROC, tím lepší je model. Náhodný graf by měl AUC 0, 5. Hodnota 1 označuje nejvyšší přesnost, zatímco 0 označuje nejnižší přesnost.

Logistická regrese může být napsána v učení jako -


3. K-Nejbližší sousedé

Algoritmy strojového učení by mohly být použity pro klasifikační i regresní problémy. Myšlenkou metody KNN je, že předpovídá hodnotu nového datového bodu na základě svých K nejbližších sousedů. K je obecně výhodné jako liché číslo, aby se zabránilo jakémukoli konfliktu. Při klasifikaci jakéhokoli nového datového bodu je brána v úvahu třída s nejvyšším režimem v rámci sousedů. Zatímco pro regresní problém je průměr považován za hodnotu.

Dozvěděl jsem se, že KNN je psáno jako -


KNN se používá při vytváření doporučení motoru.

4. Podpora vektorové stroje

Klasifikační algoritmus, kde hyperplane odděluje dvě třídy. V problému binární klasifikace jsou dva vektory ze dvou odlišných tříd považovány za známé jako podpůrné vektory a hyperplane je nakreslena v maximální vzdálenosti od podpůrných vektorů.

Jak vidíte, obě řádky odděluje jeden řádek. Ve většině případů by však data nebyla tak dokonalá a jednoduchý hyperplán by nebyl schopen oddělit třídy. Proto je třeba vyladit parametry jako regularizace, jádro, gama atd.

Jádro by mohlo být lineární nebo polynomové v závislosti na tom, jak jsou data oddělena. V tomto případě má jádro lineární charakter. V případě regularizace je třeba zvolit optimální hodnotu C, protože vysoká hodnota by mohla vést k přeplnění, zatímco malá hodnota by mohla model podfitovat. Vliv jednoho tréninkového příkladu je definován společností Gamma. Body blízko čáry jsou považovány za vysoké gama a naopak pro nízké gama.

Ve sklearn je SVM psán jako -


5. Naive Bayes

Funguje na principu Bayesovy věty, která shledává pravděpodobnost události s ohledem na některé skutečné podmínky. Bayesova věta je reprezentována jako -

Algoritmus se nazývá Naive, protože věří, že všechny proměnné jsou nezávislé a přítomnost jedné proměnné nemá žádný vztah k ostatním proměnným, což v reálném životě nikdy neplatí. Naive Bayes lze použít v klasifikaci e-mailových spamů a v textové klasifikaci.

Naivní kód Bayes v Pythonu -

6. Rozhodovací strom

Algoritmus rozhodovacího stromu, který se používá pro klasifikační i regresní problémy, je jedním z nejjednodušších a snadno interpretovatelných algoritmů strojového učení. Není ovlivněna odlehlými hodnotami nebo chybějícími hodnotami v datech a mohla by zachytit nelineární vztahy mezi závislými a nezávislými proměnnými.

Pro vytvoření stromu rozhodnutí jsou nejprve uvažovány všechny funkce, ale prvek s maximálním ziskem informací je považován za konečný kořenový uzel, na základě kterého je provedeno následné rozdělení. Toto rozdělení pokračuje na podřízeném uzlu na základě maximálních informačních kritérií a zastaví se, dokud nebudou všechny instance klasifikovány nebo data nemohou být dále rozdělena. Rozhodovací stromy jsou často náchylné k přeplnění, a proto je nutné vyladit hyperparametr jako maximální hloubku, min uzly listu, minimální vzorky, maximální vlastnosti atd. Chcete-li snížit nadměrné vybavení, existuje chamtivý přístup, který stanoví omezení v každém kroku a vybírá nejlepší možná kritéria pro toto rozdělení. Existuje ještě lepší přístup nazvaný Prořezávání, kde je strom nejprve vybudován do určité předdefinované hloubky, a poté počínaje odspodu jsou uzly odstraněny, pokud to nezlepší model.

Ve sklearn jsou rozhodovací stromy kódovány jako -



7. Náhodný les

Aby se snížilo nadměrné přizpůsobení v rozhodovacím stromu, je nutné snížit rozptyl modelu, a tak se objevil koncept pytlování. Bagging je technika, při které se výstup několika klasifikátorů považuje za konečný výstup. Random Forest je jedna taková metoda pytlování, kdy je datový soubor vzorkován do více datových sad a funkce jsou vybírány náhodně pro každou sadu. Poté se na každé vzorkované údaje použije algoritmus rozhodovacího stromu, aby se získal výstup z každého režimu. V případě regresního problému se bere průměr výstupu všech modelů, zatímco v případě klasifikačního problému se za klasifikaci datového bodu považuje třída, která získá maximální hlas. Random Forest není ovlivňována odlehlými hodnotami, chybějícími hodnotami v datech a také pomáhá při snižování rozměrů. Nevýhodou však pro Random Forest není. V Pythonu můžete kódovat Random Forest jako -


8. K-znamená Clustering

Doposud jsme pracovali s kontrolovanými problémy s učením, kde pro každý vstup existuje odpovídající výstup. Nyní bychom se dozvěděli o učení bez dozoru, kde jsou data neznačená a je třeba je seskupit do konkrétních skupin. K dispozici je několik technik seskupování. Nejběžnějším z nich je však sdružování K-prostředků. Inkoust znamená k počet klastrů, které je třeba nastavit před udržováním maximálního rozptylu v datové sadě. Po nastavení k se inicializují těžiště. Centroidy se pak nastavují opakovaně tak, aby vzdálenost mezi datovými body uvnitř centroidu byla maximální a vzdálenost mezi dvěma samostatnými byla maximální. Euklidovská vzdálenost, vzdálenost na Manhattanu atd. Jsou některé ze vzorců vzdálenosti používaných pro tento účel.

Hodnota k byla nalezena metodou lokte.

K-znamená klastrování se používá v elektronickém obchodě, kde jsou zákazníci seskupeni na základě jejich vzorců chování. Lze jej také použít v nástroji Analytics pro analýzu rizik. Níže je pythonový kód -


Závěr: Algoritmy strojového učení

Data Scientist je nejsmutnější prací v 21. století a Machine Learning je určitě jednou z klíčových oblastí jeho odborné znalosti. Abychom byli datoví vědci, musíme mít důkladné znalosti všech těchto algoritmů a také několik dalších nových technik, jako je Deep Learning.

Doporučené články

Toto byl průvodce algoritmy strojového učení. Zde diskutujeme o konceptu, kategoriích, problémech a různých algoritmech strojového jazyka. Další informace naleznete také v našich dalších doporučených článcích -

  1. Techniky strojového učení
  2. Co je hluboké učení
  3. Data Scientist vs Machine Learning
  4. Dohledované učení vs Nerušené učení
  5. Hyperparametrické strojové učení
  6. Co je to Výztužná výuka?
  7. Nejpoužívanější techniky učení souboru
  8. Kompletní průvodce příklady C ++ algoritmů
  9. Průvodce fázemi životního cyklu strojového učení

Kategorie: