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 -
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,
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.