Hogyan lehet megvalósítani a Find-S algoritmust a gépi tanulásban?



Ez a cikk a find-s algoritmus fogalmát tárgyalja a gépi tanulásban. Különböző hipotézis-terminológiák körül forog, felhasználási esetet használva példaként.

Ban ben , a koncepciótanulást úgy lehet nevezni, hogy a potenciális hipotézis előre meghatározott terében történő keresés problémája a hipotézis számára, amely a legjobban illeszkedik a képzési példákhoz ”- Tom Mitchell. Ebben a cikkben át fogunk menni egy ilyen fogalomtanulási algoritmuson, amely a Find-S algoritmus néven ismert. A cikk a következő témákat tárgyalja.

Mi a Find-S algoritmus a gépi tanulásban?

A Find-S algoritmus megértéséhez a következő fogalmakról is rendelkeznie kell alapgondolattal:





  1. Koncepció tanulás
  2. Általános hipotézis
  3. Specifikus hipotézis

1. Koncepciótanulás

Próbáljuk megérteni a koncepció tanulását egy valós példával. Az emberi tanulás nagy része múltbeli példákon vagy tapasztalatokon alapszik. Például bármilyen típusú járművet képesek vagyunk azonosítani egy bizonyos jellemzők alapján, mint például a márka, a modell stb., Amelyeket egy nagy jellemzőkészlet határoz meg.



Ezek a különleges tulajdonságok megkülönböztetik az autók, teherautók stb. Készletét a nagyobb járművektől. Ezeket a személygépkocsik, teherautók stb. Készletét meghatározó tulajdonságokat fogalmaknak nevezzük.

Ehhez hasonlóan a gépek is tanulhatnak a fogalmakból annak azonosítására, hogy egy objektum egy adott kategóriába tartozik-e vagy sem. Bármi amely támogatja a koncepció tanulását, a következőkre van szükség:

  • Képzési adatok
  • Cél koncepció
  • Tényleges adatobjektumok

2. Általános hipotézis



A hipotézis általában magyarázat valamire. Az általános hipotézis alapvetően megállapítja a főbb változók közötti általános kapcsolatot. Például az ételrendelés általános hipotézise az lenne Hamburgert akarok.

G = {’?’, ’?’, ’?’,… .. ’?’}

3. Specifikus hipotézis

A specifikus hipotézis kitölti az általános hipotézisben megadott változókkal kapcsolatos összes fontos részletet. A fenti példában a konkrétabb részletek lennének Szeretnék egy sajtburgert csirkés pepperoni töltelékkel, sok salátával.

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

Most beszéljünk a gépi tanulás Find-S algoritmusáról.

keresési transzformáció az informatika példájában

A Find-S algoritmus az alábbi lépéseket követi:

  1. Inicializálja a „h” -t a legspecifikusabb hipotézishez.
  2. A Find-S algoritmus csak a pozitív példákat veszi figyelembe, és kizárja a negatív példákat. Minden pozitív példa esetében az algoritmus ellenőrzi a példa minden attribútumát. Ha az attribútum értéke megegyezik a hipotézis értékével, az algoritmus változások nélkül továbbáll. De ha az attribútum értéke eltér a hipotézis értékétől, az algoritmus „?” -Ra változtatja.

Most, hogy elkészültünk a Find-S algoritmus alapvető magyarázatával, vessünk egy pillantást a működésére.

Hogyan működik?

flowchart-find-s algoritmus a gépi tanulásban - edureka

  1. A folyamat a „h” inicializálásával kezdődik a legspecifikusabb hipotézissel, általában ez az első pozitív példa az adathalmazban.
  2. Minden pozitív példát ellenőrizünk. Ha a példa negatív, akkor továbblépünk a következő példára, de ha pozitív példa, akkor a következő lépéshez mérlegeljük.
  3. Ellenőrizzük, hogy a példában szereplő minden attribútum megegyezik-e a hipotézis értékével.
  4. Ha az érték megegyezik, akkor nem történnek módosítások.
  5. Ha az érték nem egyezik, akkor az érték „?” -Re változik.
  6. Addig tesszük ezt, amíg el nem érjük az adatsor utolsó pozitív példáját.

A Find-S algoritmus korlátai

