Hoe het Find-S-algoritme in machine learning te implementeren?



Dit artikel behandelt het concept van het vind-s-algoritme in machine learning. Het draait om verschillende hypotheseterminologieën met een use case als voorbeeld.

In kan conceptleren worden aangeduid als ' een probleem van het zoeken door een vooraf gedefinieerde ruimte van potentiële hypothesen naar de hypothese die het beste past bij de trainingsvoorbeelden ”- Tom Mitchell. In dit artikel gaan we door een dergelijk concept-leeralgoritme dat bekend staat als het Find-S-algoritme. In dit artikel worden de volgende onderwerpen besproken.

Wat is het Find-S-algoritme in machine learning?

Om het Find-S-algoritme te begrijpen, moet u ook een basisidee hebben van de volgende concepten:





  1. Concept leren
  2. Algemene hypothese
  3. Specifieke hypothese

1. Concept leren

Laten we conceptleren proberen te begrijpen aan de hand van een praktijkvoorbeeld. Het meeste van het menselijk leren is gebaseerd op eerdere gevallen of ervaringen. We zijn bijvoorbeeld in staat om elk type voertuig te identificeren op basis van een bepaalde set kenmerken, zoals merk, model, enz., Die zijn gedefinieerd over een groot aantal functies.



Deze speciale kenmerken onderscheiden de reeks auto's, vrachtwagens, enz. Van de grotere reeks voertuigen. Deze kenmerken die de verzameling auto's, vrachtwagens, enz. Bepalen, worden concepten genoemd.

Op dezelfde manier kunnen machines ook van concepten leren om te bepalen of een object tot een specifieke categorie behoort of niet. Ieder dat conceptleren ondersteunt, vereist het volgende:

  • Trainingsdata
  • Doel concept
  • Werkelijke gegevensobjecten

2. Algemene hypothese



Hypothese is in het algemeen een verklaring voor iets. De algemene hypothese stelt in feite de algemene relatie tussen de belangrijkste variabelen. Een algemene hypothese voor het bestellen van eten zou bijvoorbeeld zijn Ik wil een burger.

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

3. Specifieke hypothese

De specifieke hypothese vult alle belangrijke details over de variabelen die in de algemene hypothese worden gegeven. De meer specifieke details in het bovenstaande voorbeeld zouden zijn Ik wil een cheeseburger met een vulling van kippepperoni met veel sla.

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

Laten we het nu hebben over het Find-S-algoritme in machine learning.

Het Find-S-algoritme volgt de onderstaande stappen:

voorwaarden voor de cursus kunstmatige intelligentie
  1. Initialiseer ‘h’ voor de meest specifieke hypothese.
  2. Het Find-S-algoritme houdt alleen rekening met de positieve voorbeelden en elimineert negatieve voorbeelden. Voor elk positief voorbeeld controleert het algoritme elk kenmerk in het voorbeeld. Als de attribuutwaarde hetzelfde is als de hypothesewaarde, gaat het algoritme verder zonder enige wijziging. Maar als de attribuutwaarde anders is dan de hypothesewaarde, verandert het algoritme deze in ‘?’.

Nu we klaar zijn met de basisuitleg van het Find-S-algoritme, laten we eens kijken hoe het werkt.

Hoe werkt het?

flowchart-find-s-algoritme in machine learning - edureka

  1. Het proces begint met het initialiseren van ‘h’ met de meest specifieke hypothese, over het algemeen is dit het eerste positieve voorbeeld in de dataset.
  2. We controleren voor elk positief voorbeeld. Als het voorbeeld negatief is, gaan we verder met het volgende voorbeeld, maar als het een positief voorbeeld is, zullen we het voor de volgende stap overwegen.
  3. We zullen controleren of elk attribuut in het voorbeeld gelijk is aan de hypothesewaarde.
  4. Als de waarde overeenkomt, worden er geen wijzigingen aangebracht.
  5. Als de waarde niet overeenkomt, wordt de waarde gewijzigd in ‘?’.
  6. We doen dit totdat we het laatste positieve voorbeeld in de dataset bereiken.

Beperkingen van het Find-S-algoritme

