Úvod do algoritmov strojového učenia

Machine Learning je štúdia prediktívnej analýzy, ktorá pracuje na princípe, že počítače sa učia z minulých údajov a potom robia predpovede na nové údaje. Príchod algoritmov strojového učenia sa dlho vyvíjal, keď sa vyvíjali počítače. Nedávny humbuk je však výsledkom veľkého množstva generovaných údajov a obrovskej výpočtovej sily, ktorú majú moderné počítače. To malo za následok vznik hlbokého vzdelávania, podoblasti Strojového učenia, ktoré prospieva viac údajom. Funguje to ako ľudský mozog, kde sa neuróny používajú na lepšie rozhodnutia. Podobne, v Deep Learning, neurónové siete tvoria vrstvy, ktoré sa riadia princípom zasielania a spätného šírenia, aby prijímali lepšie rozhodnutia.

Kategórie algoritmov strojového učenia

Pole algoritmov strojového učenia by sa dalo rozdeliť na -

  • Dohliadané učenie - V supervízovanom vzdelávaní je dátová sada označená, tj pre každú vlastnosť alebo nezávislú premennú existujú zodpovedajúce cieľové údaje, ktoré by sme použili na trénovanie modelu.
  • Učenie pod dohľadom OSN - Na rozdiel od vzdelávania pod dohľadom nie je v tomto prípade súbor údajov označený. Technika zoskupovania sa teda používa na zoskupovanie údajov na základe ich podobnosti medzi dátovými bodmi v tej istej skupine.
  • Výučba zosilnenia - špeciálny typ strojového učenia, pri ktorom sa model učí z každej vykonanej akcie. Model je odmenený za každé správne rozhodnutie a penalizovaný za každé nesprávne rozhodnutie, ktoré mu umožňuje naučiť sa vzorce a robiť presnejšie rozhodnutia o neznámych údajoch.

Rozdelenie algoritmov strojového učenia

Problémy v algoritmoch strojového učenia sa dajú rozdeliť na -

  • Regresia - Existuje závislý vzťah medzi závislými a nezávislými premennými. Cieľová premenná má numerickú povahu, zatiaľ čo nezávislé premenné môžu byť číselné alebo kategorické.
  • Klasifikácia - Najčastejším problémom, ktorý by ste našli v reálnom svete, je klasifikácia údajového bodu do nejakej binárnej, multinomálnej alebo ordinálnej triedy. V prípade problému binárnej klasifikácie má cieľová premenná iba dva výstupy (Áno / Nie, 0/1, Pravda / Nepravda). V prípade problému viacčlennej klasifikácie existuje v cieľovej premennej viacero tried (Apple / Orange / Mango atď.). V prípade problému s poradovou klasifikáciou je cieľová premenná usporiadaná (napr. - známka študentov).

Teraz, na vyriešenie tohto druhu problémov, programátori a vedci vyvinuli niektoré programy alebo algoritmy, ktoré by sa mohli použiť na údaje na predpovede. Tieto algoritmy možno rozdeliť na lineárne a nelineárne alebo stromové algoritmy. Lineárne algoritmy, ako je lineárna regresia, logistická regresia, sa zvyčajne používajú, keď existuje lineárny vzťah medzi prvkom a cieľovou premennou, zatiaľ čo údaje, ktoré vykazujú nelineárne vzory, metódy založené na stromoch, ako napríklad strom rozhodovania, náhodný les, zvyšovanie gradientu, atď., sú preferované.

Zatiaľ sme dostali krátku intuíciu o strojovom učení. Teraz by ste sa naučili niektoré z jeho predprogramovaných algoritmov, ktoré by ste mohli použiť v ďalšom projekte.

algoritmy

V súčasnosti existuje na trhu početné algoritmy strojového učenia sa a vzhľadom na množstvo výskumov, ktoré sa v tejto oblasti robia, sa bude zvyšovať. Lineárna a logistická regresia sú zvyčajne prvé algoritmy, ktoré sa naučíte ako vedec údajov, po ktorých nasledujú pokročilejšie algoritmy.

Nižšie sú uvedené niektoré z algoritmov strojového učenia spolu s ukážkami útržkov kódu v pythone.

1. Lineárna regresia

Ako už názov napovedá, tento algoritmus by sa mohol použiť v prípadoch, keď je cieľová premenná, ktorá je svojou povahou súvislá, lineárne závislá od závislých premenných. Predstavuje ju -

y = a * x + b + e, kde y je cieľová premenná, ktorú sa snažíme predvídať, a je priesečník a b je sklon, x je naša závislá premenná použitá na vytvorenie predikcie. Toto je jednoduchá lineárna regresia, pretože existuje len jedna nezávislá premenná. V prípade viacnásobnej lineárnej regresie by rovnica bola -

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

