Come implementare l'algoritmo Find-S nell'apprendimento automatico?



Questo articolo copre il concetto di algoritmo find-s nell'apprendimento automatico. Ruota intorno a varie terminologie di ipotesi utilizzando un caso d'uso come esempio.

Nel , l'apprendimento concettuale può essere definito come ' un problema di ricerca attraverso uno spazio predefinito di ipotesi potenziali per l'ipotesi che meglio si adatta agli esempi di formazione ”- Tom Mitchell. In questo articolo, esamineremo uno di questi algoritmi di apprendimento concettuale noto come algoritmo Find-S. I seguenti argomenti vengono discussi in questo articolo.

Che cos'è l'algoritmo Find-S nell'apprendimento automatico?

Per comprendere l'algoritmo Find-S, è necessario avere anche un'idea di base dei seguenti concetti:





  1. Apprendimento del concetto
  2. Ipotesi generale
  3. Ipotesi specifica

1. Apprendimento del concetto

Proviamo a comprendere l'apprendimento concettuale con un esempio di vita reale. La maggior parte dell'apprendimento umano si basa su istanze o esperienze passate. Ad esempio, siamo in grado di identificare qualsiasi tipo di veicolo in base a un certo insieme di caratteristiche come marca, modello, ecc., Che sono definite su un ampio insieme di caratteristiche.



Queste caratteristiche speciali differenziano il set di auto, camion, ecc. Dal set più ampio di veicoli. Queste caratteristiche che definiscono l'insieme di automobili, camion, ecc. Sono note come concetti.

Allo stesso modo, le macchine possono anche imparare dai concetti per identificare se un oggetto appartiene o meno a una categoria specifica. Qualunque che supporta l'apprendimento concettuale richiede quanto segue:

  • Dati di allenamento
  • Concetto di destinazione
  • Oggetti dati effettivi

2. Ipotesi generale



L'ipotesi, in generale, è una spiegazione per qualcosa. L'ipotesi generale afferma sostanzialmente la relazione generale tra le principali variabili. Ad esempio, un'ipotesi generale per ordinare il cibo sarebbe Voglio un hamburger.

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

3. Ipotesi specifica

L'ipotesi specifica riempie tutti i dettagli importanti sulle variabili date nell'ipotesi generale. I dettagli più specifici nell'esempio fornito sopra sarebbero Voglio un cheeseburger con peperoni di pollo ripieno di molta lattuga.

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

Ora parliamo dell'algoritmo Find-S nel machine learning.

L'algoritmo Find-S segue i passaggi scritti di seguito:

download gratuito di pdf tutorial per principianti informatica
  1. Inizializza 'h' all'ipotesi più specifica.
  2. L'algoritmo Find-S considera solo gli esempi positivi ed elimina gli esempi negativi. Per ogni esempio positivo, l'algoritmo verifica ogni attributo nell'esempio. Se il valore dell'attributo è uguale al valore dell'ipotesi, l'algoritmo procede senza modifiche. Ma se il valore dell'attributo è diverso dal valore dell'ipotesi, l'algoritmo lo modifica in '?'.

Ora che abbiamo finito con la spiegazione di base dell'algoritmo Find-S, diamo un'occhiata a come funziona.

Come funziona?

algoritmo flowchart-find-s nell

  1. Il processo inizia con l'inizializzazione di 'h' con l'ipotesi più specifica, generalmente, è il primo esempio positivo nel set di dati.
  2. Controlliamo ogni esempio positivo. Se l'esempio è negativo, passeremo all'esempio successivo, ma se è positivo lo considereremo per il passaggio successivo.
  3. Verificheremo se ogni attributo nell'esempio è uguale al valore dell'ipotesi.
  4. Se il valore corrisponde, non vengono apportate modifiche.
  5. Se il valore non corrisponde, il valore viene modificato in '?'.
  6. Lo facciamo fino a raggiungere l'ultimo esempio positivo nel set di dati.

Limitazioni dell'algoritmo Find-S

