Sådan implementeres Find-S algoritme i maskinindlæring?



Denne artikel dækker begrebet find-s algoritme i maskinindlæring. Det drejer sig om forskellige hypoteseterminologier ved hjælp af en brugssag som et eksempel.

I , kan begrebslæring betegnes som “ et problem med at søge gennem et foruddefineret rum med potentiel hypotese efter den hypotese, der bedst passer til træningseksemplerne ”- Tom Mitchell. I denne artikel gennemgår vi en sådan konceptindlæringsalgoritme kendt som Find-S-algoritmen. Følgende emner diskuteres i denne artikel.

Hvad er Find-S algoritme i maskinindlæring?

For at forstå Find-S algoritme skal du også have en grundlæggende idé om følgende begreber:





  1. Konceptlæring
  2. Generel hypotese
  3. Specifik hypotese

1. Konceptlæring

Lad os prøve at forstå konceptindlæring med et eksempel på det virkelige liv. Det meste af menneskelig læring er baseret på tidligere forekomster eller oplevelser. For eksempel er vi i stand til at identificere enhver type køretøj baseret på et bestemt sæt funktioner som mærke, model osv., Der er defineret over et stort sæt funktioner.



Disse særlige funktioner adskiller sæt biler, lastbiler osv. Fra det større sæt køretøjer. Disse funktioner, der definerer sæt af biler, lastbiler osv. Er kendt som begreber.

I lighed med dette kan maskiner også lære af begreber for at identificere, om et objekt tilhører en bestemt kategori eller ej. Nogen der understøtter konceptindlæring kræver følgende:

  • Træningsdata
  • Målkoncept
  • Faktiske dataobjekter

2. Generel hypotese



Hypotese er generelt en forklaring på noget. Den generelle hypotese angiver grundlæggende det generelle forhold mellem de store variabler. For eksempel ville en generel hypotese for at bestille mad være Jeg vil have en burger.

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

3. Specifik hypotese

Den specifikke hypotese udfylder alle vigtige detaljer om variablerne i den generelle hypotese. De mere specifikke detaljer i eksemplet ovenfor er Jeg vil have en cheeseburger med en kylling pepperoni fyldning med en masse salat.

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

Lad os nu tale om Find-S-algoritmen i maskinindlæring.

Find-S-algoritmen følger nedenstående trin:

  1. Initialiser 'h' til den mest specifikke hypotese.
  2. Find-S-algoritmen tager kun de positive eksempler i betragtning og fjerner negative eksempler. For hvert positivt eksempel kontrollerer algoritmen for hver attribut i eksemplet. Hvis attributværdien er den samme som hypoteseværdien, går algoritmen videre uden ændringer. Men hvis attributværdien er forskellig fra hypoteseværdien, ændrer algoritmen den til '?'.

Nu hvor vi er færdige med den grundlæggende forklaring på Find-S-algoritmen, lad os se på, hvordan det fungerer.

Hvordan virker det?

flowchart-find-s algoritme i maskinindlæring - edureka

  1. Processen starter med at initialisere 'h' med den mest specifikke hypotese, generelt er det det første positive eksempel i datasættet.
  2. Vi kontrollerer for hvert positivt eksempel. Hvis eksemplet er negativt, går vi videre til det næste eksempel, men hvis det er et positivt eksempel, overvejer vi det til næste trin.
  3. Vi kontrollerer, om hver attribut i eksemplet er lig hypoteseværdien.
  4. Hvis værdien matcher, foretages der ingen ændringer.
  5. Hvis værdien ikke stemmer overens, ændres værdien til '?'.
  6. Vi gør dette, indtil vi når det sidste positive eksempel i datasættet.

Begrænsninger af Find-S algoritme

Der er et par begrænsninger af Find-S-algoritmen, der er anført nedenfor:

