Ako implementovať algoritmus Find-S do strojového učenia?



Tento článok sa venuje konceptu vyhľadávacieho algoritmu v strojovom učení. Točí sa okolo rôznych terminológií hypotéz, pričom príkladom je prípad použitia.

V , koncepčné učenie možno nazvať ako „ problém hľadania vo vopred definovanom priestore potenciálnej hypotézy pre hypotézu, ktorá najlepšie vyhovuje cvičným príkladom “- Tom Mitchell. V tomto článku si prejdeme jeden taký algoritmus koncepčného učenia známy ako algoritmus Find-S. V tomto článku sa zaoberáme nasledujúcimi témami.

Čo je algoritmus Find-S v strojovom učení?

Aby ste pochopili algoritmus Find-S, musíte mať základnú predstavu aj o nasledujúcich konceptoch:





  1. Koncepčné učenie
  2. Všeobecná hypotéza
  3. Špecifická hypotéza

1. Koncepčné učenie

Skúsme pochopiť koncepčné učenie na príklade zo skutočného života. Väčšina ľudského učenia je založená na minulých príkladoch alebo skúsenostiach. Napríklad sme schopní identifikovať akýkoľvek typ vozidla na základe určitej skupiny funkcií, ako sú značka, model atď., Ktoré sú definované v rámci veľkej skupiny funkcií.



funkcia zoradenia v c ++

Tieto špeciálne vlastnosti odlišujú skupinu osobných, nákladných automobilov atď. Od väčšej skupiny vozidiel. Tieto funkcie, ktoré definujú skupinu osobných, nákladných automobilov atď., Sú známe ako koncepty.

Podobne sa stroje môžu tiež naučiť z konceptov zistiť, či objekt patrí do konkrétnej kategórie alebo nie. akýkoľvek ktorý podporuje koncepčné vzdelávanie, vyžaduje nasledovné:

  • Údaje o tréningu
  • Cieľová koncepcia
  • Skutočné dátové objekty

2. Všeobecná hypotéza



Hypotéza je vo všeobecnosti vysvetlením niečoho. Všeobecná hypotéza v zásade uvádza všeobecný vzťah medzi hlavnými premennými. Napríklad všeobecná hypotéza o objednávaní jedla by bola Chcem hamburger.

G = {‚?‘, ‘?‘, ‘?‘, ... .. ‘?‘}

3. Špecifická hypotéza

Špecifická hypotéza vypĺňa všetky dôležité podrobnosti o premenných uvedených vo všeobecnej hypotéze. Konkrétnejšie podrobnosti príkladu uvedeného vyššie by boli Chcem cheeseburger s kuracím feferónovým plnkom s množstvom šalátu.

