Comment implémenter l'algorithme Find-S dans l'apprentissage automatique?

Cet article couvre le concept de l'algorithme find-s dans l'apprentissage automatique. Il tourne autour de diverses terminologies d'hypothèses en utilisant un cas d'utilisation comme exemple.

Dans , l'apprentissage des concepts peut être qualifié de « un problème de recherche dans un espace prédéfini d'hypothèses potentielles pour l'hypothèse qui correspond le mieux aux exemples de formation »- Tom Mitchell. Dans cet article, nous allons passer en revue l'un de ces algorithmes d'apprentissage de concept, appelé algorithme Find-S. Les sujets suivants sont abordés dans cet article.



Qu'est-ce que l'algorithme Find-S dans l'apprentissage automatique?

Afin de comprendre l'algorithme Find-S, vous devez également avoir une idée de base des concepts suivants:



  1. Apprentissage du concept
  2. Hypothèse générale
  3. Hypothèse spécifique

1. Apprentissage des concepts

qu'est-ce qu'une instance en java

Essayons de comprendre l’apprentissage des concepts avec un exemple concret. La plupart de l'apprentissage humain est basé sur des exemples ou des expériences passés. Par exemple, nous sommes en mesure d'identifier tout type de véhicule en fonction d'un certain ensemble de fonctionnalités telles que la marque, le modèle, etc., définies sur un large ensemble de fonctionnalités.



Ces caractéristiques spéciales différencient l'ensemble des voitures, camions, etc. du plus grand ensemble de véhicules. Ces caractéristiques qui définissent l'ensemble des voitures, camions, etc. sont appelées concepts.

De même, les machines peuvent également apprendre des concepts pour identifier si un objet appartient à une catégorie spécifique ou non. Tout qui prend en charge l'apprentissage des concepts nécessite les éléments suivants:

  • Données d'entraînement
  • Concept cible
  • Objets de données réels

2. Hypothèse générale



L'hypothèse, en général, est une explication à quelque chose. L'hypothèse générale énonce essentiellement la relation générale entre les principales variables. Par exemple, une hypothèse générale pour commander de la nourriture serait Je veux un hamburger.

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

3. Hypothèse spécifique

L'hypothèse spécifique remplit tous les détails importants sur les variables données dans l'hypothèse générale. Les détails plus spécifiques de l'exemple donné ci-dessus seraient Je veux un cheeseburger avec une garniture au pepperoni de poulet avec beaucoup de laitue.

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

instruction goto en c ++

Parlons maintenant de l'algorithme Find-S dans le Machine Learning.

L'algorithme Find-S suit les étapes décrites ci-dessous:

  1. Initialisez «h» à l’hypothèse la plus spécifique.
  2. L'algorithme Find-S ne considère que les exemples positifs et élimine les exemples négatifs. Pour chaque exemple positif, l'algorithme vérifie chaque attribut de l'exemple. Si la valeur d'attribut est la même que la valeur d'hypothèse, l'algorithme avance sans aucune modification. Mais si la valeur de l’attribut est différente de la valeur de l’hypothèse, l’algorithme la change en «?».

Maintenant que nous en avons terminé avec l'explication de base de l'algorithme Find-S, voyons comment cela fonctionne.

Comment ça marche?

algorithme flowchart-find-s en apprentissage automatique - edureka

  1. Le processus commence par l’initialisation de «h» avec l’hypothèse la plus spécifique, il s’agit généralement du premier exemple positif de l’ensemble de données.
  2. Nous vérifions chaque exemple positif. Si l'exemple est négatif, nous passerons à l'exemple suivant mais s'il s'agit d'un exemple positif, nous le considérerons pour l'étape suivante.
  3. Nous vérifierons si chaque attribut de l'exemple est égal à la valeur de l'hypothèse.
  4. Si la valeur correspond, aucune modification n'est apportée.
  5. Si la valeur ne correspond pas, la valeur est remplacée par «?».
  6. Nous faisons cela jusqu'à ce que nous atteignions le dernier exemple positif de l'ensemble de données.

