Com implementar l'algorisme Find-S en l'aprenentatge automàtic?



Aquest article tracta el concepte d'algorisme find-s en l'aprenentatge automàtic. Gira al voltant de diverses terminologies d’hipòtesis amb un cas d’ús com a exemple.

En , l'aprenentatge conceptual es pot anomenar com ' un problema de cerca a través d’un espai predefinit d’hipòtesi potencial per trobar la hipòtesi que s’adapti millor als exemples de formació ”- Tom Mitchell. En aquest article, examinarem un algorisme d’aprenentatge d’aquest concepte conegut com l’algorisme Find-S. Els temes següents es tracten en aquest article.

Què és l'algorisme Find-S en l'aprenentatge automàtic?

Per entendre l'algorisme Find-S, també heu de tenir una idea bàsica dels conceptes següents:





  1. Aprenentatge conceptual
  2. Hipòtesi general
  3. Hipòtesi específica

1. Aprenentatge conceptual

Intentem comprendre l'aprenentatge conceptual amb un exemple de la vida real. La major part de l’aprenentatge humà es basa en casos o experiències passades. Per exemple, podem identificar qualsevol tipus de vehicle basat en un determinat conjunt de funcions, com ara marca, model, etc., que es defineixen sobre un conjunt gran de funcions.



Aquestes característiques especials diferencien el conjunt de cotxes, camions, etc. del conjunt de vehicles més gran. Aquestes característiques que defineixen el conjunt de cotxes, camions, etc. es coneixen com a conceptes.

De manera similar, les màquines també poden aprendre dels conceptes per identificar si un objecte pertany a una categoria específica o no. Cap que admeti l'aprenentatge conceptual requereix el següent:

  • Dades de formació
  • Concepte de destinació
  • Objectes de dades reals

2. Hipòtesi general



La hipòtesi, en general, és una explicació d’alguna cosa. La hipòtesi general estableix bàsicament la relació general entre les variables principals. Per exemple, seria una hipòtesi general per demanar aliments Vull una hamburguesa.

passant arguments de línia d'ordres a Java

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

3. Hipòtesi específica

La hipòtesi específica completa tots els detalls importants sobre les variables donades a la hipòtesi general. Els detalls més específics de l'exemple anterior es donarien Vull una hamburguesa de formatge amb un farcit de pebrot de pollastre amb molt d’enciam.

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

com compilar un programa Java

Ara, parlem de l’algorisme Find-S en aprenentatge automàtic.

L’algorisme Find-S segueix els passos que s’escriuen a continuació:

  1. Inicialitzeu ‘h’ a la hipòtesi més específica.
  2. L’algorisme Find-S només considera els exemples positius i elimina els exemples negatius. Per a cada exemple positiu, l'algorisme comprova cada atribut de l'exemple. Si el valor de l'atribut és el mateix que el valor de la hipòtesi, l'algoritme continua sense canvis. Però si el valor de l'atribut és diferent del valor de la hipòtesi, l'algoritme el canvia a '?'.

Ara que hem acabat amb l'explicació bàsica de l'algorisme Find-S, fem una ullada al seu funcionament.

Com funciona?

algoritme flowchart-find-s en aprenentatge automàtic - edureka

  1. El procés comença amb la inicialització de ‘h’ amb la hipòtesi més específica, generalment, és el primer exemple positiu del conjunt de dades.
  2. Comprovem cada exemple positiu. Si l'exemple és negatiu, passarem al següent exemple, però si és un exemple positiu, el considerarem per al següent pas.
  3. Comprovarem si cada atribut de l’exemple és igual al valor de la hipòtesi.
  4. Si el valor coincideix, no es realitzaran canvis.
  5. Si el valor no coincideix, el valor es canvia a '?'.
  6. Ho fem fins a arribar a l'últim exemple positiu del conjunt de dades.

Limitacions de l'algorisme Find-S

