Kuidas rakendada Find-S algoritmi masinõppes?



See artikkel käsitleb leidude algoritmi kontseptsiooni masinõppes. See pöörleb erinevate hüpoteesiterminoloogiate ümber, kasutades näiteks juhtumit.

Sisse , mõistete õppimist võib nimetada koolitusnäidetega kõige paremini sobiva hüpoteesi eelnevalt määratletud potentsiaalsete hüpoteeside ruumi otsimise probleem ”- Tom Mitchell. Selles artiklis käsitleme ühte sellist mõistete õppimise algoritmi, mida nimetatakse Find-S algoritmiks. Selles artiklis käsitletakse järgmisi teemasid.

Mis on Find-S algoritm masinõppes?

Find-S algoritmi mõistmiseks peate omama põhiideed ka järgmistest mõistetest:





  1. Mõiste õppimine
  2. Üldine hüpotees
  3. Spetsiifiline hüpotees

1. Mõiste õppimine

Proovime mõista kontseptsioonide õppimist reaalse näite abil. Suurem osa inimese õppimisest põhineb varasematel juhtumitel või kogemustel. Näiteks suudame tuvastada mis tahes sõidukitüübi teatud omaduste põhjal, nagu mark, mudel jne, mis on määratletud suure hulga funktsioonide põhjal.



Need eripärad eristavad autode, veoautode jne komplekti suuremast sõidukikomplektist. Neid funktsioone, mis määratlevad autode, veoautode jne komplekti, nimetatakse mõisteteks.

Sarnaselt sellele saavad masinad õppida ka mõistetest, et teha kindlaks, kas objekt kuulub konkreetsesse kategooriasse või mitte. Ükskõik mis toetab kontseptsiooni õppimist, on vaja

  • Treeningu andmed
  • Sihtkontseptsioon
  • Tegelikud andmeobjektid

2. Üldine hüpotees



Hüpotees on üldiselt millegi seletus. Üldhüpotees kinnitab põhimuutujate vahelist üldist suhet. Näiteks oleks üldine hüpotees toidu tellimiseks Ma tahan burgerit.

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

3. Spetsiifiline hüpotees

Konkreetne hüpotees täidab kõik olulised üksikasjad üldhüpoteesis toodud muutujate kohta. Täpsemad üksikasjad ülaltoodud näites oleksid Ma tahan juustuburgerit kana pepperoni täidisega, kus on palju salatit.

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

Räägime nüüd masinõppe Find-S algoritmist.

kuidas Java-s programm lõpetada

Find-S algoritm järgib allpool kirjutatud samme:

  1. Initsialiseerige h kõige täpsema hüpoteesi järgi.
  2. Find-S algoritm võtab arvesse ainult positiivseid näiteid ja välistab negatiivsed näited. Iga positiivse näite puhul kontrollib algoritm kõiki näites olevaid atribuute. Kui atribuudi väärtus on sama kui hüpoteesi väärtus, liigub algoritm muutusteta edasi. Kuid kui atribuudi väärtus erineb hüpoteesi väärtusest, muudab algoritm selle väärtuseks?

Nüüd, kui oleme Find-S algoritmi põhilise selgitusega valmis saanud, heitkem pilk selle toimimisele.

Kuidas see töötab?

vooskeem-leid-algoritm masinõppes - edureka

  1. Protsess algab „h” initsialiseerimisega kõige spetsiifilisema hüpoteesiga, üldiselt on see andmekogumis esimene positiivne näide.
  2. Kontrollime iga positiivse näite olemasolu. Kui näide on negatiivne, liigume järgmise näite juurde, kuid kui see on positiivne näide, kaalume seda järgmise sammuna.
  3. Kontrollime, kas näites on iga atribuut võrdne hüpoteesi väärtusega.
  4. Kui väärtus ühtib, siis muudatusi ei tehta.
  5. Kui väärtus ei ühti, muudetakse väärtuseks?
  6. Teeme seda seni, kuni jõuame andmestiku viimase positiivse näiteni.

Find-S algoritmi piirangud

Allpool on loetletud mõned Find-S algoritmi piirangud:

  1. Ei ole kuidagi võimalik kindlaks teha, kas hüpotees on kogu andmete osas järjepidev.
  2. Vastuolulised treeningukomplektid võivad tegelikult Find-S algoritmi eksitada, kuna see eirab negatiivseid näiteid.
  3. Find-S algoritm ei paku tagasitee tehnikat parimate võimalike muudatuste kindlakstegemiseks, mida saaks sellest tuleneva hüpoteesi parandamiseks teha.