Limitations de l'algorithme Find-S

Il existe quelques limitations de l'algorithme Find-S répertoriées ci-dessous:

  1. Il n'y a aucun moyen de déterminer si l'hypothèse est cohérente dans toutes les données.
  2. Des ensembles d'apprentissage incohérents peuvent en fait induire en erreur l'algorithme Find-S, car il ignore les exemples négatifs.
  3. L'algorithme Find-S ne fournit pas de technique de retour arrière pour déterminer les meilleurs changements possibles qui pourraient être effectués pour améliorer l'hypothèse résultante.

Maintenant que nous sommes conscients des limites de l'algorithme Find-S, examinons une implémentation pratique de l'algorithme Find-S.

Implémentation de l'algorithme Find-S

Pour comprendre l'implémentation, essayons de l'implémenter dans un ensemble de données plus petit avec un tas d'exemples pour décider si une personne veut se promener.

Le concept de ce problème particulier sera de savoir quels jours une personne aime marcher.

Temps Temps Température Entreprise Humidité Vent Va
MatinEnsoleilléChaudOuiBéninFortOui
SoirPluvieuxDu froidNonBéninOrdinaireNon
MatinEnsoleilléModérerOuiOrdinaireOrdinaireOui
SoirEnsoleilléDu froidOuiHauteFortOui

En regardant l'ensemble de données, nous avons six attributs et un attribut final qui définit l'exemple positif ou négatif. Dans ce cas, oui est un exemple positif, ce qui signifie que la personne ira se promener.

Alors maintenant, l'hypothèse générale est:

h0= {«Matin», «Ensoleillé», «Chaud», «Oui», «Doux», «Fort»}

C'est notre hypothèse générale, et maintenant nous allons considérer chaque exemple un par un, mais seulement les exemples positifs.

hun= {«Matin», «Ensoleillé», «?», «Oui», «?», «?»}

h2= {«?», «Ensoleillé», «?», «Oui», «?», «?»}

Nous avons remplacé toutes les différentes valeurs dans l'hypothèse générale pour obtenir une hypothèse résultante. Maintenant que nous savons comment fonctionne l'algorithme Find-S, examinons une implémentation utilisant Python .

Cas d'utilisation

Essayons de mettre en œuvre l'exemple ci-dessus en utilisant . Le code pour implémenter l'algorithme Find-S en utilisant les données ci-dessus est donné ci-dessous.

import pandas as pd import numpy as np #pour lire les données du fichier csv data = pd.read_csv ('data.csv') print (data, 'n') # créer un tableau de tous les attributs d = np.array (data) [:,: - 1] print ('n Les attributs sont:', d) #segragating la cible qui a des exemples positifs et négatifs target = np.array (data) [:, - 1] print ('n La cible est: ', target) #training function pour implémenter l'algorithme 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 #obtention de l'hypothèse finale print ('n L'hypothèse finale est:', train (d, target))

Production:

importation sqoop depuis oracle vers hdfs

Cela nous amène à la fin de cet article où nous avons appris l'algorithme Find-S dans Machine Learning avec sa mise en œuvre et son cas d'utilisation. J'espère que vous êtes clair avec tout ce qui a été partagé avec vous dans ce tutoriel.

Si vous avez trouvé cet article sur 'Find-S Algorithm in Machine Learning' pertinent, consultez le une entreprise de formation en ligne de confiance avec un réseau de plus de 250 000 apprenants satisfaits répartis dans le monde entier.

Nous sommes là pour vous aider à chaque étape de votre voyage et proposer un programme conçu pour les étudiants et les professionnels qui souhaitent devenir . Le cours est conçu pour vous donner une longueur d'avance dans la programmation Python et vous former aux concepts Python de base et avancés ainsi que divers comme , , etc.

Si vous rencontrez des questions, n'hésitez pas à poser toutes vos questions dans la section commentaires de «Find-S Algorithm In Machine Learning» et notre équipe se fera un plaisir de vous répondre.