quinta-feira, 29 de novembro de 2007

Sistemas Baseados em Regras

Herbert Simon, acerca dos sistemas baseados em regras: "Em vez do método de pesquisa força-bruta, temos um método combinado de pesquisa e raciocínio."

Os sistemas baseados em regras também são conhecidos por sistemas periciais e, frequentemente, por sistemas baseados em conhecimento. É um sistema de apoio à decisão que procura representar o modo de raciocínio e o conhecimento utilizado por especialistas na resolução de problemas no seu âmbito de especialidade. Ou seja, existe um paralelismo entre estes sistemas e a forma como os especialistas humanos atingem um alto nível de desempenho, na medida em que estes conhecem muito bem as suas áreas de especialização.

Um dos primeiros sistemas baseados em regras conhecidos foi o MyCin, que foi desenvolvido na década de 70 na Universidade de Stanford e tinha como objectivo fazer o diagnóstico de doenças infecciosas através de dados sanguíneos e recomendar os antibióticos apropriados.
Nos anos seguintes desenvolveram-se sistemas idênticos aplicados a outros domínios de problemas, nomeadamente na área da auditoria contabilística e recomendação fiscal. De forma mais abrangente, todas as situações, quer envolvam planeamento, diagnóstico, interpretação de dados, optimização ou comportamento social, podem ser expressos mediante um conjunto de regras bem definidas.

Um sistema baseado em regras é um modelo que utiliza regras explícitas para expressar o conhecimento do domínio de um problema e permite, através da confrontação do conhecimento existente com factos conhecidos sobre um determinado problema, inferir regras relativas a esses factos.
As componentes básicas do sistema baseado em regras são:

i) Base de conhecimento ou base de regras
Constitui uma espécie de base de dados que, em vez de dados, contém as regras do sistema. As regras assumem a forma de: Se x então y, em que x é a descrição de determinada situação e y é a acção desencadeada como consequência.

Designa-se por condição o lado esquerdo da regra, (antes do “se”), e por acção o lado direito da regras (depois do “se”).

A ideia por detrás da utilização de regras para representar conhecimento é a de que, utilizando um número suficiente destas regras, consegue-se fazer uma cobertura completa do domínio de raciocínio que um perito utiliza para resolver problemas desse domínio. Cada regra descreve uma região do espaço do problema. Usando uma abordagem do tipo divide-and-conquer (divide e conquistarás), consegue-se representar todo o espaço do problema por um conjunto bem definido de regras, reduzindo a complexidade desse espaço.

ii) Memória
Serve para guardar temporariamente factos iniciais e conclusões intermédias ou hipóteses.

iii) Interface com o utilizador
É o front-end do sistema, onde se introduz os factos do problema e se recebem os resultados ou conclusões retiradas pelo sistema.

iv) Interpretador de regras ou mecanismo de inferência
É o algoritmo que vai procurar fazer o “matching” (correspondência) dos factos iniciais do problema colocado (guardados na memória) com as regras existentes na base de conhecimento a fim de “disparar” a regra que melhor se aplica a esse facto. Quando há um match entre um facto do problema e uma regra, é feita a instanciação da regra e, se não existir conflito com outras regras derivadas de outros factos, esta é seleccionada e guardada novamente na memória ou, caso não existam outros factos para analisar, enviada para a interface com o utilizador.

A figura seguinte exemplifica o funcionamento de sistema.


Quando os factos são confrontados com as regras sendo feita uma correspondência e seleccionando uma regra que se aplica a essa situação, estamos perante um ciclo de reconhecimento – acção.

Este tipo de sistemas tem grande aplicação nos casos em que se consegue representar pequenas peças de conhecimento do domínio de um problema mas não se conhece um critério global de solução óptima.

Se colocarmos um especialista a resolver um problema ele irá seguir um determinado caminho para chegar a uma solução; outro especialista poderá seguir caminho diverso e, ainda assim, chegar à mesma solução. A resolução do problema depende do caminho adoptado, ou seja, das peças de conhecimento que são analisadas por cada perito, sendo extremamente difícil definir o que é a solução global óptima.

Uma das grandes vantagens deste tipo de sistema é a possibilidade de substituir a base de conhecimento, mantendo as restantes componentes, para se ter um novo sistema pericial de um diferente domínio do problema. A explicabilidade da solução é também uma das grandes vantagens a salientar, pois a aplicação de modelos num contexto de negócio pretende-se o mais transparente possível para que a decisão tomada seja claramente entendida por todos os intervenientes. Por outro lado, se estivermos perante um problema que se estruture em demasiadas regras, a sua abordagem via este tipo de sistemas pode ser de difícil implementação.