Nüüd, kui oleme teadlikud Find-S algoritmi piirangutest, heitkem pilk Find-S algoritmi praktilisele rakendamisele.

Find-S algoritmi rakendamine

Rakenduse mõistmiseks proovime seda rakendada väiksema andmekogumi hulgaga näiteid, et otsustada, kas inimene soovib jalutama minna.

Selle konkreetse probleemi mõte on see, millistel päevadel meeldib inimesele jalutada.

Aeg Ilm Temperatuur Firma Niiskus Tuul Läheb
HommikPäikselineSoeJahKergeTugevJah
ÕhtuVihmaneKülmEiKergeNormaalneEi
HommikPäikselineMõõdukasJahNormaalneNormaalneJah
ÕhtuPäikselineKülmJahKõrgeTugevJah

Andmekogumit vaadates on meil kuus atribuuti ja viimane atribuut, mis määratleb positiivse või negatiivse näite. Sel juhul on jah positiivne näide, mis tähendab, et inimene läheb jalutama.

Nüüd on üldine hüpotees järgmine:

h0= {„Hommik”, „Päikeseline”, „Soe”, „Jah”, „Kerge”, „Tugev”}

See on meie üldine hüpotees ja nüüd kaalume iga näidet ükshaaval, kuid ainult positiivseid näiteid.

hüks= {'Hommik', 'Päikeseline', '?', 'Jah', '?', '?'}

h2= {'?', 'Päikeseline', '?', 'Jah', '?', '?'}

Tulemusliku hüpoteesi saamiseks asendasime kõik üldise hüpoteesi erinevad väärtused. Nüüd, kui me teame, kuidas Find-S algoritm töötab, vaatame rakendust, kasutades seda Python .

Kasuta juhtumit

Proovime ülaltoodud näite rakendada . Kood, mis võimaldab ülaltoodud andmeid kasutades rakendada algoritmi Find-S, on toodud allpool.

impordi pandad pd-na impordi numpy nimega np # csv-faili andmete lugemiseks data = pd.read_csv ('data.csv') print (data, 'n') # kõigi atribuutide massiivi loomine (andmed) [:,: - 1] print ('n Atribuudid on:', d) #grupeeritakse sihtmärk, millel on positiivseid ja negatiivseid näiteid target = np.array (andmed) [:, - 1] print ('n Sihtmärk on: ', target) # koolitusfunktsioon leidude algoritmi def rongi (c, t) rakendamiseks: i jaoks, val loendis (t): kui val ==' Jah ': konkreetne_hüpotees = c [i]. copy () murda i, val loendis (c): kui t [i] == 'Jah': x vahemikus (len (spetsiifiline_hüpotees)): kui val [x]! = spetsiifiline_hüpotees [x]: spetsiifiline_hüpotees [ x] = '?' else: pass return specific_hypothesis # lõpliku hüpoteesitrüki saamine ('n Lõplik hüpotees on:', rong (d, sihtmärk))

Väljund:

See viib meid selle artikli lõppu, kus oleme õppinud Machi Find-S algoritmiine Õppimine selle rakendamise ja kasutamise juhtumiga. Loodan, et teil on selge kõik see, mida teiega selles õpetuses on jagatud.

Kui leiate, et see artikkel „Find-S algoritm masinõppes” on asjakohane, vaadake järgmist usaldusväärne veebiõppeettevõte, mille võrgustik sisaldab üle 250 000 rahuloleva õppija, levis üle kogu maailma.

Oleme siin, et aidata teid igal sammul oma teekonnal ja koostada õppekava, mis on mõeldud üliõpilastele ja spetsialistidele, kes soovivad olla . Kursus on loodud selleks, et anda teile algus Pythoni programmeerimises ja õpetada teid nii Pythoni põhi- kui ka edasijõudnute mõistete jaoks koos erinevate võimalustega meeldib , , jne.

Kui teil tekib küsimusi, küsige julgelt kõiki küsimusi jaotise „Find-S algoritm masinõppes” kommentaaride osas ja meie meeskond vastab sellele hea meelega.