Jak implementovat algoritmus Find-S do strojového učení?



Tento článek se zabývá konceptem vyhledávacího algoritmu ve strojovém učení. Točí se kolem různých terminologií hypotéz, přičemž jako příklad je použit případ použití.

v lze konceptuální učení nazvat „ problém hledání předem definovaného prostoru potenciální hypotézy pro hypotézu, která nejlépe odpovídá příkladům tréninku “- Tom Mitchell. V tomto článku projdeme jedním takovým algoritmem konceptuálního učení známým jako algoritmus Find-S. V tomto článku jsou popsána následující témata.

Co je algoritmus Find-S ve strojovém učení?

Abyste porozuměli algoritmu Find-S, musíte mít základní představu také o následujících konceptech:





  1. Koncept učení
  2. Obecná hypotéza
  3. Specifická hypotéza

1. Konceptuální učení

Zkusme pochopit koncepční učení na příkladu z reálného života. Většina lidského učení je založena na minulých příkladech nebo zkušenostech. Například jsme schopni identifikovat jakýkoli typ vozidla na základě určité sady funkcí, jako je značka, model atd., Které jsou definovány prostřednictvím velké sady funkcí.



ansible vs chef vs loutka

Tyto speciální funkce odlišují sadu osobních, nákladních vozidel atd. Od větší sady vozidel. Tyto funkce, které definují sadu osobních, nákladních automobilů atd., Jsou známé jako koncepty.

Podobně jako v tomto případě se stroje mohou z konceptů učit, aby zjistily, zda objekt patří do konkrétní kategorie či nikoli. Žádný který podporuje koncepční učení, vyžaduje následující:

  • Údaje o školení
  • Koncept cíle
  • Skutečné datové objekty

2. Obecná hypotéza



Hypotéza je obecně vysvětlením něčeho. Obecná hypotéza v zásadě uvádí obecný vztah mezi hlavními proměnnými. Například by byla obecná hypotéza pro objednání jídla Chci hamburger.

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

3. Specifická hypotéza

Specifická hypotéza vyplňuje všechny důležité podrobnosti o proměnných uvedených v obecné hypotéze. Konkrétnější podrobnosti do výše uvedeného příkladu by byly Chci cheeseburger s kuřecí feferonkovou náplní se spoustou salátu.

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

java rozdíl mezi implementuje a rozšiřuje

Nyní si promluvme o algoritmu Find-S ve strojovém učení.

Algoritmus Find-S se řídí následujícími kroky:

  1. Inicializujte „h“ na nejkonkrétnější hypotézu.
  2. Algoritmus Find-S bere v úvahu pouze pozitivní příklady a vylučuje negativní příklady. U každého pozitivního příkladu algoritmus kontroluje každý atribut v příkladu. Pokud je hodnota atributu stejná jako hodnota hypotézy, algoritmus pokračuje beze změn. Pokud je ale hodnota atributu jiná než hodnota hypotézy, algoritmus ji změní na „?“.

Nyní, když jsme skončili se základním vysvětlením algoritmu Find-S, podívejme se, jak to funguje.

Jak to funguje?

algoritmus vývojového diagramu-find-s ve strojovém učení - edureka

  1. Proces začíná inicializací „h“ s nejkonkrétnější hypotézou, obecně jde o první pozitivní příklad v datové sadě.
  2. Zkontrolujeme každý pozitivní příklad. Pokud je příklad záporný, přejdeme k dalšímu příkladu, ale pokud se jedná o pozitivní příklad, zvážíme jej pro další krok.
  3. Zkontrolujeme, zda se každý atribut v příkladu rovná hodnotě hypotézy.
  4. Pokud se hodnota shoduje, neprovedou se žádné změny.
  5. Pokud se hodnota neshoduje, změní se na „?“.
  6. Děláme to, dokud nedosáhneme posledního pozitivního příkladu v datové sadě.

Omezení algoritmu Find-S

