Algoritmo de aprendizaje de una regla

Requisito previo: Clasificador basado en reglas 

Aprende una regla: 

Este método se utiliza en el algoritmo de aprendizaje secuencial para aprender las reglas. Devuelve una sola regla que cubre al menos algunos ejemplos (como se muestra en la figura 1). Sin embargo, lo que lo hace realmente poderoso es su capacidad para crear relaciones entre los atributos dados, por lo tanto, cubre un espacio de hipótesis más grande.  

For example:
IF Mother(y, x) and Female(y), THEN Daughter(x, y). 
Here, any person can be associated with the variables x and y

Fig. 1: Ejemplo de aprender una regla

Algoritmo de aprendizaje de una regla

El algoritmo Learn-One-Rule sigue un paradigma de búsqueda codicioso en el que busca las reglas con gran precisión pero su cobertura es muy baja. Clasifica todos los ejemplos positivos para una instancia particular. Devuelve una sola regla que cubre algunos ejemplos.

Learn-One-Rule(target_attribute, attributes, examples, k):

    Pos = positive examples
    Neg = negative examples
      best-hypothesis = the most general hypothesis
      candidate-hypothesis = {best-hypothesis}
      
      while candidate-hypothesis:     
      //Generate the next more specific candidate-hypothesis

            constraints_list = all constraints in the form "attribute=value"
            new-candidate-hypothesis = all specializations of candidate-
                           hypothesis by adding all-constraints
            remove all duplicates/inconsistent hypothesis from new-candidate-hypothesis. 
            //Update best-hypothesis
            best_hypothesis = argmax(h∈CHs) Performance(h,examples,target_attribute)
            
            //Update candidate-hypothesis

            candidate-hypothesis = the k best from new-candidate-hypothesis 
                           according to Performance.
      prediction = most frequent value of target_attribute from examples that match best-hypothesis
      IF best_hypothesis:
          return prediction 

Se trata de un método RENDIMIENTO que calcula el rendimiento de cada hipótesis candidata. (es decir, qué tan bien coincide la hipótesis con el conjunto dado de ejemplos en los datos de entrenamiento.

Performance(NewRule,h):
    h-examples = the set of rules that match h
      return (h-examples)

Comienza con la condición previa de la regla más general, luego agrega con avidez la variable que más mejora el rendimiento medido sobre los ejemplos de entrenamiento. 

Ejemplo de aprender una regla

Entendamos el funcionamiento del algoritmo usando un ejemplo: 

Día Clima Temperatura Viento Lluvia Jugar badminton
D1 Soleado Caliente Débil Pesado No
D2 Soleado Caliente Fuerte Pesado No
D3 Nublado Caliente Débil Pesado No
D4 Nevado Frío Débil Luz
D5 Nevado Frío Débil Luz
D6 Nevado Frío Fuerte Luz
D7 Nublado Templado Fuerte Pesado No
D8 Soleado Caliente Débil Luz
Step 1 - best_hypothesis = IF h THEN PlayBadminton(x) = Yes
Step 2 - candidate-hypothesis = {best-hypothesis}
Step 3 - constraints_list = {Weather(x)=Sunny, Temp(x)=Hot, Wind(x)=Weak, ......}
Step 4 - new-candidate-hypothesis = {IF Weather=Sunny THEN PlayBadminton=YES, 
                      IF Weather=Overcast THEN PlayBadminton=YES, ...}
Step 5 - best-hypothesis = IF Weather=Sunny THEN PlayBadminton=YES 
Step 6 - candidate-hypothesis = {IF Weather=Sunny THEN PlayBadminton=YES, 
                 IF Weather=Sunny THEN PlayBadminton=YES...} 
Step 7 - Go to Step 2 and keep doing it till the best-hypothesis is obtained.

Puede consultar la figura 1 para comprender mejor cómo se obtiene la mejor hipótesis. [Paso 5 y 6]

El algoritmo de aprendizaje secuencial utiliza este algoritmo, lo mejora y aumenta la cobertura del espacio de hipótesis. Se puede modificar para aceptar un argumento que especifique el valor objetivo de interés. 

Publicación traducida automáticamente

Artículo escrito por prakharr0y y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *