Pamatujete si větu No Free Lunch? Ne, netýká se (zatím) jídla. Ale pokud máte hlad, dejte si před čtením tohoto příspěvku svačinu – nechci, abyste si oslintali klávesnici.

Připomínám – žádný algoritmus není optimální nad množinou všech možných situací. Algoritmy strojového učení jsou jemné nástroje, které ladíte podle množiny problémů, zejména v případě strojového učení pod dohledem.

Dnes se podíváme, jak fungují populární klasifikační algoritmy, které nám pomáhají například vybírat a třídit báječná šťavnatá rajčata.

Jak funguje klasifikace

Každý den předpovídáme, zda lze danou věc zařadit do určité třídy. Uvedu příklad: Klasifikace nám pomáhá rozhodovat se při výběru rajčat v supermarketu („zelená“, „dokonalá“, „shnilá“). Z hlediska strojového učení přiřazujeme každému rajčeti, které držíme v ruce, nálepku jedné ze tříd.

Efektivita vaší soutěže ve sběru rajčat (někdo by ji nazval klasifikačním modelem) závisí na přesnosti jejích výsledků. Čím častěji budete sami chodit do supermarketu (místo abyste tam poslali rodiče nebo svou drahou polovičku), tím lepší budete ve vybírání čerstvých a chutných rajčat.

Počítače jsou na tom stejně! Aby se klasifikační model naučil přesně předpovídat výsledky, potřebuje spoustu trénovacích příkladů.

4 typy klasifikace

4 typy klasifikačních úloh ve strojovém učení

Binární

Binární klasifikace znamená, že se pracuje se dvěma třídami, které se k sobě vztahují jako pravdivé a nepravdivé. Představte si, že máte před sebou obrovskou bednu se žlutými a červenými rajčaty. Podle vašeho luxusního receptu na italské těstoviny však potřebujete pouze červená.

Co uděláte? Samozřejmě použijete label-encoding a v tomto případě přiřadíte 1 k „červeným“ a 0 k „ne červeným“. Třídění rajčat nebylo nikdy jednodušší.

Binární klasifikace

Multiclass

Co vidíte na této fotografii?

rajčata

Červená rajčata beefsteak. Cherry rajčata. Koktejlová rajčata. Dědičná rajčata.

Není zde žádná černá a bílá, „normální“ a „nenormální“ jako v binární klasifikaci. Na našem stole vítáme všechny druhy báječné zeleniny (nebo plodů).

Co pravděpodobně nevíte, pokud nejste příznivci vaření z rajčat, je, že ne všechna rajčata jsou stejně dobrá pro stejný pokrm. Červená hovězí rajčata jsou ideální na salsu, ale nenakládáte je. Cherry rajčata se hodí do salátů, ale ne do těstovin. Je tedy důležité vědět, s čím máte co do činění.

Klasifikace více tříd nám pomáhá roztřídit všechna rajčata z krabice bez ohledu na to, kolik je v ní tříd.

Klasifikace více tříd

Klasifikace více značek

Klasifikace více značek se používá, když jeden vstup může patřit do více než jedné třídy, například člověk, který je občanem dvou zemí.

Pro práci s tímto typem klasifikace je třeba vytvořit model, který dokáže předpovídat více výstupů.

Pro rozpoznávání objektů na fotografiích potřebujete víceznačkovou klasifikaci. Například když potřebujete na stejném snímku identifikovat nejen rajčata, ale i různé jiné druhy objektů: jablka, cukety, cibuli atd.

Důležitá poznámka pro všechny milovníky rajčat: Není možné jen tak vzít binární nebo vícetřídní klasifikační algoritmus a použít ho přímo na víceznačkovou klasifikaci. Můžete však použít:

Víceznačkovou klasifikaci

Můžete také zkusit použít samostatný algoritmus pro každou třídu, abyste předpověděli štítky pro každou kategorii.

Nevyváženou

Pracujeme s nevyváženou klasifikací, když jsou příklady v každé třídě nerovnoměrně rozloženy.

Nevyvážená klasifikace se používá pro software na odhalování podvodů a lékařskou diagnostiku. Nalezení vzácných a vynikajících biologicky vypěstovaných rajčat, která se omylem vysypala do velké hromady rajčat v supermarketu, je příkladem nevyvážené klasifikace, který nabídl Gints, náš úžasný redaktor (pokud máte nějaké další příklady, napište nám je na Twitter).

Nevyvážená klasifikace

Doporučuji navštívit fantastický blog Machine Learning Mastery, kde si můžete přečíst o různých typech klasifikace a prostudovat mnoho dalších materiálů o strojovém učení.

Kroky při sestavování klasifikačního modelu

Jakmile víte, jakou klasifikační úlohou se zabýváte, je čas sestavit model.

  1. Vyberte klasifikátor. Musíte si vybrat jeden z ML algoritmů, který použijete na svá data.
  2. Trénujte jej. Musíte připravit trénovací sadu dat s označenými výsledky (čím více příkladů, tím lépe).
  3. Předpovídejte výstup. Použijte model, abyste získali nějaké výsledky.
  4. Vyhodnoťte model klasifikátoru. Pro kontrolu výsledků je dobré připravit validační sadu dat, která jste nepoužili při trénování.

Podívejme se nyní na nejpoužívanější klasifikační algoritmy.

Nejoblíbenější klasifikační algoritmy

obvyklé klasifikační algoritmy

Scikit-Learn je jednou z nejlepších ML knihoven pro Python. Pokud tedy chcete vytvořit svůj model, vyzkoušejte ji. Poskytuje přístup k široce používaným klasifikátorům.