Tu je e chybový pojem a a1, a2 .. a (n) sú koeficientom nezávislých premenných.

Na vyhodnotenie výkonnosti modelu sa používa metrika, ktorá v tomto prípade môže byť Root Mean Square Error, ktorá je druhou odmocninou priemeru súčtu rozdielu medzi skutočnými a predpokladanými hodnotami.

Cieľom lineárnej regresie je nájsť najlepšiu líniu, ktorá by minimalizovala rozdiel medzi skutočnými a predpokladanými dátovými bodmi.

Lineárnu regresiu je možné napísať v Pythone, ako je uvedené nižšie -

2. Logistická regresia

Pokiaľ ide o udržiavanie lineárneho vzťahu, je to rovnaké ako lineárna regresia. Na rozdiel od lineárnej regresie je však cieľová premenná v logistickej regresii kategorická, tj binárnej, multinomálnej alebo ordinálnej povahy. Voľba aktivačnej funkcie je dôležitá v logistickej regresii, pokiaľ ide o problémy binárnej klasifikácie, používa sa log pravdepodobnosti v prospech tj sigmoidná funkcia.

V prípade problému s viacerými triedami je výhodná funkcia softmax, pretože funkcia sigmoid vyžaduje veľa času na výpočet.

Metrika použitá na vyhodnotenie klasifikačného problému je všeobecne presnosť alebo krivka ROC. Čím viac je oblasť pod ROC, tým lepší je model. Náhodný graf by mal AUC 0, 5. Hodnota 1 označuje najvyššiu presnosť, zatiaľ čo 0 označuje najmenšiu presnosť.

Logistická regresia by sa mohla písať v učení ako -


3. K-najbližší susedia

Algoritmy strojového učenia by sa mohli použiť na klasifikáciu aj regresné problémy. Myšlienka metódy KNN spočíva v tom, že predpovedá hodnotu nového údajového bodu založeného na jeho najbližších susedoch K. K je spravidla preferované ako nepárne číslo, aby sa zabránilo akémukoľvek konfliktu. Pri klasifikácii každého nového údajového bodu sa berie do úvahy trieda s najvyšším režimom v rámci susedov. Zatiaľ čo pre regresný problém sa priemer považuje za hodnotu.

Dozvedel som sa, že KNN je napísané ako -


KNN sa používa na vytváranie odporúčacích motorov.

4. Podpora vektorových strojov

Klasifikačný algoritmus, v ktorom hyperplán delí tieto dve triedy. V prípade problému binárnej klasifikácie sa dva vektory z dvoch odlišných tried považujú za podporné vektory a hyper rovina je nakreslená v maximálnej vzdialenosti od podporných vektorov.

Ako vidíte, tieto dve triedy oddeľuje jeden riadok. Vo väčšine prípadov by však údaje neboli také dokonalé a jednoduchý hyperplán by nebol schopný oddeliť triedy. Preto je potrebné vyladiť parametre, ako napríklad regularizácia, jadro, gama atď.

Jadro môže byť lineárne alebo polynómované v závislosti od toho, ako sú dáta oddelené. V tomto prípade má jadro lineárnu povahu. V prípade regularizácie musíte zvoliť optimálnu hodnotu C, pretože vysoká hodnota by mohla viesť k nadmernému vybaveniu, zatiaľ čo malá hodnota by mohla zodpovedať modelu. Vplyv jedného príkladu tréningu definuje spoločnosť Gamma. Body blízko línie sa považujú za vysoké gama a naopak pre nízke gama.

V sklearn sa SVM píše ako -


5. Naive Bayes

Funguje na princípe Bayesovej vety, ktorá zisťuje pravdepodobnosť udalosti vzhľadom na niektoré skutočné podmienky. Bayesova veta je zastúpená ako -

Algoritmus sa nazýva Naive, pretože verí, že všetky premenné sú nezávislé a prítomnosť jednej premennej nemá žiaden vzťah k iným premenným, čo v reálnom živote nikdy neplatí. Aplikácia Naive Bayes by sa mohla použiť na klasifikáciu spamu v e-mailoch a na klasifikáciu textu.

Naivný kód Bayes v Pythone -

6. Rozhodovací strom

Algoritmus rozhodovacieho stromu, ktorý sa používa pri problémoch klasifikácie a regresie, je jedným z najjednoduchších a ľahko interpretovateľných algoritmov strojového učenia. Nie je ovplyvnená odľahlými hodnotami alebo chýbajúcimi hodnotami v údajoch a mohla by zachytávať nelineárne vzťahy medzi závislými a nezávislými premennými.