hvad er .format i python
  1. Der er ingen måde at afgøre, om hypotesen er konsistent gennem dataene.
  2. Inkonsekvente træningssæt kan faktisk vildlede Find-S-algoritmen, da den ignorerer de negative eksempler.
  3. Find-S-algoritmen giver ikke en backtracking-teknik til at bestemme de bedst mulige ændringer, der kan gøres for at forbedre den resulterende hypotese.

Nu hvor vi er opmærksomme på begrænsningerne i Find-S-algoritmen, skal vi se på en praktisk implementering af Find-S-algoritmen.

Implementering af Find-S algoritme

For at forstå implementeringen, lad os prøve at implementere den i et mindre datasæt med en masse eksempler for at afgøre, om en person vil gå en tur.

Konceptet med dette særlige problem vil være på hvilke dage en person kan lide at gå på tur.

Tid Vejr Temperatur Selskab Fugtighed Vind Går
MorgenSolrigVarmJaMildStærkJa
AftenRegnfuldKoldIngenMildNormalIngen
MorgenSolrigModeratJaNormalNormalJa
AftenSolrigKoldJaHøjStærkJa

Når vi ser på datasættet, har vi seks attributter og en endelig attribut, der definerer det positive eller negative eksempel. I dette tilfælde er ja et positivt eksempel, hvilket betyder, at personen vil gå en tur.

Så nu er den generelle hypotese:

h0= {'Morgen', 'Solrig', 'Varm', 'Ja', 'Mild', 'Stærk'}

Dette er vores generelle hypotese, og nu vil vi overveje hvert eksempel en efter en, men kun de positive eksempler.

hen= {'Morgen', 'Solrig', '?', 'Ja', '?', '?'}

h2= {'?', 'Sunny', '?', 'Yes', '?', '?'}

Vi erstattede alle de forskellige værdier i den generelle hypotese for at få en resulterende hypotese. Nu hvor vi ved, hvordan Find-S-algoritmen fungerer, så lad os se på en implementering ved hjælp af Python .

Brug sag

Lad os prøve at implementere ovenstående eksempel ved hjælp af . Koden til implementering af Find-S-algoritmen ved hjælp af ovenstående data er angivet nedenfor.

importer pandaer som pd import numpy som np #for at læse dataene i csv-fildata = pd.read_csv ('data.csv') print (data, 'n') # skabe en matrix med alle attributter d = np.array (data) [:,: - 1] print ('n Attributterne er:', d) #segragering af det mål, der har positive og negative eksempler target = np.array (data) [:, - 1] print ('n Målet er: ', target) # træningsfunktion til implementering af find-s algoritme def train (c, t): for i, val i enumerate (t): if val ==' Yes ​​': specific_hypothesis = c [i]. copy () break for i, val i enumerate (c): if t [i] == 'Yes': for x in range (len (specific_hypothesis)): if val [x]! = specific_hypothesis [x]: specific_hypothesis [ x] = '?' andet: videregive retur specifik_hypotese #opnå den endelige hypoteseudskrivning ('n Den endelige hypotese er:', tog (d, mål))

Produktion:

Dette bringer os til slutningen af ​​denne artikel, hvor vi har lært Find-S-algoritmen i Machine Learning med dens implementering og brugssag. Jeg håber, du er klar med alt, hvad der er delt med dig i denne vejledning.

Hvis du fandt denne artikel om “Find-S algoritme i maskinindlæring” relevant, skal du tjekke et betroet online læringsfirma med et netværk på mere end 250.000 tilfredse elever spredt over hele kloden.

Vi er her for at hjælpe dig med hvert trin på din rejse og komme med en læseplan, der er designet til studerende og fagfolk, der ønsker at være en . Kurset er designet til at give dig et forspring i Python-programmering og træne dig til både kerne- og avancerede Python-koncepter sammen med forskellige synes godt om , , etc.

Hvis du støder på spørgsmål, er du velkommen til at stille alle dine spørgsmål i kommentarfeltet i “Find-S algoritme i maskinlæring”, og vores team vil med glæde svare.