I kan begreppsinlärning kallas ” ett problem med att söka igenom ett fördefinierat utrymme med potentiell hypotes för den hypotes som bäst passar träningsexemplen ”- Tom Mitchell. I den här artikeln går vi igenom en sådan konceptinlärningsalgoritm som kallas Find-S-algoritmen. Följande ämnen diskuteras i den här artikeln.
- Vad är Find-S-algoritm i maskininlärning?
- Hur fungerar det?
- Begränsningar av Find-S-algoritmen
- Implementering av Find-S-algoritm
- Användningsfall
Vad är Find-S-algoritm i maskininlärning?
För att förstå Find-S-algoritmen måste du också ha en grundläggande uppfattning om följande begrepp:
- Konceptinlärning
- Allmän hypotes
- Specifik hypotes
1. Konceptinlärning
power bi vs tableau 2016
Låt oss försöka förstå konceptinlärning med ett verkligt exempel. Det mesta av mänskligt lärande bygger på tidigare fall eller erfarenheter. Vi kan till exempel identifiera alla typer av fordon baserat på en viss uppsättning funktioner som märke, modell etc. som definieras över en stor uppsättning funktioner.
Dessa specialfunktioner skiljer uppsättningen bilar, lastbilar etc från den större uppsättningen fordon. Dessa funktioner som definierar uppsättningen bilar, lastbilar osv kallas begrepp.
På liknande sätt kan maskiner också lära av begrepp för att identifiera om ett objekt tillhör en viss kategori eller inte. Några som stöder konceptinlärning kräver följande:
- Utbildningsdata
- Målkoncept
- Faktiska dataobjekt
2. Allmän hypotes
Hypotes är i allmänhet en förklaring till något. Den allmänna hypotesen anger i princip det allmänna sambandet mellan de stora variablerna. Till exempel skulle en allmän hypotes för att beställa mat vara Jag vill ha en hamburgare.
G = {'?', '?', '?', ... .. '?'}
3. Specifik hypotes
Den specifika hypotesen fyller i alla viktiga detaljer om variablerna som ges i den allmänna hypotesen. De mer specifika detaljerna i exemplet ovan skulle vara Jag vill ha en ostburgare med en kycklingpepperonifyllning med mycket sallad.
S = {‘& Phi’, ‘& Phi ',' & Phi ', ……,' & Phi '}
hur konverterar man dubbel till int
Låt oss nu prata om Find-S-algoritmen inom maskininlärning.
Find-S-algoritmen följer stegen nedan:
- Initiera 'h' till den mest specifika hypotesen.
- Find-S-algoritmen beaktar bara de positiva exemplen och eliminerar negativa exempel. För varje positivt exempel kontrollerar algoritmen efter varje attribut i exemplet. Om attributvärdet är detsamma som hypotesvärdet går algoritmen vidare utan några ändringar. Men om attributvärdet skiljer sig från hypotesvärdet ändras algoritmen till '?'.
Nu när vi är klara med den grundläggande förklaringen av Find-S-algoritmen, låt oss ta en titt på hur den fungerar.
Hur fungerar det?
- Processen börjar med att initialisera 'h' med den mest specifika hypotesen, i allmänhet är det det första positiva exemplet i datamängden.
- Vi kontrollerar för varje positivt exempel. Om exemplet är negativt kommer vi att gå vidare till nästa exempel men om det är ett positivt exempel kommer vi att överväga det för nästa steg.
- Vi kommer att kontrollera om varje attribut i exemplet är lika med hypotesvärdet.
- Om värdet matchar görs inga ändringar.
- Om värdet inte matchar ändras värdet till '?'.
- Vi gör detta tills vi når det sista positiva exemplet i datamängden.
Begränsningar av Find-S-algoritmen
Det finns några begränsningar för Find-S-algoritmen nedan:
- Det finns inget sätt att avgöra om hypotesen är konsekvent genom hela datan.
- Inkonsekventa träningssatser kan faktiskt vilseleda Find-S-algoritmen, eftersom den ignorerar de negativa exemplen.
- Find-S-algoritmen ger ingen backtracking-teknik för att bestämma de bästa möjliga förändringarna som kan göras för att förbättra den resulterande hypotesen.
Nu när vi är medvetna om begränsningarna i Find-S-algoritmen, låt oss ta en titt på en praktisk implementering av Find-S-algoritmen.
Implementering av Find-S-algoritm
För att förstå implementeringen, låt oss försöka implementera den till en mindre datamängd med en massa exempel för att avgöra om en person vill gå en promenad.
Konceptet med detta specifika problem kommer att vara på vilka dagar en person gillar att gå på promenad.
Tid | Väder | Temperatur | Företag | Fuktighet | Vind | Går |
Morgon | Solig | Värma | Ja | Mild | Stark | Ja |
Kväll | Regnig | Kall | Nej | Mild | Vanligt | Nej |
Morgon | Solig | Måttlig | Ja | Vanligt | Vanligt | Ja |
Kväll | Solig | Kall | Ja | Hög | Stark | Ja |
När vi tittar på datamängden har vi sex attribut och ett slutligt attribut som definierar det positiva eller negativa exemplet. I det här fallet är ja ett positivt exempel, vilket innebär att personen går en promenad.
Så nu är den allmänna hypotesen:
h0= {'Morgon', 'Soligt', 'Varmt', 'Ja', 'Milt', 'Starkt'}
Detta är vår allmänna hypotes, och nu kommer vi att betrakta varje exempel en efter en, men bara de positiva exemplen.
hett= {'Morgon', 'Soligt', '?', 'Ja', '?', '?'}
h2= {'?', 'Sunny', '?', 'Yes', '?', '?'}
Vi ersatte alla de olika värdena i den allmänna hypotesen för att få en resulterande hypotes. Nu när vi vet hur Find-S-algoritmen fungerar, låt oss ta en titt på en implementering med Pytonorm .
Användningsfall
Låt oss försöka implementera ovanstående exempel med . Koden för att implementera Find-S-algoritmen med ovanstående data ges nedan.
importera pandor som pd importera numpy som np # för att läsa data i csv-fildata = pd.read_csv ('data.csv') skriva ut (data, 'n') # skapa en matris med alla attribut d = np.array (data) [:,: - 1] print ('n Attributen är:', d) #segragering av målet som har positiva och negativa exempel target = np.array (data) [:, - 1] print ('n Målet är: ', target) #träningsfunktion för att implementera find-s algoritm def train (c, t): för i, val i enumerate (t): if val ==' Yes ': specific_hypothesis = c [i]. kopiera () bryta för i, val i uppräkning (c): om t [i] == 'Ja': för x inom intervallet (len (specifik_hypotes)): om val [x]! = specifik_hypotes [x]: specifik_hypotes [ x] = '?' annat: skicka retur specifik_hypotes # att få den slutliga hypotesutskriften ('n Den slutliga hypotesen är:', träna (d, mål))
Produktion:
vad är en virtuell metod
Detta leder oss till slutet av den här artikeln där vi har lärt oss Find-S-algoritmen i Machine Learning med dess implementering och användningsfall. Jag hoppas att du är tydlig med allt som har delats med dig i denna handledning.
Om du tyckte att den här artikeln om ”Find-S algoritm i maskininlärning” var relevant, kolla in ett pålitligt online-lärande företag med ett nätverk med mer än 250 000 nöjda elever spridda över hela världen.
Vi är här för att hjälpa dig med varje steg på din resa och komma med en läroplan som är utformad för studenter och yrkesverksamma som vill vara en . Kursen är utformad för att ge dig ett försprång till Python-programmering och träna dig för både kärn- och avancerade Python-koncept tillsammans med olika tycka om , , etc.
Om du stöter på några frågor är du välkommen att ställa alla dina frågor i kommentarsektionen i 'Find-S Algorithm In Machine Learning' så svarar vårt team gärna.