Pri zostavovaní rozhodovacieho stromu sa najprv zvážia všetky vlastnosti, ale vlastnosť s maximálnym ziskom informácií sa považuje za konečný koreňový uzol, na základe ktorého sa uskutoční následné rozdelenie. Toto rozdelenie pokračuje v podriadenom uzle na základe kritérií maximálnej informácie a zastavuje sa, kým nie sú všetky prípady klasifikované alebo údaje nie je možné ďalej deliť. Rozhodovacie stromy sú často náchylné na nadmerné osadenie, a preto je potrebné vyladiť hyperparameter, ako je maximálna hĺbka, minové uzly listov, minimálne vzorky, maximálne znaky atď. Aby sa znížilo nadmerné prispôsobenie, existuje chamtivý prístup, ktorý stanovuje obmedzenia v každom kroku a vyberá najlepšie možné kritériá pre toto rozdelenie. Existuje ešte lepší prístup, ktorý sa nazýva prerezávanie, keď je strom najprv zostavený do určitej preddefinovanej hĺbky a potom sa odspodu odstránia uzly, ak to nezlepší model.

V sklearn sú rozhodovacie stromy kódované ako -



7. Náhodný les

Aby sa znížilo nadmerné prispôsobenie v rozhodovacom strome, je potrebné znížiť rozptyl modelu, a tak sa začal uplatňovať koncept vrecovania. Bagging je technika, pri ktorej sa výstup niekoľkých klasifikátorov považuje za konečný výstup. Random Forest je jedna taká metóda vrecovania, pri ktorej sa súbor údajov vzorkuje do viacerých súborov údajov a vlastnosti sa vyberajú náhodne pre každú množinu. Potom na každé vzorkované údaje sa použije algoritmus rozhodovacieho stromu, aby sa získal výstup z každého režimu. V prípade problému s regresiou sa berie priemer výkonu všetkých modelov, zatiaľ čo v prípade problému s klasifikáciou sa za klasifikáciu údajového bodu považuje trieda, ktorá získa maximálny hlas. Náhodný les nie je ovplyvňovaný odľahlými hodnotami, chýbajúcimi hodnotami v údajoch a tiež pomáha pri znižovaní rozmerov. Nevýhodou však pre Random Forest nie je. V Pythone by ste mohli kódovať Random Forest ako -


8. K-znamená zoskupovanie

Doteraz sme pracovali s problémami s učením pod dohľadom, kde pre každý vstup existuje zodpovedajúci výstup. Teraz by sme sa dozvedeli o učení bez dozoru, kde sú údaje neznačené a je potrebné ich zoskupiť do konkrétnych skupín. K dispozícii je niekoľko techník klastrovania. Najbežnejšou z nich je však zoskupovanie K-prostriedkov. Atramentové prostriedky, k znamená počet klastrov, ktoré je potrebné nastaviť pred udržaním maximálnej odchýlky v množine údajov. Po nastavení k sa inicializujú ťažiská. Ťažisko sa potom opakovane nastavuje tak, aby vzdialenosť medzi dátovými bodmi v rámci ťažiska bola maximálna a vzdialenosť medzi dvoma samostatnými bola maximálna. Euklidovská vzdialenosť, vzdialenosť na Manhattane atď. Sú niektoré zo vzorcov vzdialenosti používaných na tento účel.

Hodnota k sa dá zistiť z lakťovej metódy.

Zoskupovanie K-znamená, že sa používa v odvetviach elektronického obchodu, kde sú zákazníci zoskupení podľa svojich vzorcov správania. Môže sa použiť aj v analýze rizika. Nižšie je uvedený pythonový kód -


Záver: Algoritmy strojového učenia

Data Scientist je najsmutnejšia práca v 21. storočí a Machine Learning je určite jednou z jeho kľúčových oblastí odborných znalostí. Ak chcete byť vedcom údajov, musíte mať dôkladné znalosti všetkých týchto algoritmov a tiež niekoľko ďalších nových techník, ako je Deep Learning.

Odporúčané články

Toto bol sprievodca algoritmami strojového učenia. Tu diskutujeme o koncepte, kategóriách, problémoch a rôznych algoritmoch strojového jazyka. Ak sa chcete dozvedieť viac, môžete si tiež prečítať naše ďalšie navrhované články -

  1. Techniky strojového učenia
  2. Čo je hlboké vzdelávanie
  3. Data Scientist vs Machine Learning
  4. Učenie pod dohľadom vs učenie bez dozoru
  5. Hyperparameter Machine Learning
  6. Čo je výučba posilnenia?
  7. Najpoužívanejšie techniky ensemble learningu
  8. Kompletný sprievodca príkladmi algoritmov C ++
  9. Sprievodca fázami životného cyklu strojového učenia

Kategórie: