Data Mining - Classificação Baseada em Regras

Regras IF-THEN

O classificador baseado em regras usa um conjunto de regras IF-THEN para classificação. Podemos expressar uma regra no seguinte de -

IF condição ENTÃO conclusão

Vamos considerar uma regra R1,

R1: IF age = youth AND student = yes 
   THEN buy_computer = yes

Points to remember −

  • A parte IF da regra é chamada rule antecedent ou precondition.

  • A parte ENTÃO da regra é chamada rule consequent.

  • A parte antecedente da condição consiste em um ou mais testes de atributo e esses testes são logicamente ligados por AND.

  • A parte conseqüente consiste na previsão da classe.

Note - Também podemos escrever a regra R1 da seguinte forma -

R1: (age = youth) ^ (student = yes))(buys computer = yes)

Se a condição for verdadeira para uma determinada tupla, o antecedente será satisfeito.

Extração de regra

Aqui, aprenderemos como construir um classificador baseado em regras extraindo regras IF-THEN de uma árvore de decisão.

Points to remember −

Para extrair uma regra de uma árvore de decisão -

  • Uma regra é criada para cada caminho da raiz ao nó folha.

  • Para formar um antecedente de regra, cada critério de divisão é logicamente ligado por AND.

  • O nó folha contém a previsão da classe, formando a regra consequente.

Indução de regra usando algoritmo de cobertura sequencial

O Algoritmo de Cobertura Sequencial pode ser usado para extrair regras IF-THEN dos dados de treinamento. Não é necessário gerar uma árvore de decisão primeiro. Nesse algoritmo, cada regra para uma determinada classe cobre muitas das tuplas dessa classe.

Alguns dos algoritmos de cobertura sequenciais são AQ, CN2 e RIPPER. De acordo com a estratégia geral, as regras são aprendidas uma de cada vez. Para cada vez que as regras são aprendidas, uma tupla coberta pela regra é removida e o processo continua para o restante das tuplas. Isso ocorre porque o caminho para cada folha em uma árvore de decisão corresponde a uma regra.

Note - A indução da árvore de decisão pode ser considerada como o aprendizado de um conjunto de regras simultaneamente.

A seguir está o Algoritmo de aprendizado sequencial, em que as regras são aprendidas para uma classe de cada vez. Ao aprender uma regra de uma classe Ci, queremos que a regra cubra todas as tuplas da classe C apenas e nenhuma tupla de outra classe.

Algorithm: Sequential Covering

Input: 
D, a data set class-labeled tuples,
Att_vals, the set of all attributes and their possible values.

Output:  A Set of IF-THEN rules.
Method:
Rule_set={ }; // initial set of rules learned is empty

for each class c do
   
   repeat
      Rule = Learn_One_Rule(D, Att_valls, c);
      remove tuples covered by Rule form D;
   until termination condition;
   
   Rule_set=Rule_set+Rule; // add a new rule to rule-set
end for
return Rule_Set;

Poda de regra

A regra foi removida devido ao seguinte motivo -

  • A avaliação de qualidade é feita no conjunto original de dados de treinamento. A regra pode funcionar bem em dados de treinamento, mas não tão bem em dados subsequentes. É por isso que a poda de regra é necessária.

  • A regra é podada removendo o conjunto. A regra R é removida, se a versão removida de R tiver maior qualidade do que o que foi avaliado em um conjunto independente de tuplas.

FOIL é um dos métodos simples e eficazes para a poda de réguas. Para uma dada regra R,

FOIL_Prune = pos - neg / pos + neg

onde pos e neg é o número de tuplas positivas cobertas por R, respectivamente.

Note- Este valor aumentará com a precisão de R no conjunto de poda. Portanto, se o valor FOIL_Prune for maior para a versão podada de R, então podamos R.