Sistemas periciais vs Árvores de Decisão

Os sistemas periciais implicam uma estruturação prévia do conhecimento (com base em regras, como vimos) que permite deduzir novos dados. As técnicas de Data Mining podem ser encaradas como o inverso: permitem “vasculhar” a memória que reside nos dados e descobrir padrões e regras significativas. Numa perspectiva de extracção de conhecimento bottom-up, não existem pressupostos e é dada aos dados a oportunidade de se expressarem.

A extracção de conhecimento pode ser:

- supervisionada: a tarefa consiste em explicar o valor de um determinado campo com base nos outros. Seleccionamos um campo alvo e pedimos ao computador para o estimar, prever ou classificar. O exercício de análise de churn posto em prática nas aulas em Clementine usando Árvores de Decisão é um exemplo típico deste tipo de aprendizagem. Partindo de um conjunto de variáveis que caracterizavam clientes cujo comportamento de abandono é conhecido (a variável alvo aqui tomava dois valores possíveis: churners e não churners), foi possível obter um modelo que diferenciava estas duas tipologias de clientes e que, face a um novo conjunto de clientes atribuía uma probabilidade de pertencer aos dois grupos.

- não-supervisionada: não existe um alvo, pedimos à heurística/algoritmo para identificar nos dados padrões significativos. A segmentação de uma base de dados de clientes é um dos exemplos de aplicação da aprendizagem não supervisionada, pois apesar de o output final ser a constituição de agrupamentos de clientes com base em semelhanças, não existe uma classificação pré-definida. O K-means é um dos métodos mais usados neste tipo de problemas de negócio.

Retomando a temática das Árvores de Decisão iniciada nas aulas, vimos como uma das suas principais vantagens é a extracção de regras, que podem facilmente ser expressas em linguagem corrente, de modo a serem bem compreendidas pelos analistas e pelos gestores. Apesar de muitas vezes não ser fundamental conhecer a forma de funcionamento do modelo, existem problemas onde a possibilidade de explicar as razões que justificam determinadas decisões é essencial.

Se nos Sistemas Periciais é fundamental envolver os peritos para explicitar as regras que expressam o conhecimento do domínio de um problema, com as Árvores de Decisão o processo é o inverso. As Árvores de Decisão abordam o processo de extracção de conhecimento numa perspectiva de indução, ou seja, há uma generalização dos padrões encontrados nos dados que depois se traduzem em regras, sem existir um conjunto de premissas formuladas inicialmente sobre as relações entre objectos.

Contudo, há que controlar a quantidade de regras geradas pois a knowledge-base extraída pode ser tão má em complexidade tempo e espaço como a base inicial -não nos esqueçamos que, no limite, cada entrada de uma tabela pode originar uma regra. Essa questão é abordada através de técnicas de desbaste da Árvore de Decisão (prunning) e na minimização da diversidade nos nós terminais da Árvore (ou seja, garantir a maior proporção possível de objectos correctamente classificados).

Estas técnicas serão devidamente detalhadas no 3º trimestre da cadeira de Data Mining. Irão ver que, no fundo, é como jogar ao jogo das 20 perguntas: a resposta à primeira pergunta determina as questões seguintes e na maior parte das vezes chegamos à solução final sem serem feitas todas as perguntas possíveis, porque os padrões já encontradas por associação das respostas às perguntas anteriores permite-nos chegar à resposta correcta na maioria dos casos.

(é vermelho? SIM, é redondo? SIM, é um fruto? SIM, É UMA MAÇÃ???!! NÃO! Vêem aos pares? SIM!! ENTÃO SÃO CEREJAS!).


2 comentários:

Rafael Félix disse...

Olá, quais foram os critérios para ter escolhido o SIAD no ISCTE?

Anónimo disse...

Olá e desde já agradeço a sua visita a este humilde blog. Respondendo à sua questão: a minha formação sempre teve os seus pilares na Análise de Dados e sempre trabalhei nessa área. Contudo, sinto algum afastamento entre as pessoas que trabalham os dados e extraem conhecimento (o meu papel) e aqueles a quem a informação se destina (tipicamente, os gestores). Este Mestrado toca em tudo, dando uma formação que integra todos os papeis do ciclo do apoio à decisão. Às vezes é preciso gerir uma certa frustração que vem de se ouvir falar demasiado em tecnologia, bases de dados e gestão, porque é na Análise de Dados que me sinto no meu ambiente natural. Mas tento nunca esquecer que aquilo que procuro é essa vertente multi-disciplinar. Não sei o que o motiva mas investigue também o Mestrado em Prospecção e Análise de Dados, também do ISCTE.

Espero ter ajudado :-))
Sofia