Logistická regrese

Logistická regrese se používá pro binární klasifikaci.

Tento algoritmus využívá logistickou funkci k modelování pravděpodobnosti výskytu výsledku. Je nejužitečnější, když chcete pochopit, jak několik nezávislých proměnných ovlivňuje jednu výslednou proměnnou.

Příkladová otázka:

Logistická regrese má svá omezení; všechny prediktory by měly být nezávislé a neměly by chybět žádné hodnoty. Tento algoritmus selže, pokud neexistuje lineární oddělení hodnot.

Naivní Bayesův algoritmus

Naivní Bayesův algoritmus je založen na Bayesově teorému. Tento algoritmus můžete použít pro binární i vícetřídní klasifikaci a klasifikovat data na základě historických výsledků.

Příkladová úloha: Potřebuji oddělit shnilá rajčata od čerstvých na základě jejich vzhledu.

Výhodou Naivního Bayese je, že tyto algoritmy lze rychle sestavit: nevyžadují rozsáhlou trénovací množinu a jsou také rychlé ve srovnání s jinými metodami. Protože však výkonnost bayesovských algoritmů závisí na přesnosti jejich silných předpokladů, mohou výsledky potenciálně dopadnout velmi špatně.

Pomocí Bayesovy věty lze říci, jak výskyt události ovlivňuje pravděpodobnost jiné události.

k-nejbližší sousedé

kNN znamená „k-nejbližší soused“ a je jedním z nejjednodušších klasifikačních algoritmů.

Algoritmus přiřazuje objekty do třídy, do které patří většina jeho nejbližších sousedů ve vícerozměrném prostoru příznaků. Číslo k je počet sousedních objektů v prostoru příznaků, které jsou porovnávány s klasifikovaným objektem.

Příklad: Chci předpovědět druh rajčete z druhů rajčat, které jsou mu podobné.

Chcete-li klasifikovat vstupy pomocí k-nejbližších sousedů, musíte provést sadu činností:

  • Vypočítejte vzdálenost ke každému z objektů v trénovacím vzorku;
  • Vyberte k objektů z trénovacího vzorku, jejichž vzdálenost je minimální;
  • Třída klasifikovaného objektu je třída, která se mezi k-nejbližšími sousedy vyskytuje nejčastěji.

Rozhodovací strom

Rozhodovací stromy jsou pravděpodobně nejintuitivnějším způsobem vizualizace rozhodovacího procesu. Chceme-li předpovědět označení třídy vstupu, začneme od kořene stromu. Prostor možností musíte rozdělit na menší podmnožiny na základě rozhodovacího pravidla, které máte pro každý uzel.

Uvedeme příklad:

příklad rozhodovacího stromu

Prostor možností rozdělujete tak dlouho, dokud nedosáhnete dna stromu. Každý rozhodovací uzel má dvě nebo více větví. Listy ve výše uvedeném modelu obsahují rozhodnutí o tom, zda osoba je nebo není vhodná.

Příklad:

Typy rozhodovacích stromů

Existují dva typy stromů. Jsou založeny na povaze cílové proměnné:

  • Rozhodovací strom s kategorickou proměnnou.
  • Rozhodovací strom se spojitou proměnnou.

Rozhodovací stromy tedy poměrně dobře pracují jak s číselnými, tak s kategorickými daty. Další výhodou použití rozhodovacích stromů je, že nevyžadují velkou přípravu dat.

Rozhodovací stromy se však mohou stát příliš komplikovanými, což vede k nadměrnému přizpůsobování. Významnou nevýhodou těchto algoritmů je, že malé změny v trénovacích datech je činí nestabilními a vedou ke vzniku zcela nových stromů.

Náhodný les

Klasifikátory náhodného lesa používají několik různých rozhodovacích stromů na různých dílčích vzorcích souborů dat. Jako predikce modelu se bere průměrný výsledek, což obecně zlepšuje přesnost predikce modelu a bojuje proti nadměrnému přizpůsobení.

Náhodné lesy lze proto použít k řešení složitých problémů strojového učení, aniž by byla ohrožena přesnost výsledků. Nicméně jejich vytvoření předpovědi vyžaduje více času a jsou náročnější na implementaci.

Přečtěte si více o tom, jak náhodné lesy fungují, na blogu Towards Data Science.

Support Vector Machine

Support vector machines používají ke klasifikaci datových bodů hyperplochu v N-rozměrném prostoru. N je zde počet příznaků. Může to být v podstatě libovolné číslo, ale čím je větší, tím je sestavení modelu obtížnější.

Hiperrovinu si lze představit jako přímku (pro dvourozměrný prostor). Jakmile překročíme 3rozměrný prostor, stává se pro nás obtížné model vizualizovat.

Datové body, které spadají na různé strany hyperplochy, jsou přiřazeny k různým třídám.

Příklad: Automatický systém, který třídí rajčata na základě jejich tvaru, hmotnosti a barvy.

Hiperrovina, kterou zvolíme, přímo ovlivňuje přesnost výsledků. Hledáme tedy rovinu, která má maximální vzdálenost mezi datovými body obou tříd.

SVM vykazuje přesné výsledky s minimálním výpočetním výkonem, pokud máte k dispozici velké množství funkcí.

Sumarizace

Jak vidíte, strojové učení může být stejně jednoduché jako vybírání zeleniny v obchodě. Je však třeba mít na paměti mnoho detailů, pokud to nechcete pokazit. Sledujte náš blog, Twitter a Medium, kde najdete další zajímavé čtení o strojovém učení.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.