Níže je uvedeno několik omezení algoritmu Find-S:

  1. Neexistuje žádný způsob, jak určit, zda je hypotéza konzistentní v celém rozsahu dat.
  2. Nekonzistentní tréninkové sady mohou ve skutečnosti zavést algoritmus Find-S, protože ignoruje negativní příklady.
  3. Algoritmus Find-S neposkytuje techniku ​​zpětného sledování k určení nejlepších možných změn, které lze provést ke zlepšení výsledné hypotézy.

Nyní, když jsme si vědomi omezení algoritmu Find-S, pojďme se podívat na praktickou implementaci algoritmu Find-S.

Implementace algoritmu Find-S

Abychom pochopili implementaci, zkusme ji implementovat do menší datové sady s hromadou příkladů, abychom se rozhodli, jestli chce někdo jít na procházku.

Koncept tohoto konkrétního problému bude v jaké dny má člověk rád chodit na procházku.

Čas Počasí Teplota Společnost Vlhkost vzduchu Vítr Jde
RánoSlunnýTeplýAnoMírnýSilnýAno
VečerDeštivýStudenýNeMírnýNormálníNe
RánoSlunnýMírnýAnoNormálníNormálníAno
VečerSlunnýStudenýAnoVysokýSilnýAno

Při pohledu na datovou sadu máme šest atributů a konečný atribut, který definuje pozitivní nebo negativní příklad. V tomto případě je ano pozitivním příkladem, což znamená, že osoba půjde na procházku.

Obecná hypotéza tedy nyní zní:

h0= {„Ráno“, „Slunečno“, „Teplé“, „Ano“, „Mírně“, „Silně“}

Toto je naše obecná hypotéza a nyní budeme zvažovat každý příklad jeden po druhém, ale pouze pozitivní příklady.

hjeden= {„Ráno“, „Slunečno“, „?“, „Ano“, „?“, „?“}

h2= {‚?‘, ‚Sunny‘, ‚?‘, ‚Ano‘, ‚?‘, ‚?‘}

Nahradili jsme všechny různé hodnoty v obecné hypotéze, abychom získali výslednou hypotézu. Nyní, když víme, jak funguje algoritmus Find-S, pojďme se podívat na implementaci pomocí Krajta .

Pouzdro

Pokusme se implementovat výše uvedený příklad pomocí . Níže je uveden kód pro implementaci algoritmu Find-S pomocí výše uvedených dat.

importovat pandy jako pd importovat numpy jako np # číst data v souboru csv data = pd.read_csv ('data.csv') print (data, 'n') # vytvořit pole všech atributů d = np.array (data) [:,: - 1] print ('n Atributy jsou:', d) #segragating cíl, který má pozitivní a negativní příklady target = np.array (data) [:, - 1] print ('n Cíl 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ískání závěrečného tisku hypotéz ('n Konečná hypotéza je:', train (d, target))

Výstup:

co dělá vývojář tabla

Tím se dostáváme na konec tohoto článku, kde jsme se naučili algoritmus Find-S v Machoviine Learning s jeho implementací a případem použití. Doufám, že máte jasno se vším, co bylo s vámi v tomto tutoriálu sdíleno.

Pokud vám tento článek „Algoritmus Find-S ve strojovém učení“ připadá relevantní, podívejte se na důvěryhodná online vzdělávací společnost se sítí více než 250 000 spokojených studentů po celém světě.

Jsme tu, abychom vám pomohli s každým krokem na vaší cestě a vytvořili osnovy určené pro studenty a profesionály, kteří chtějí být . Kurz je navržen tak, aby vám poskytl náskok v programování v Pythonu a naučil vás základní i pokročilé koncepty Pythonu spolu s různými jako , , atd.

Pokud narazíte na jakékoli dotazy, neváhejte se zeptat na všechny své dotazy v sekci komentářů „Find-S Algorithm In Machine Learning“ a náš tým vám rád odpoví.