¿Cómo implementar el algoritmo Find-S en el aprendizaje automático?



Este artículo cubre el concepto de algoritmo find-s en el aprendizaje automático. Gira en torno a varias terminologías de hipótesis utilizando un caso de uso como ejemplo.

En , el aprendizaje de conceptos puede denominarse ' un problema de buscar en un espacio predefinido de hipótesis potenciales la hipótesis que mejor se ajusta a los ejemplos de formación ”- Tom Mitchell. En este artículo, analizaremos uno de esos algoritmos de aprendizaje de conceptos conocido como algoritmo Find-S. Los siguientes temas se tratan en este artículo.

¿Qué es el algoritmo Find-S en el aprendizaje automático?

Para comprender el algoritmo Find-S, también debe tener una idea básica de los siguientes conceptos:





  1. Aprendizaje de conceptos
  2. Hipótesis general
  3. Hipótesis específica

1. Aprendizaje de conceptos

Intentemos comprender el aprendizaje de conceptos con un ejemplo de la vida real. La mayor parte del aprendizaje humano se basa en instancias o experiencias pasadas. Por ejemplo, podemos identificar cualquier tipo de vehículo en función de un determinado conjunto de características como marca, modelo, etc., que se definen sobre un gran conjunto de características.



Estas características especiales diferencian el conjunto de automóviles, camiones, etc. del conjunto más grande de vehículos. Estas características que definen el conjunto de automóviles, camiones, etc. se conocen como conceptos.

De manera similar, las máquinas también pueden aprender de conceptos para identificar si un objeto pertenece a una categoría específica o no. Ninguna que apoye el aprendizaje de conceptos requiere lo siguiente:

  • Datos de entrenamiento
  • Concepto de destino
  • Objetos de datos reales

2. Hipótesis general



La hipótesis, en general, es una explicación de algo. La hipótesis general establece básicamente la relación general entre las principales variables. Por ejemplo, una hipótesis general para pedir comida sería Quiero una hamburguesa

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

3. Hipótesis específica

La hipótesis específica completa todos los detalles importantes sobre las variables dadas en la hipótesis general. Los detalles más específicos del ejemplo anterior serían Quiero una hamburguesa con queso rellena de pollo con pepperoni y mucha lechuga.

c ++ cómo usar espacios de nombres

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

Ahora, hablemos del algoritmo Find-S en el aprendizaje automático.

El algoritmo Find-S sigue los pasos que se describen a continuación:

  1. Inicialice 'h' a la hipótesis más específica.
  2. El algoritmo Find-S solo considera los ejemplos positivos y elimina los negativos. Para cada ejemplo positivo, el algoritmo comprueba cada atributo del ejemplo. Si el valor del atributo es el mismo que el valor de la hipótesis, el algoritmo avanza sin cambios. Pero si el valor del atributo es diferente al valor de la hipótesis, el algoritmo lo cambia a '?'.

Ahora que hemos terminado con la explicación básica del algoritmo Find-S, echemos un vistazo a cómo funciona.

¿Como funciona?

algoritmo flowchart-find-s en aprendizaje automático - edureka

  1. El proceso comienza con la inicialización de 'h' con la hipótesis más específica, generalmente, es el primer ejemplo positivo en el conjunto de datos.
  2. Comprobamos cada ejemplo positivo. Si el ejemplo es negativo, pasaremos al siguiente ejemplo pero si es un ejemplo positivo lo consideraremos para el siguiente paso.
  3. Comprobaremos si cada atributo del ejemplo es igual al valor de la hipótesis.
  4. Si el valor coincide, no se realizan cambios.
  5. Si el valor no coincide, el valor se cambia a '?'.
  6. Hacemos esto hasta llegar al último ejemplo positivo en el conjunto de datos.

Limitaciones del algoritmo Find-S

Existen algunas limitaciones del algoritmo Find-S que se enumeran a continuación:

  1. No hay forma de determinar si la hipótesis es consistente en todos los datos.
  2. Los conjuntos de entrenamiento inconsistentes pueden inducir a error al algoritmo Find-S, ya que ignora los ejemplos negativos.
  3. El algoritmo Find-S no proporciona una técnica de retroceso para determinar los mejores cambios posibles que se podrían hacer para mejorar la hipótesis resultante.

Ahora que conocemos las limitaciones del algoritmo Find-S, echemos un vistazo a una implementación práctica del algoritmo Find-S.

Implementación del algoritmo Find-S

Para comprender la implementación, intentemos implementarla en un conjunto de datos más pequeño con un montón de ejemplos para decidir si una persona quiere salir a caminar.

python def __init__

El concepto de este problema particular será en qué días a una persona le gusta salir a caminar.

Hora Clima Temperatura Empresa Humedad Viento Va
MañanaSoleadoCalentarsiTempladoFuertesi
NocheLluviosoFríoNoTempladoNormalNo
MañanaSoleadoModerarsiNormalNormalsi
NocheSoleadoFríosiAltoFuertesi

Mirando el conjunto de datos, tenemos seis atributos y un atributo final que define el ejemplo positivo o negativo. En este caso, sí es un ejemplo positivo, lo que significa que la persona saldrá a caminar.

Entonces, ahora, la hipótesis general es:

h0= {'Mañana', 'Soleado', 'Cálido', 'Sí', 'Suave', 'Fuerte'}

Esta es nuestra hipótesis general, y ahora consideraremos cada ejemplo uno por uno, pero solo los positivos.

h1= {'Mañana', 'Soleado', '?', 'Sí', '?', '?'}

h2= {‘?’, ‘Sunny’, ‘?’, ‘Sí’, ‘?’, ‘?’}

Reemplazamos todos los diferentes valores en la hipótesis general para obtener una hipótesis resultante. Ahora que sabemos cómo funciona el algoritmo Find-S, echemos un vistazo a una implementación usando Pitón .

Caso de uso

Intentemos implementar el ejemplo anterior usando . El código para implementar el algoritmo Find-S utilizando los datos anteriores se proporciona a continuación.

import pandas as pd import numpy as np #para leer los datos en el archivo csv data = pd.read_csv ('data.csv') print (data, 'n') #haciendo una matriz de todos los atributos d = np.array (datos) [:,: - 1] print ('n Los atributos son:', d) #segregando el objetivo que tiene ejemplos positivos y negativos target = np.array (data) [:, - 1] print ('n El objetivo es: ', objetivo) #Función de entrenamiento para implementar el algoritmo find-s def train (c, t): for i, val in enumerate (t): if val ==' Yes ​​': specific_hypothesis = c [i]. copy () break para i, val en 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 #obteniendo la hipótesis final print ('n La hipótesis final es:', entrenar (d, objetivo))

Salida:

Esto nos lleva al final de este artículo donde hemos aprendido el algoritmo Find-S en Machine Learning con su implementación y caso de uso. Espero que tengas claro todo lo que se ha compartido contigo en este tutorial.

Si encuentra relevante este artículo sobre 'Algoritmo Find-S en el aprendizaje automático', consulte el una empresa de aprendizaje en línea de confianza con una red de más de 250.000 alumnos satisfechos repartidos por todo el mundo.

Estamos aquí para ayudarlo en cada paso de su viaje y crear un plan de estudios diseñado para estudiantes y profesionales que desean ser un . El curso está diseñado para darle una ventaja en la programación de Python y capacitarlo para los conceptos básicos y avanzados de Python junto con varios me gusta , , etc.

Si encuentra alguna pregunta, no dude en hacer todas sus preguntas en la sección de comentarios de 'Algoritmo Find-S en aprendizaje automático' y nuestro equipo estará encantado de responder.