Esistono alcune limitazioni dell'algoritmo Find-S elencato di seguito:

  1. Non è possibile determinare se l'ipotesi è coerente in tutti i dati.
  2. Insiemi di addestramento incoerenti possono effettivamente fuorviare l'algoritmo Find-S, poiché ignora gli esempi negativi.
  3. L'algoritmo Find-S non fornisce una tecnica di backtracking per determinare i migliori cambiamenti possibili che potrebbero essere fatti per migliorare l'ipotesi risultante.

Ora che siamo consapevoli dei limiti dell'algoritmo Find-S, diamo uno sguardo all'implementazione pratica dell'algoritmo Find-S.

Implementazione dell'algoritmo Find-S

Per comprendere l'implementazione, proviamo a implementarla su un set di dati più piccolo con una serie di esempi per decidere se una persona vuole fare una passeggiata.

come stampare array in php

Il concetto di questo particolare problema sarà in quali giorni una persona ama andare a camminare.

Tempo Tempo metereologico Temperatura Azienda Umidità Vento Va
MattinaSoleggiatoCaldoMiteForte
SeraPiovosoFreddoNoMiteNormaleNo
MattinaSoleggiatoModerareNormaleNormale
SeraSoleggiatoFreddoAltoForte

Guardando il set di dati, abbiamo sei attributi e un attributo finale che definisce l'esempio positivo o negativo. In questo caso, sì è un esempio positivo, il che significa che la persona andrà a fare una passeggiata.

Quindi ora, l'ipotesi generale è:

h0= {'Mattina', 'Soleggiato', 'Caldo', 'Sì', 'Mite', 'Forte'}

Questa è la nostra ipotesi generale, e ora considereremo ogni esempio uno per uno, ma solo gli esempi positivi.

huno= {'Mattina', 'Sole', '?', 'Sì', '?', '?'}

h2= {'?', 'Sunny', '?', 'Sì', '?', '?'}

Abbiamo sostituito tutti i diversi valori nell'ipotesi generale per ottenere un'ipotesi risultante. Ora che sappiamo come funziona l'algoritmo Find-S, diamo un'occhiata a un'implementazione che utilizza Pitone .

Caso d'uso

Proviamo a implementare l'esempio precedente utilizzando . Il codice per implementare l'algoritmo Find-S utilizzando i dati precedenti è fornito di seguito.

importa panda come pd importa numpy come np # per leggere i dati nel file csv data = pd.read_csv ('data.csv') print (dati, 'n') # creare un array di tutti gli attributi d = np.array (dati) [:,: - 1] print ('n Gli attributi sono:', d) #segragando l'obiettivo che ha esempi positivi e negativi target = np.array (dati) [:, - 1] print ('n L'obiettivo è: ', target) #training function per implementare l'algoritmo find-s def train (c, t): for i, val in enumerate (t): if val ==' Yes ​​': specific_hypothesis = 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_hypothesis #ottenere l'ipotesi finale print ('n L'ipotesi finale è:', train (d, target))

Produzione:

Questo ci porta alla fine di questo articolo in cui abbiamo imparato l'algoritmo Find-S in Machine Learning con la sua implementazione e il caso d'uso. Spero che tu sia chiaro con tutto ciò che è stato condiviso con te in questo tutorial.

Se hai trovato pertinente questo articolo su 'Find-S Algorithm In Machine Learning', controlla il una società di formazione online affidabile con una rete di oltre 250.000 studenti soddisfatti sparsi in tutto il mondo.

Siamo qui per aiutarti in ogni fase del tuo viaggio e per elaborare un curriculum progettato per studenti e professionisti che vogliono essere un . Il corso è progettato per darti un vantaggio nella programmazione Python e addestrarti per i concetti di base e avanzati di Python insieme a vari piace , , eccetera.

In caso di domande, non esitare a porre tutte le tue domande nella sezione commenti di 'Algoritmo Find-S in Machine Learning' e il nostro team sarà lieto di rispondere.