• Nenhum resultado encontrado

É nesta fase que o modelo de regras, que irá servir de base ao sistema de recomendação de recursos, será criado. Antes, contudo, será necessário preparar os dados para que possam ser utilizados pelo sistema de geração de regras que se escolheu.

Para gerar as regras de associação, seleccionou-se uma implementação em Java1 do

Apriori, o Caren2 [Azevedo, P. J. (2003)]. Esta implementação do Apriori foi desenvolvida com o objectivo de implementar um sistema de classificação baseado em regras de associação [Liu B. et al. (1998)], tal como foi descrito no sub capítulo 3.2

Regras de Associação para Classificação. No Anexo 3 Caren é apresentada uma breve

descrição dos parâmetros do Caren que foram utilizados.

Em termos de preparação de dados, foi necessário efectuar duas operações:

primeiro, foi necessário normalizar os dados, visto que o Caren é sensível a letras maiúsculas e minúsculas, e os dados originais tinham os mesmos projectos representados tanto por letras maiúsculas, quanto por letras minúsculas;

segundo, foi necessário criar um ficheiro de texto com os cestos, a partir da tabela

cestos, com as suas chaves (a chave de cada cesto é composta pelo projecto e pelo dia) separadas dos recursos por “;”.

1 http://java.sun.com

Exemplo de um excerto deste ficheiro de texto: … (002F)2002-05-20;Almeida, Rosário P. (002F)2002-05-20;Correia, Paulo R. (002F)2002-05-20;Duarte, Carlos A. (002F)2002-05-20;Santos, Jorge R. (002F)2002-05-20;Sousa, Ricardo A. (002F)2002-05-21;Almeida, Rosário P. (002F)2002-05-21;Correia, Paulo R. (002F)2002-05-21;Santos, Jorge R. (002F)2002-05-21;Sousa, Ricardo A. (002F)2002-05-22;Correia, Paulo R. (002F)2002-05-22;Duarte, Carlos A. …

Neste exemplo consegue-se identificar que o primeiro cesto ((002F)2002-05-20) tem cinco recursos: “Almeida, Rosário P.”, “Correia, Paulo R.”, “Duarte, Carlos A.”,

“Santos, Jorge R.” e “Sousa, Ricardo A.”; que o segundo cesto ((002F)2002-05-21)

tem quatro recursos: “Almeida, Rosário P.”, “Correia, Paulo R.”, “Santos, Jorge R.” e

“Sousa, Ricardo A.”; que o terceiro cesto ((002F)2002-05-22) tem dois recursos:

“Correia, Paulo R.”, “Duarte, Carlos A.”; etc.

O modelo de recomendação, bem como o modo de o avaliar, propostos nesta tese, seguem estratégias apresentadas em Sarwar, B. et al. (2000), Sarwar, B. et al. (2001), Breese, J. S. et al. (1998) e Jorge, A. et al. (2002)b. Desta forma, e sintetizando os passos descritos no Sub Capítulo 3.5 Sistemas de Recomendação e Regras de

Associação, seguem-se os princípios que foram adoptados para a construção e avaliação

deste sistema:

Este modelo descreve-se formalmente através da Expressão 3.2.

Para proceder à sua avaliação, a totalidade dos cestos foi dividida de forma aleatória em dois conjuntos diferentes: Treino e Teste. A percentagem pela qual foi efectuada esta divisão foi, respectivamente, 80% e 20% do número total de cestos.

O conjunto de Treino foi utilizado para gerar as regras para o modelo de recomendação.

Para cada cesto do conjunto de Teste, foi apagado, de forma aleatória, um único recurso. O conjunto total de recursos que foi apagado desta forma foi chamado

Hidden (pode também ser visto como um conjunto de cestos com um recurso cada –

aquilo que se pretende prever). O conjunto dos cestos aos quais foi retirado um recurso, foi chamado Observável.

O conjunto de recomendações {r1, r2, …, rn} para um determinado cesto do conjunto

Observável, pode ser representado por:

{ <chave_cesto, r1>, < chave_cesto, r2>,…, < chave_cesto , rn>}

Ao conjunto formado pela reunião dos conjuntos de recomendações para todos os cestos do conjunto Observável, chamou-se Recomendações.

Este modelo foi avaliado através da comparação do conjunto de recomendações que ele faz (Recomendações), dado o conjunto Observável, com os recursos que pertencem ao conjunto Hidden.

O número N de recomendações produzidas para cada cesto do conjunto Observável pode variar. Cada modelo de recomendação irá ser utilizado com diferentes valores de N e em cada um destes casos serão avaliadas as medidas: Recall, Precision e F1.

O esquema seguinte é uma instância particular da Figura 3.2, aplicada a este caso específico:

Alguns dados importantes:

Nº Registos Nº Cestos Tabela Cestos 70.212 26.234 - (100%) Treino 56.337 20.987 - (80%) Teste 13.875 5.247 - (20%) Observável 8.628 3.015 Hidden 5.247 5.247

O conjunto Observável tem 3.015 cestos porque existem 5.247 – 3.015 = 2.232 cestos em Teste com um recurso apenas. Se um cesto contém apenas um recurso, ao “esconder” este seu recurso, este cesto fica com zero recursos, logo desaparece do conjunto Observável. Este valor indica que o número máximo de recomendações quando o N é igual a 1, é de 3.015. Este número é máximo porque podem existir alguns cestos no conjunto Observável que não consigam encontrar em M pelo menos uma regra que cumpra os critérios para a formação do conjunto R, e, como tal, não vão ter recomendações associadas. Tabela Cestos Treino Teste Caren Modelo M Observável Hidden Sistema Recomendação Recomendações - Recall - Precision - F1

O facto do número máximo de recomendações ser diferente do número de recursos em

hidden, quando o N = 1, implica que o Recall nunca será igual à Precision. Isto é, os

denominadores da Equação 3.2 e da Equação 3.3 nunca são iguais, para estes dados.

Importa referir que, para implementar todos os passos ilustrados na Figura 5.1 foram desenvolvidos no âmbito deste trabalho uma série de programas em R (disponíveis no

Anexo 4 Programas em R), designadamente para separar a base de dados inicial no

conjuntos Treino e Teste; para preparar o conjunto de Treino para que este pudesse ser utilizado pelo Caren; para criar os conjuntos Observável e Hidden; para implementar o protótipo do motor do sistema de recomendação propriamente dito; para gerar todas as recomendações relativas ao conjunto Observável; e, por fim, para calcular o Recall, a

Precision e o F1.