Er zijn een paar beperkingen van het Find-S-algoritme dat hieronder wordt vermeld:

  1. Er is geen manier om te bepalen of de hypothese consistent is door de gegevens heen.
  2. Inconsistente trainingssets kunnen het Find-S-algoritme zelfs misleiden, omdat het de negatieve voorbeelden negeert.
  3. Het Find-S-algoritme biedt geen backtracking-techniek om de best mogelijke veranderingen te bepalen die kunnen worden aangebracht om de resulterende hypothese te verbeteren.

Nu we ons bewust zijn van de beperkingen van het Find-S-algoritme, laten we eens kijken naar een praktische implementatie van het Find-S-algoritme.

Implementatie van Find-S-algoritme

Om de implementatie te begrijpen, proberen we het te implementeren in een kleinere dataset met een aantal voorbeelden om te beslissen of iemand een wandeling wil maken.

Het concept van dit specifieke probleem zal zijn op welke dagen iemand graag wandelt.

Tijd Weer Temperatuur Bedrijf Vochtigheid Wind Gaat
OchtendZonnigWarmJaMildSterkJa
AvondRegenachtigVerkoudheidNeeMildNormaalNee
OchtendZonnigMatigJaNormaalNormaalJa
AvondZonnigVerkoudheidJaHoogSterkJa

Als we naar de dataset kijken, hebben we zes attributen en een laatste attribuut dat het positieve of negatieve voorbeeld definieert. In dit geval is ja een positief voorbeeld, wat betekent dat de persoon gaat wandelen.

Dus nu is de algemene hypothese:

h0= {‘Ochtend’, ‘Zonnig’, ‘Warm’, ‘Ja’, ‘Mild’, ‘Sterk’}

Dit is onze algemene hypothese, en nu zullen we elk voorbeeld een voor een bekijken, maar alleen de positieve voorbeelden.

heen= {‘Ochtend’, ‘Zonnig’, ‘?’, ‘Ja’, ‘?’, ‘?’}

h2= {‘?’, ‘Zonnig’, ‘?’, ‘Ja’, ‘?’, ‘?’}

We hebben alle verschillende waarden in de algemene hypothese vervangen om een ​​resulterende hypothese te krijgen. Nu we weten hoe het Find-S-algoritme werkt, kunnen we een implementatie bekijken met Python .

Use Case

Laten we proberen het bovenstaande voorbeeld te implementeren met . De code om het Find-S-algoritme te implementeren met behulp van de bovenstaande gegevens, wordt hieronder gegeven.

importeer panda's als pd importeer numpy als np #om de gegevens in het csv-bestand te lezen data = pd.read_csv ('data.csv') print (data, 'n') #een array maken van alle attributen d = np.array (data) [:,: - 1] print ('n De attributen zijn:', d) #segrageren van het doel met positieve en negatieve voorbeelden target = np.array (data) [:, - 1] print ('n Het doel is: ', target) #training-functie om het vind-s-algoritme te implementeren def train (c, t): for i, val in enumerate (t): if val ==' Yes ​​': specific_hypothesis = c [i]. copy () break voor i, val in enumerate (c): if t [i] == 'Ja': voor x binnen bereik (len (specifieke_hypothese)): if val [x]! = specifieke_hypothese [x]: specifieke_hypothese [ x] = '?' else: pass return specific_hypothesis #obtaining the final hypothesis print ('n The final hypothesis is:', train (d, target))

Uitgang:

Dit brengt ons bij het einde van dit artikel waar we het Find-S-algoritme in Mach hebben geleerdine Learning met de implementatie en use case. Ik hoop dat je duidelijk bent met alles wat in deze tutorial met je is gedeeld.

Als je dit artikel over 'Find-S Algorithm In Machine Learning' relevant vond, bekijk dan het een vertrouwd online leerbedrijf met een netwerk van meer dan 250.000 tevreden leerlingen verspreid over de hele wereld.

We zijn hier om je te helpen bij elke stap op je reis en om een ​​curriculum te bedenken dat is ontworpen voor studenten en professionals die een . De cursus is ontworpen om u een voorsprong te geven in het programmeren van Python en u te trainen in zowel kern- als geavanceerde Python-concepten, samen met verschillende Leuk vinden , , enzovoort.

Mocht u vragen tegenkomen, stel dan gerust al uw vragen in het commentaargedeelte van 'Find-S Algorithm In Machine Learning' en ons team zal u graag antwoorden.