Az alábbiakban felsorolt ​​Find-S algoritmusnak van néhány korlátozása:

  1. Nincs mód annak megállapítására, hogy a hipotézis konzisztens-e az adatokban.
  2. Az inkonzisztens oktatási készletek valójában félrevezethetik a Find-S algoritmust, mivel figyelmen kívül hagyják a negatív példákat.
  3. A Find-S algoritmus nem nyújt backtracking technikát a lehető legjobb változtatások meghatározásához, amelyek a kapott hipotézis javítása érdekében elvégezhetők.

Most, hogy tisztában vagyunk a Find-S algoritmus korlátaival, vessünk egy pillantást a Find-S algoritmus gyakorlati megvalósítására.

A Find-S algoritmus megvalósítása

A megvalósítás megértése érdekében próbáljunk meg egy kisebb adathalmazon megvalósítani egy csomó példával, hogy eldöntsük, akar-e valaki sétálni.

hogyan lehet kettősre konvertálni int

Ennek a problémának a koncepciója az lesz, hogy az ember mely napokon szeret sétálni.

Idő Időjárás Hőfok Vállalat páratartalom Szél Megy
ReggelNaposMelegIgenEnyheErősIgen
EsteEsősHidegNemEnyheNormálNem
ReggelNaposMérsékeltIgenNormálNormálIgen
EsteNaposHidegIgenMagasErősIgen

Az adatkészletet tekintve hat attribútummal és egy végső attribútummal rendelkezünk, amely meghatározza a pozitív vagy a negatív példát. Ebben az esetben az igen pozitív példa, ami azt jelenti, hogy az illető sétálni fog.

Tehát most az általános hipotézis a következő:

h0= {„Reggel”, „Napos”, „Meleg”, „Igen”, „Enyhe”, „Erős”}

Ez az általános hipotézisünk, és most minden példát egyenként vizsgálunk meg, de csak a pozitív példákat.

hegy= {„Reggel”, „Napos”, „?”, „Igen”, „?”, „?”}

h2= {’?’, ’Napos’, ’?’, ’Igen’, ’?’, ’?’}

Az általános hipotézisben szereplő összes különböző értéket lecseréltük, hogy eredményt kapjunk. Most, hogy tudjuk, hogyan működik a Find-S algoritmus, vessünk egy pillantást egy megvalósításra Piton .

Use Case

Próbáljuk meg a fenti példát a . A Find-S algoritmus fenti adatok felhasználásával történő megvalósításához szükséges kód az alábbiakban található.

import pandák pd-ként import numpy névként np # a csv fájl adatainak elolvasásához data = pd.read_csv ('data.csv') print (data, 'n') # tömb készítése az összes attribútumból (adatok) [:,: - 1] print ('n Az attribútumok:', d) # pozitív és negatív példákkal rendelkező célcsoport szétosztása target = np.array (adatok) [:, - 1] print ('n A cél a következő: ', target) # képzési függvény a find-s algoritmus megvalósításához def train (c, t): az i, val felsorolásához (t): ha val ==' Igen ': specifikus_hipotézis = c [i]. copy () törés i-re, val a (c) felsorolásban: ha t [i] == 'Igen': x-re a tartományban (len (specifikus_hipotézis)): ha val [x]! = specifikus_hipotézis [x]: specifikus_hipotézis [ x] = '?' else: pass return specific_hypothesis # a végső hipotézis nyomtatásának megszerzése ('n A végső hipotézis:', vonat (d, cél))

Kimenet:

Ezzel a cikk végére jutunk, ahol megtanultuk a Find-S algoritmust a Mach-banine Tanulás annak megvalósításával és felhasználásával. Remélem, tisztában van azzal, amit megosztott veled ebben az oktatóanyagban.

Ha relevánsnak találta ezt a cikket a „Find-S algoritmus a gépi tanulásban” témában, nézze meg a egy megbízható online tanulási vállalat, amelynek több mint 250 000 elégedett tanulóból álló hálózata van az egész világon.

Azért vagyunk itt, hogy segítsünk az utazás minden lépésében, és kidolgozzunk egy tananyagot, amelyet olyan hallgatók és szakemberek számára tervezünk, akik szeretnének . A tanfolyamot úgy tervezték meg, hogy előrelépést nyújtson a Python programozásában, és képezze mind az alapvető, mind a haladó Python fogalmakra a különféle megoldásokkal együtt tetszik , stb.

Ha bármilyen kérdése merülne fel, nyugodtan tegye fel minden kérdését a „Find-S algoritmus a gépi tanulásban” megjegyzés rovatban, és csapatunk örömmel válaszol.