domingo, 23 de dezembro de 2012

Case-based reasoning Part IV


O texto é basedo no tutorial:
* Recio-Garcia , Díaz-Agudo , González-Calero (2008).
*Learning in Non-Stationary Environments - Methods and Applications (2012)
* Material de aula de Inteligência Artificial - Hugo Pedro Proença, (2007/2008)

Case-based reasoning (CBR) - Parte IV

Chegamos na parte prática desse tutorial. Usando a biblioteca JColibri  e a ferramenta eclipse INDIGO vamos entender um pouco mais como funciona CBR.

Para ilustrar as capacidades da biblioteca, nós implementaremos uma clássica aplicação CBR para determinar se devemos jogar tênis hoje conforme as experiências anteriores.

Antes de iniciar o desenvolvimento desse sistema inteligente, é necessário instalar a biblioteca JColibri no eclipse. Para fazer isso vá no menu help>>Install New Software. A seguinte janela(Figura 1) deve abrir:

Figura 1
Digite o endereço http://colibricbrstudio.net/update na caixa de texto work with. Selecione o item "COLIBRIStudio" e clique em next até instalar.

Para habilitar a visuliazação do Jcolibri no eclipse, vá no menu Windows>>Open Perspective>> Other. Selecione a opção COLIBRI. Agora podemos dar início ao desenvolvimento!

Vamos detalhar em passos o desenvolvimento:

1)  Vá no menu File>>New>> New k-NN CBR Project. A tela seguinte deve ser aberta (Figura 2):

Figura 2

Vamos dar uma pausa para entender o que é "k-NN". k-NN é um método de aprendizagem supervisionada.
[Sayed-Mouchaweh,2012].  O kNN segue a seguinte abordagem, para classificar x =(x1, x2, ...xn) encontra-se os k exemplos de treino mais próximos de "x", e o classifica com a classe moda nesses exemplos. 

Vejamos o seguinte exemplo que contém 3 classes, sendo necessário classificar "xu". … Usando k=5 , encontramos 4 dos vizinhos mais próximos na classe 1 e 1 exemplo na classe 3.… Atribui-se a observação xu à classe 1, uma que esta é a classe predominante. A Figura 3 ilustra esse exemplo:


Figura 3

Usando o kNN o aplicativo CBR deve tomar a decisão se joga tênis ou não. Deve-se observar que o algoritmo kNN não é muito eficiente para os casos em que o tamanho da base de treino é muito importante e k não é muito bem escolhido. [Sayed-Mouchaweh,2012]

No próximo tutorial de CBR continuamos o desenvolvimento do sistema. 



quarta-feira, 12 de dezembro de 2012

TUTORIAL PROTÉGÉ - PARTE 5

baseado no guia prático para construir ontologias OWL usando Protégé dos autores Horridge & Knublauch et al
Apostila de matemática discreta da Universidade de Caxias do Sul (2003)


PARTE 5: Relações (propriedades) inversas

É importante ter um noção básica sobre teoria de conjuntos campo de estudo da matemática discreta, antes de iniciar esse tutorial.

Então dados dois conjuntos A e B, uma relação binária R de A em B é um subconjunto de um produto cartesiano AXB , ou seja R está contido em AXB. Nesse caso R pode ser caracterizada como inversa, funcional, ou qualquer outra relação. 
*A é o domínio, origem ou conjunto de partida de R
*B é o contra-domínio, destino ou conjunto de chegada de R
Para R está contido em A|X|B , se <a,b> pertece a R , então afirmamos que "a relaciona-se com b". Podemos denotar uma relação R da seguinte forma: R : A-> B e, para um elemento <a,b> pertence a R , podemos denota-lo como aRb.


Simplificando a ideia, as propriedades inversas permitem um enrriquecimento nas descrições dos objetos e das classes.   Se alguma propriedade liga um indivíduo a ao indivíduo b então sua propriedade inversa deve unir b ao indivíduo a. Por exemplo: a propriedade temPai e sua propridade inversa temFilho - se Mateus temPai Jean, então pela propriedade inversa podemos inferir que Jean temFilho Mateus.

Dando continuidade a nossa ontologia de Pizza no Protégé e para fixar o conteúdo, vamos aos seguintes passos para adicionar a propriedade inversa.

(1) User o botão "add object property"  da aba "Object proprietis" para criar uma nova relação chamada isIngredientOf ( Essa se tornará a relação inversa de hasIngredient).
(2) Crie outra relação chamada hasIngredient.
(3) Selecione a relação isIngredientOf
(4) Clique no ícone "Add" próximo a " Inverse properties". Veja na figura 1

Figura 1 - Janela de tipos de relações da relação isIngredientOf

(5) Clique no ícone "Add" próximo a " Inverse properties". A seguinte janela será apresentada (Veja na figura 2). Selecione a relação hasIngredient e clique em Ok. A propriedade "hasIngredient" deve ser mostrado na janela "Inverse Property".

Figura 2 - janela de seleção de relação inversa
(6) Crie 2 novas relações "hasBase" e "IsBaseOf". Selecione a relação "hasBase".

(7) Clique no botão Add próximo a " Inverse properties". Selecione a relação "isBaseOf" e clique em OK. Observe que a relação "hasBase" agora tem a propriedade inversa "isBaseOf". Você pode opcionalmente colocar a relação "isBaseOf" como sub-relação de "isIngredientOf". (OBSERVE A DIFERENÇA AO APLICAR A MÁQUINA DE INFERÊNCIA - tema dos próximos capítulos.)
 

(8) Crie 2 novas relações "hasTopping" e "isToppingOf".  Inclua a relação "isToppingOf" como inversa de "hasTopping".

GALERA, preste atenção ao fato que ao descrevermos os conceitos do mundo com a matemática nos livramos principalmente da AMBIGUIDADE da linguagem natural.

No próximo tutorial espero falar sobre relações FUNCIONAIS. GOOD LOCK!!

segunda-feira, 3 de dezembro de 2012

Case-based reasoning Part III

O texto é basedo no tutorial:
* Recio-Garcia , Díaz-Agudo , González-Calero (2008).
* AquaStress Technical Instruments (2007).


Case-based reasoning (CBR) - Parte III

 

Antes de inicarmos o desenvolvimento de uma aplicação prática usando o JColibri, vale a pena mostrar uses cases. O AquaStress é um framework inteligente construído a partir dos conceitos do CBR.

Contextualizando o problema do Aquatress. Há muitas regiões da Europa expostas ao problema de falta de água devido a demanda excessiva, que desencadeia medidas sérias de mitigação. Esse tipo de problema e as regiões afetadas podem ser comparáveis entre si. Isso portanto é útil para pesquisar por "casos" similares e (re)utilizar as experiências em situações problemáticas e medidas de mitigação observadas em outros lugares.

A metodologia CBR é muito apropriada para comparação de casos complexos onde a informação é imcompleta. O AquaStress é baseado no jCOLIBRI (um framework que gera código CBR) e consiste de vários componentes, a saber: um construtor, um publicador, um banco de dados, serviços e uma interface web.

Para mais informações sobre o Aquastress: http://i3s.aquastress.net

Existem outras situações práticas do CBR:

Otimização da eficiência energética: http://www.ami-moses.eu/
Classificação do câncer de mama maligno/benigno: http://proceedings2010.imcsit.org/pliks/192.pdf