Cum se implementează algoritmul Find-S în învățarea automată?



Acest articol acoperă conceptul algoritmului find-s în învățarea automată. Se învârte în jurul unor terminologii de ipoteze diferite, folosind ca exemplu un caz de utilizare.

În , învățarea conceptului poate fi denumită „ o problemă a căutării printr-un spațiu predefinit de potențială ipoteză a ipotezei care se potrivește cel mai bine exemplelor de instruire ”- Tom Mitchell. În acest articol, vom trece printr-un astfel de algoritm de învățare a conceptului cunoscut sub numele de algoritmul Find-S. Următoarele subiecte sunt discutate în acest articol.

Ce este algoritmul Find-S în învățarea automată?

Pentru a înțelege algoritmul Find-S, trebuie să aveți și o idee de bază asupra următoarelor concepte:





  1. Învățarea conceptului
  2. Ipoteza generală
  3. Ipoteza specifică

1. Învățarea conceptului

Să încercăm să înțelegem învățarea conceptelor cu un exemplu din viața reală. Majoritatea învățării umane se bazează pe instanțe sau experiențe din trecut. De exemplu, putem identifica orice tip de vehicul pe baza unui anumit set de caracteristici, cum ar fi marca, modelul etc., care sunt definite pe un set mare de caracteristici.



Aceste caracteristici speciale diferențiază setul de mașini, camioane etc. de setul mai mare de vehicule. Aceste caracteristici care definesc setul de mașini, camioane etc. sunt cunoscute ca concepte.

Similar cu aceasta, mașinile pot învăța și din concepte pentru a identifica dacă un obiect aparține sau nu unei anumite categorii. Orice care susține învățarea conceptului necesită următoarele:

  • Date de instruire
  • Conceptul țintă
  • Obiecte de date reale

2. Ipoteza generală



Ipoteza, în general, este o explicație pentru ceva. Ipoteza generală afirmă, în principiu, relația generală dintre variabilele majore. De exemplu, o ipoteză generală pentru comandarea alimentelor ar fi Vreau un burger.

browser db pentru recenzie sqlite

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

3. Ipoteza specifică

Ipoteza specifică completează toate detaliile importante despre variabilele date în ipoteza generală. Detaliile mai specifice din exemplul dat mai sus ar fi Vreau un cheeseburger cu o umplutura de pepperoni de pui cu multa salata verde.

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

cum se tipărește în java

Acum, să vorbim despre algoritmul Find-S în învățarea automată.

Algoritmul Find-S urmează pașii de mai jos:

  1. Inițializați „h” la cea mai specifică ipoteză.
  2. Algoritmul Find-S ia în considerare doar exemplele pozitive și elimină exemplele negative. Pentru fiecare exemplu pozitiv, algoritmul verifică fiecare atribut din exemplu. Dacă valoarea atributului este aceeași cu valoarea ipotezei, algoritmul continuă fără modificări. Dar dacă valoarea atributului este diferită de valoarea ipotezei, algoritmul o schimbă în „?”.

Acum, când am terminat cu explicația de bază a algoritmului Find-S, să aruncăm o privire asupra modului în care funcționează.

Cum functioneazã?

algoritmul flowchart-find-s în învățarea automată - edureka

  1. Procesul începe cu inițializarea „h” cu cea mai specifică ipoteză, în general, este primul exemplu pozitiv din setul de date.
  2. Verificăm fiecare exemplu pozitiv. Dacă exemplul este negativ, vom trece la următorul exemplu, dar dacă este un exemplu pozitiv, îl vom lua în considerare pentru pasul următor.
  3. Vom verifica dacă fiecare atribut din exemplu este egal cu valoarea ipotezei.
  4. Dacă valoarea se potrivește, atunci nu se fac modificări.
  5. Dacă valoarea nu se potrivește, valoarea se schimbă în „?”.
  6. Facem acest lucru până când ajungem la ultimul exemplu pozitiv din setul de date.

Limitările algoritmului Find-S

Există câteva limitări ale algoritmului Find-S enumerate mai jos:

  1. Nu există nicio modalitate de a determina dacă ipoteza este consecventă pe parcursul datelor.
  2. Seturile de formare incoerente pot induce în eroare algoritmul Find-S, deoarece ignoră exemplele negative.
  3. Algoritmul Find-S nu oferă o tehnică de backtracking pentru a determina cele mai bune modificări posibile care ar putea fi făcute pentru a îmbunătăți ipoteza rezultată.

Acum, că suntem conștienți de limitările algoritmului Find-S, să aruncăm o privire la o implementare practică a algoritmului Find-S.

Implementarea algoritmului Find-S

Pentru a înțelege implementarea, să încercăm să o implementăm într-un set de date mai mic, cu o grămadă de exemple pentru a decide dacă o persoană dorește să meargă la plimbare.

Conceptul acestei probleme particulare va fi în ce zile îi place unei persoane să meargă pe jos.

Timp Vreme Temperatura Companie Umiditate Vânt Merge
DimineaţăSoareCalddaBlândPuternicda
SearăPloiosReceNuBlândNormalNu
DimineaţăSoareModeratdaNormalNormalda
SearăSoareRecedaÎnaltPuternicda

Privind setul de date, avem șase atribute și un atribut final care definește exemplul pozitiv sau negativ. În acest caz, da este un exemplu pozitiv, ceea ce înseamnă că persoana va ieși la plimbare.

Deci, acum, ipoteza generală este:

h0= {„Dimineața”, „Soare”, „Cald”, „Da”, „ușor”, „puternic”}

Aceasta este ipoteza noastră generală și acum vom lua în considerare fiecare exemplu unul câte unul, dar numai exemplele pozitive.

hunu= {„Dimineață”, „Soare”, „?”, „Da”, „?”, „?”}

h2= {‘?’, ‘Soare’, ‘?’, ‘Da’, ‘?’, ‘?’}

Am înlocuit toate valorile diferite din ipoteza generală pentru a obține o ipoteză rezultată. Acum, că știm cum funcționează algoritmul Find-S, să aruncăm o privire la o implementare folosind Piton .

Utilizare caz

Să încercăm să implementăm exemplul de mai sus folosind . Codul pentru implementarea algoritmului Find-S folosind datele de mai sus este dat mai jos.

import panda ca pd import numpy ca np #pentru a citi datele din fișierul csv (date) [:,: - 1] print ('n Atributele sunt:', d) #segragarea țintei care are exemple pozitive și negative target = np.array (date) [:, - 1] print ('n Ținta este: ', țintă) #funcție de formare pentru a implementa algoritmul find-s def train (c, t): pentru i, val în enumerate (t): if val ==' Da ': specific_hipotez = 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_hipoteză # obținerea tipăririi ipotezei finale ('n Ipoteza finală este:', tren (d, țintă))

Ieșire:

ce este un scaner în java

Acest lucru ne duce la sfârșitul acestui articol, unde am învățat algoritmul Find-S în MachIne Learning cu implementarea și utilizarea cazului său. Sper că ești clar cu tot ce ți-a fost împărtășit în acest tutorial.

Dacă ați găsit relevant acest articol despre „Algoritmul Find-S în învățarea automată”, consultați o companie de învățare online de încredere, cu o rețea de peste 250.000 de elevi mulțumiți răspândiți pe tot globul.

Suntem aici pentru a vă ajuta cu fiecare pas din călătoria dvs. și pentru a veni cu un curriculum care este conceput pentru studenți și profesioniști care doresc să fie un . Cursul este conceput pentru a vă oferi un început avansat în programarea Python și pentru a vă instrui atât pentru conceptele Python de bază, cât și pentru cele avansate, împreună cu diverse ca , , etc.

Dacă întâmpinați orice întrebare, nu ezitați să vă adresați toate întrebările în secțiunea de comentarii din „Algoritmul Find-S în învățarea automată”, iar echipa noastră va răspunde cu plăcere.