Kuinka toteuttaa Find-S-algoritmi koneoppimisessa?



Tämä artikkeli käsittelee löytöalgoritmin käsitettä koneoppimisessa. Se pyörii erilaisten hypoteesiterminologioiden ympärillä käyttäen esimerkkinä käyttötapausta.

Sisään , konseptin oppimista voidaan kutsua ongelma etsittäessä ennalta määritettyä potentiaalisen hypoteesin tilaa hypoteesille, joka sopii parhaiten harjoitteluesimerkkeihin ”- Tom Mitchell. Tässä artikkelissa käymme läpi yhden tällaisen käsitteen oppimisalgoritmin, joka tunnetaan nimellä Find-S-algoritmi. Tässä artikkelissa käsitellään seuraavia aiheita.

Mikä on Find-S-algoritmi koneoppimisessa?

Jotta voisit ymmärtää Find-S-algoritmin, sinulla on oltava myös perusajatus seuraavista käsitteistä:





  1. Käsitteen oppiminen
  2. Yleinen hypoteesi
  3. Spesifinen hypoteesi

1. Käsitteiden oppiminen

split-toiminto Java-esimerkissä

Yritetään ymmärtää käsitteen oppiminen tosielämän esimerkillä. Suurin osa ihmisen oppimisesta perustuu menneisiin tapauksiin tai kokemuksiin. Esimerkiksi pystymme tunnistamaan minkä tahansa ajoneuvotyypin tiettyjen ominaisuuksien, kuten merkin, mallin jne. Perusteella, jotka on määritelty useille ominaisuuksille.



Nämä erityispiirteet erottavat autojen, kuorma-autojen jne. Joukon suuremmista ajoneuvoista. Nämä ominaisuudet, jotka määrittelevät autojen, kuorma-autojen jne. Joukon, tunnetaan käsitteinä.

Vastaavasti koneet voivat myös oppia käsitteistä tunnistaakseen, kuuluuko esine tiettyyn luokkaan vai ei. Minkä tahansa joka tukee konseptin oppimista, edellyttää seuraavaa:

  • Harjoittelutiedot
  • Kohde-käsite
  • Todelliset dataobjektit

2. Yleinen hypoteesi



Hypoteesi on yleensä selitys jollekin. Yleisessä hypoteesissa todetaan periaatteessa päämuuttujien välinen yleinen suhde. Esimerkiksi yleinen hypoteesi ruoan tilaamisesta olisi Haluan hampurilaisen.

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

3. Erityinen hypoteesi

Erityinen hypoteesi täyttää kaikki tärkeät yksityiskohdat yleisessä hypoteesissa annetuista muuttujista. Tarkemmat yksityiskohdat yllä olevaan esimerkkiin olisivat Haluan juustohampurilaisen, jossa on broileripippuritäyte, jossa on paljon salaattia.

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

Puhutaan nyt koneoppimisen Find-S-algoritmista.

Find-S-algoritmi noudattaa alla kirjoitettuja vaiheita:

  1. Alusta 'h' tarkimmalle hypoteesille.
  2. Find-S-algoritmi ottaa huomioon vain positiiviset esimerkit ja eliminoi negatiiviset esimerkit. Kunkin positiivisen esimerkin osalta algoritmi tarkistaa jokaisen esimerkin attribuutin. Jos määritteen arvo on sama kuin hypoteesiarvo, algoritmi etenee ilman muutoksia. Mutta jos attribuutin arvo on erilainen kuin hypoteesiarvo, algoritmi muuttaa sen arvoksi '?'.

Nyt kun olemme saaneet Find-S-algoritmin perustiedot, katsotaanpa, miten se toimii.

Kuinka se toimii?

vuokaavio-etsi-algoritmi koneoppimisessa - edureka

  1. Prosessi alkaa h: n alustamisesta tarkimmalla hypoteesilla, yleensä se on ensimmäinen positiivinen esimerkki tietojoukosta.
  2. Tarkistamme jokaisen positiivisen esimerkin. Jos esimerkki on negatiivinen, siirrymme seuraavaan esimerkkiin, mutta jos se on positiivinen, harkitsemme sitä seuraavassa vaiheessa.
  3. Tarkistamme, vastaavatko kukin esimerkin attribuutit hypoteesiarvoa.
  4. Jos arvo on sama, muutoksia ei tehdä.
  5. Jos arvo ei täsmää, arvoksi muutetaan ”?”.
  6. Teemme tämän, kunnes saavutamme viimeisen positiivisen esimerkin tietojoukosta.

Find-S-algoritmin rajoitukset

Alla on lueteltu muutamia rajoituksia Find-S-algoritmille:

  1. Ei ole mitään tapaa määrittää, onko hypoteesi johdonmukainen koko datassa.
  2. Epäjohdonmukaiset harjoitusjoukot voivat itse johtaa harhaan Find-S-algoritmin, koska se jättää huomiotta negatiiviset esimerkit.
  3. Find-S-algoritmi ei tarjoa takaisinkytkentätekniikkaa parhaiden mahdollisten muutosten määrittämiseksi, jotka voitaisiin tehdä saadun hypoteesin parantamiseksi.

Nyt kun olemme tietoisia Find-S-algoritmin rajoituksista, katsokaamme nyt Find-S-algoritmin käytännön toteutusta.

Find-S-algoritmin toteutus

Yritämme ymmärtää toteutusta yrittämällä soveltaa sitä pienempään tietojoukkoon joukolla esimerkkejä päättääksesi, haluako joku kävellä.

miten tehdä joukko esineitä Java

Tämän ongelman käsite on se, mihin päiviin henkilö haluaa kävellä.

Aika Sää Lämpötila Yhtiö Kosteus Tuuli Menee
AamuAurinkoinenLämminJooLieväVahvaJoo
IltaSateinenKylmäEiLieväNormaaliEi
AamuAurinkoinenKohtalainenJooNormaaliNormaaliJoo
IltaAurinkoinenKylmäJooKorkeaVahvaJoo

Tietojoukkoa tarkasteltaessa meillä on kuusi attribuuttia ja lopullinen attribuutti, joka määrittelee positiivisen tai negatiivisen esimerkin. Tässä tapauksessa kyllä ​​on positiivinen esimerkki, mikä tarkoittaa, että henkilö menee kävelylle.

Joten nyt yleinen hypoteesi on:

h0= {'Aamu', 'Aurinkoinen', 'Lämmin', 'Kyllä', 'Lievä', 'Vahva'}

Tämä on yleinen hypoteesi, ja nyt tarkastelemme kutakin esimerkkiä yksi kerrallaan, mutta vain positiivisia esimerkkejä.

hyksi= {'Aamu', 'Aurinkoinen', '?', 'Kyllä', '?', '?'}

h2= {’?’, ’Aurinkoinen’, ’?’, ’Kyllä’, ’?’, ’?’}

Korvasimme kaikki yleisen hypoteesin eri arvot saadaksemme tuloksellisen hypoteesin. Nyt kun tiedämme kuinka Find-S-algoritmi toimii, katsokaamme katsomaan toteutusta Python .

Käytä asia

Yritetään toteuttaa yllä oleva esimerkki käyttämällä . Alla on annettu koodi Find-S-algoritmin toteuttamiseksi yllä olevien tietojen avulla.

tuo pandat pd: ksi tuonti numpy nimellä np # lukeaksesi tietoja csv-tiedostosta data = pd.read_csv ('data.csv') print (data, 'n') #taulukon tekeminen kaikista määritteistä d = np.array (data) [:,: - 1] print ('n Attribuutit ovat:', d) #jakaistaan ​​kohde, jolla on positiivisia ja negatiivisia esimerkkejä target = np.array (data) [:, - 1] print ('n Kohde on: ', target) # koulutustoiminto löytää-s-algoritmin määrittelemiseksi def train (c, t): i: lle, val in enumerate (t): jos val ==' Yes ​​': specific_hypothesis = c [i]. copy () tauko i: lle, val luetellussa (c): jos t [i] == 'Kyllä': x: lle alueella (len (spesifinen_hypoteesi)): jos val [x]! = spesifinen_hypoteesi [x]: spesifinen_hypoteesi [ x] = '?' else: pass return specific_hypothesis # lopullisen hypoteesituloksen saaminen ('n Lopullinen hypoteesi on:', juna (d, kohde))

Tuotos:

Tämä vie meidät tämän artikkelin loppuun, jossa olemme oppineet Find-S-algoritmin Machissaine Learning sen toteuttamis- ja käyttötapauksissa. Toivon, että olet selvillä kaikesta, mitä sinulle on jaettu tässä opetusohjelmassa.

Jos löysit tämän artikkelin aiheesta 'Find-S-algoritmi koneoppimisessa', tutustu artikkeliin luotettava verkko-oppimisyritys, jolla on yli 250 000 tyytyväisen oppijan verkosto, levinneenä ympäri maailmaa.

Autamme sinua matkan jokaisessa vaiheessa ja keksimme opetussuunnitelman, joka on suunniteltu opiskelijoille ja ammattilaisille, jotka haluavat olla . Kurssi on suunniteltu antamaan sinulle etumatka Python-ohjelmointiin ja kouluttamaan sinua sekä ydin- että edistyneille Python-käsitteille yhdessä muiden kanssa Kuten , , jne.

Jos kohtaat kysymyksiä, voit kysyä kaikki kysymyksesi “Find-S-algoritmin koneoppimisessa” -kommenttiosassa, ja tiimimme vastaa mielellään.