S = {‘& Phi’, ‘& Phi ',' & Phi ', ……,' & Phi '}

prejsť na príkaz v c ++

Teraz si povieme niečo o algoritme Find-S v strojovom učení.

Algoritmus Find-S postupuje podľa krokov uvedených nižšie:

  1. Inicializujte „h“ na najšpecifickejšiu hypotézu.
  2. Algoritmus Find-S berie do úvahy iba pozitívne príklady a vylučuje negatívne príklady. Pre každý pozitívny príklad algoritmus skontroluje každý atribút v príklade. Ak je hodnota atribútu rovnaká ako hodnota hypotézy, algoritmus pokračuje bez akýchkoľvek zmien. Ak je ale hodnota atribútu iná ako hodnota hypotézy, algoritmus ju zmení na „?“.

Teraz, keď sme skončili so základným vysvetlením algoritmu Find-S, pozrime sa, ako to funguje.

Ako to funguje?

algoritmus vývojových diagramov nájdených v strojovom učení - edureka

  1. Proces začína inicializáciou „h“ s najšpecifickejšou hypotézou, vo všeobecnosti ide o prvý pozitívny príklad v súbore údajov.
  2. Kontrolujeme každý pozitívny príklad. Ak je príklad negatívny, prejdeme k nasledujúcemu príkladu, ale ak ide o pozitívny príklad, zvážime ho pre ďalší krok.
  3. Skontrolujeme, či sa každý atribút v príklade rovná hodnote hypotézy.
  4. Ak sa hodnota zhoduje, potom sa zmeny nevykonajú.
  5. Ak sa hodnota nezhoduje, zmení sa na „?“.
  6. Robíme to, kým nedosiahneme posledný pozitívny príklad v súbore údajov.

Obmedzenia algoritmu Find-S

Nižšie existuje niekoľko obmedzení algoritmu Find-S:

  1. Neexistuje žiadny spôsob, ako určiť, či je hypotéza v údajoch konzistentná.
  2. Nekonzistentné tréningové sady môžu v skutočnosti zavádzať algoritmus Find-S, pretože ignoruje negatívne príklady.
  3. Algoritmus Find-S neposkytuje techniku ​​spätného sledovania na určenie najlepších možných zmien, ktoré by sa dali urobiť na zlepšenie výslednej hypotézy.

Teraz, keď sme si vedomí obmedzení algoritmu Find-S, pozrime sa na praktickú implementáciu algoritmu Find-S.

Implementácia algoritmu Find-S

Aby sme pochopili implementáciu, pokúsme sa ju implementovať do menšieho súboru údajov s hromadou príkladov, aby sme sa rozhodli, či chce človek ísť na prechádzku.

Koncept tohto konkrétneho problému bude vychádzať z toho, v aké dni chodí človek rád na prechádzku.

Čas Počasie Teplota Spoločnosť Vlhkosť Vietor Ide
RánoSlnečnoTeplýÁnoMierneSilnýÁno
VečerDaždivéChladnýNieMierneNormálneNie
RánoSlnečnoMiernaÁnoNormálneNormálneÁno
VečerSlnečnoChladnýÁnoVysokýSilnýÁno

Pri pohľade na množinu údajov máme šesť atribútov a posledný atribút, ktorý definuje pozitívny alebo negatívny príklad. V tomto prípade je áno pozitívnym príkladom, čo znamená, že osoba pôjde na prechádzku.

Takže teraz je všeobecná hypotéza:

h0= {„Ráno“, „Slnečno“, „Teplé“, „Áno“, „Mierne“, „Silné“}

Toto je naša všeobecná hypotéza a teraz zvážime každý príklad jeden po druhom, ale iba pozitívne príklady.

hjeden= {‚Ráno‘, ‚Slnečné‘, ‚?‘, ‚Áno‘, ‚?‘, ‚?‘}

h2= {‘?‘, ‘Sunny’, ‘?‘, ‘Yes’, ‘?‘, ‘?‘}

Nahradili sme všetky rôzne hodnoty vo všeobecnej hypotéze, aby sme získali výslednú hypotézu. Teraz, keď vieme, ako funguje algoritmus Find-S, sa pozrime na implementáciu pomocou Python .

Prípad použitia

Skúsme implementovať vyššie uvedený príklad pomocou . Kód na implementáciu algoritmu Find-S pomocou vyššie uvedených údajov je uvedený nižšie.

importovať pandy ako pd importovať ako np # načítať údaje v súbore csv data = pd.read_csv ('data.csv') print (data, 'n') # vytvoriť pole všetkých atribútov d = np.array (data) [:,: - 1] print ('n Atribúty sú:', d) #segragovanie cieľa, ktorý má pozitívne a negatívne príklady target = np.array (data) [:, - 1] print ('n Cieľ je: ', target) #training function to implement find-s algorithm def train (c, t): for i, val in enumerate (t): if val ==' Yes ​​': specific_hypothesis = c [i]. copy () break for i, val in enumerate (c): if t [i] == 'Yes': for x in range (len (specific_hypothesis)): if val [x]! = specific_hypothesis [x]: specific_hypothesis [ x] = '?' else: pass return specific_hypothesis #získanie tlače záverečnej hypotézy ('n Konečná hypotéza je:', vlak (d, cieľ))

Výkon:

ako implementovať prepojený zoznam v c

Týmto sa dostávame na koniec tohto článku, kde sme sa naučili algoritmus Find-S v Machoviine Learning s jeho implementáciou a prípadom použitia. Dúfam, že máte prehľad o všetkom, čo bolo s vami zdieľané v tomto tutoriále.

Ak sa vám tento článok o „Algoritme Find-S v strojovom učení“ stal relevantným, pozrite si dôveryhodná online vzdelávacia spoločnosť so sieťou viac ako 250 000 spokojných študentov rozmiestnených po celom svete.

Sme tu, aby sme vám pomohli na každom kroku na vašej ceste a prišli s učebným plánom, ktorý je určený pre študentov a profesionálov, ktorí chcú byť . Kurz je navrhnutý tak, aby vám dal úvod do programovania v Pythone a naučil vás základné aj pokročilé koncepty Pythonu spolu s rôznymi Páči sa mi to , , atď.

Ak narazíte na akékoľvek otázky, neváhajte sa ich opýtať v sekcii komentárov „Vyhľadávací algoritmus strojového učenia“ a náš tím vám rád odpovie.