A continuació, es detallen algunes de les limitacions de l'algorisme Find-S:

  1. No hi ha manera de determinar si la hipòtesi és coherent en totes les dades.
  2. Els conjunts d'entrenament incoherents poden enganyar l'algorisme Find-S, ja que ignora els exemples negatius.
  3. L’algorisme Find-S no proporciona una tècnica de retrocés per determinar els millors canvis possibles que es podrien fer per millorar la hipòtesi resultant.

Ara que som conscients de les limitacions de l'algorisme Find-S, donem un cop d'ull a una implementació pràctica de l'algorisme Find-S.

Implementació de l'algorisme Find-S

Per entendre la implementació, intentem implementar-la en un conjunt de dades més petit amb un munt d’exemples per decidir si una persona vol anar a caminar.

El concepte d’aquest problema en particular serà en quins dies li agrada anar a caminar a una persona.

Temps El temps Temperatura Empresa Humitat Vent Va
MatíAssolellatCalentLleuFort
VesprePlujósRefredatnoLleuNormalno
MatíAssolellatModeratNormalNormal
VespreAssolellatRefredatAltFort

Si mirem el conjunt de dades, tenim sis atributs i un atribut final que defineix l’exemple positiu o negatiu. En aquest cas, sí, és un exemple positiu, la qual cosa significa que la persona anirà a passejar.

Ara, la hipòtesi general és:

h0= {'Matí', 'Assolellat', 'Calent', 'Sí', 'Suau', 'Fort'}

Aquesta és la nostra hipòtesi general i ara considerarem cada exemple un per un, però només els exemples positius.

h1= {'Matí', 'Assolellat', '?', 'Sí', '?', '?'}

h2= {‘?’, ‘Sunny’, ‘?’, ‘Yes’, ‘?’, ‘?’}

Hem substituït tots els diferents valors de la hipòtesi general per obtenir una hipòtesi resultant. Ara que sabem com funciona l'algorisme Find-S, fem una ullada a una implementació mitjançant Python .

Cas d'ús

Intentem implementar l'exemple anterior mitjançant . A continuació es mostra el codi per implementar l'algorisme Find-S mitjançant les dades anteriors.

importa pandes com pd importa numpy com np # per llegir les dades del fitxer csv data = pd.read_csv ('data.csv') imprimir (dades, 'n') # fer una matriu de tots els atributs d = np.array (dades) [:,: - 1] print ('n Els atributs són:', d) #segragant l'objectiu que té exemples positius i negatius target = np.array (dades) [:, - 1] imprimeix ('n L'objectiu és: ', target) #funció de formació per implementar l'algorisme find-s def train (c, t): per a i, val en enumerar (t): si val ==' Sí ': hipòtesi_específica = c [i]. copy () break for i, val in enumerate (c): if t [i] == 'Yes': for x in range (len (specific_hipotesis)): if val [x]! = specific_hipotesis [x]: specific_hipotesis [ x] = '?' else: pass return specific_hipotesis #obtaining the final hypothesis print ('n La hipòtesi final és:', tren (d, objectiu))

Sortida:

currículum vitae del desenvolupador de Python d'entrada

Això ens porta al final d’aquest article on hem après l’algorisme Find-S a Machine Learning amb la seva implementació i cas d'ús. Espero que tingueu clar tot el que us ha estat compartit en aquest tutorial.

Si heu trobat rellevant aquest article sobre 'Algorisme de Find-S en aprenentatge automàtic', consulteu el document una empresa d'aprenentatge en línia de confiança amb una xarxa de més de 250.000 estudiants satisfets repartits per tot el món.

Som aquí per ajudar-vos en cada pas del vostre viatge i oferir un pla d’estudis dissenyat per a estudiants i professionals que vulguin ser . El curs està dissenyat per donar-vos un avantatge en la programació de Python i formar-vos tant per a conceptes bàsics com avançats de Python juntament amb diversos M'agrada , , Etc.

Si teniu alguna pregunta, no dubteu a fer-vos totes les vostres preguntes a la secció de comentaris de 'Algoritme Find-S en aprenentatge automàtic' i el nostre equip estarà encantat de respondre-us.