39
e-business para PME WEB USAGE MINING Manuel José Ferreira Monteiro Dezembro de 2006

e-business para PME - 123seminarsonly.com · Essas técnicas estão orientadas para duas categorias principais: Ferramentas de Descoberta de padrões e Ferramentas de Análise de

Embed Size (px)

Citation preview

e-business para PME

WEB USAGE MINING

Manuel José Ferreira Monteiro

Dezembro de 2006

WEB USAGE MINING

Abstract: Algoritmos de “Market Basket Analysis” têm-se difundido amplamente nos últimos tempos na análise de padrões de compra dos consumidores, nomeadamente na detecção de produtos que são adquiridos em conjunto. Estas técnicas são igualmente utilizadas noutras situações, como em bibliotecas, sites de comércio electrónico e na análise do comportamento de navegação em sites. Neste documento são analisadas algumas dessas técnicas aplicadas à situação do Web Usage, onde se analisa o perfil de utilização num site de serviços na Internet.

Palavras-Chave: Internet, Web Mining, Web Usage Mining, Regras de Classificação, SQL, Log Files, IIS, Market Basket Analysis, Apriori, Caren, Weka

ÍNDICE

1. Objectivos......................................................................................................................1

2. Introdução ao Web Mining............................................................................................2

3. Os dados ........................................................................................................................5

3.1 Origem dos dados ................................................................................................... 5

3.2 Tratamento dos dados............................................................................................. 8

3.2.1 Criação da base de dados................................................................................. 8

3.2.2 Limpeza e Tratamento dos dados .................................................................. 10

3.2.3 Análise preliminar aos dados......................................................................... 13

4. Análise de um conjunto de dados usando regras de associação. .................................16

4.1 Conceitos base ...................................................................................................... 16

4.2 Descobrir Regras de Associação .......................................................................... 18

4.1.1 WEKA ........................................................................................................... 19

4.1.2 Magnum Opus ............................................................................................... 21

4.1.3 Caren.............................................................................................................. 27

4.1.4 Outras ferramentas......................................................................................... 29

5. Análise e selecção das regras e dos conjuntos frequentes ...........................................31

6. Conclusões...................................................................................................................33

7. Referências e conteúdos consultados ..........................................................................34

Rede de agentes de suporte em e-business para PME IAPMEI

1

1. Objectivos

Este trabalho, no âmbito da formação de “agentes de suporte em e-business para PME”,

promovido pelo IAPMEI, tem como objectivo a familiarização com os conceitos de

Web Usage Mining.

Analisa-se um caso prático, onde se incluem todos os passos necessários para a

obtenção de informação útil.

Utilizaram-se as seguintes ferramentas:

SQLServer 2005 Express*

O SQLServer é um dos sistemas de Gestão de Bases de Dados mais sofisticados do mundo. Utilizou-se neste trabalho a versão 2005 na edição Express.

Download em:

http://www.microsoft.com/downloads/details.aspx?FamilyID=220549B5-0B07-4448-8848-DCC397514B41&displaylang=pt-br

SQL Server Management Studio Express*

O SQLServer Management Studio Express permite de forma simples e visual gerir bases de dados Microsoft SQL Server 2005.

Download em:

http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=C243A5AE-4BD1-4E3D-94B8-5A0F62BF7796

WEKA

Ferramenta em JAVA que contêm algoritmos para tarefas de data mining.

Download em:

http://www.cs.waikato.ac.nz/ml/weka/index_downloading.html

* Ambas as aplicações disponíveis para download igualmente em

http://msdn.microsoft.com/vstudio/express/sql/download/.

Rede de agentes de suporte em e-business para PME IAPMEI

2

2. Introdução ao Web Mining

O web mining e o web usage mining resultam da aplicação de técnicas de data mining

para descobrir de forma automática padrões de utilização recolhidos na Web, com o

objectivo de compreender melhor os padrões de navegação nos sites, caracterizar e

servir melhor os utilizadores/clientes e optimizar as soluções web-based.

A presença das organizações na Web gera normalmente grandes quantidades de dados,

geradas normalmente pelos servidores Web e guardadas em ficheiros designados por

logs. A análise desses logs pode ajudar as organizações a determinar o perfil dos seus

utilizadores e com essa informação adaptar os conteúdos às necessidades destes,

apresentar estratégias de marketing mais focalizadas e individualizadas, potenciando

melhores retornos financeiros (ou outros).

As primeiras ferramentas de análise da Web simplesmente reportavam a actividade

gerada no site, nomeadamente o número de visitantes, páginas mais vistas, origem dos

visitantes, sites de referência, entre outros.

Figura 1 – Exemplo de Sistema de estatísticas online (SmarterStats)

Rede de agentes de suporte em e-business para PME IAPMEI

3

Normalmente existe associado a qualquer alojamento na Web um sistema de estatísticas

que permite obter uma infinidade de informações estatísticas sobre determinado site.

São exemplo desses sistemas o WhosOn (http://www.whoson.co.uk), SmarterStats

(http://www.smartertools.com/Products/SmarterStats) ou o LiveStats

(http://www.deepmetrix.com).

Figura 2 – Alerta de erros e detecção de Hackers (WhosOn)

No caso do SmarterStats existe já um pequeno espaço dedicado ao Web Mining. No

WhosOn existe um módulo que detecta erros e Hackers (Figura 2). Estes

melhoramentos demonstram que o mercado está a optimizar as soluções de forma a

oferecer cada vez mais informação útil, não apenas informação estatística.

Têm aparecido novas técnicas, mais sofisticadas, para descoberta e análise de padrões.

Essas técnicas estão orientadas para duas categorias principais: Ferramentas de

Descoberta de padrões e Ferramentas de Análise de Padrões.

Em resumo estas técnicas visam:

Obter sistemas capazes de gerar acções que adaptam a informação e/ou serviços

disponibilizados por um site às necessidades e perfis dos utilizadores, tirando vantagem

do conhecimento obtido do comportamento destes [1]

Rede de agentes de suporte em e-business para PME IAPMEI

4

Um exemplo conhecido de utilização destas técnicas é a AMAZON [5]. Ao visualizar

um item a amazon.com sugere outros itens, que potencialmente o utilizador terá

interesse. Estas sugestões estão ligadas a Regras de Associação baseadas na análise do

histórico de vendas.

O Web Usage Mining é utilizado como Sistema de Apoio à Decisão e Personalização

dos Web Sites. Podemos dividir o Web Mining em três áreas [1]:

Figura 3 – Áreas de aplicação do Web Mining

Este trabalho dedica-se com maior ênfase à componente “Utilização” do Web Mining,

designada vulgarmente por Web Usage Mining, baseada na análise dos ficheiros log

gerados pelos pedidos ao servidor.

A análise dos logs pode ser realizada através de diferentes técnicas [1], nomeadamente,

Estatística, Filtragem de conteúdos, Data Mining, Probabilidades e Análise de Links.

Rede de agentes de suporte em e-business para PME IAPMEI

5

3. Os dados

3.1 Origem dos dados

Os dados utilizados neste estudo foram retirados dos logs de acesso ao site

forevernet.net dos dias 17 de Março de 2006 a 3 de Abril de 2006 (18 dias).

Figura 4 – Lista de ficheiros com logs do servidor

O servidor gera um ficheiro por cada dia de actividade do site (figura 4).

O Internet Information Server (IIS) fornece diferentes formatos de ficheiros de log que

armazenam todos os pedidos (“requests”) no servidor Web.

Estes são os formatos de ficheiros de log fornecidos pelo IIS [7]:

• W3C Extended Log File Format

• NCSA Log File Format

• Microsoft Log File Format

O formato utilizado por defeito no IIS é o W3C Extended Log File Format [1], é este o

formato utilizado como fonte de dados neste trabalho.

Rede de agentes de suporte em e-business para PME IAPMEI

6

Os ficheiros log são do tipo texto delimitado, neste caso por espaço, segunda a

especificação RFC 2616, "Hypertext Transfer Protocol -- HTTP/1.1" 1 [8].

Os ficheiros log é constituído por registos, cada registo é referente a um pedido de um

ficheiro do site em determinada sessão. Estes incluem todos os ficheiros, inclusive

imagens e outros documentos que não constituem páginas propriamente ditas mas que

estão incluídos em páginas. O que interessa monitorizar são todos os ficheiros que

constituem a estrutura de uma página, nomeadamente os “.htm”, “.asp”, “.php”, “aspx”,

“.pdf”, entre outros. Os ficheiros de imagem não interessam monitorizar uma vez que

constituem ficheiros complementares e não ficheiros principais. Os registos referentes

às imagens terão que ser filtrados do dataset original, nomeadamente os “.gif”, “.jpg”,

“.png” e afins.

No caso particular do site em estudo a maioria dos ficheiros relevantes para o estudo

estão desenvolvidos em Active Server Pages, com extensão “.asp”.

No formato W3C Extended Log File Format cada registo é constituído pelos seguintes

campos:

Nome do Campo Descrição

Date Data da sessão

Time Hora da sessão

c-ip IP do utilizador. Este campo pode indiciar em erro pois poderá ser um IP comum a muitas ligações e não representar apenas uma ligação (ou utilizador) mas sim muitas ligações distintas.

cs-username Utilizador (em branco). Terá valores se for um utilizador autenticado.

s-sitename Referência do Servidor

s-computername Nome do Servidor

s-ip IP do Servidor

1 http://www.rfc-editor.org/rfc/rfc2616.txt

Rede de agentes de suporte em e-business para PME IAPMEI

7

s-port Porta do Servidor

cs-method Instrução http requisitada

cs-uri-stem Ficheiro requisitado

cs-uri-query \ Query associada ao ficheiro requisitado

sc-status Status da operação retornado pelo servidor

sc-win32-status Status da operação retornado pelo cliente

sc-bytes Número de bytes enviados para o utilizador

cs-bytes Número de bytes enviados para o servidor

time-taken Tempo em milissegundos que demorou a processar o pedido

cs-version Versão do protocolo HTTP

cs-host Domínio do registo. Este pode variar dentro de um site. O caso em estudo tem situações onde isso acontece. A utilização de “Domain Alias”, domínios alternativos que apontam para o mesmo site, origina a existência de diferentes domínios num só site.

cs(User-Agent) Informação adicional

cs(Cookie) Cookie associado ao pedido, caso exista

cs(Referer) URL previamente visitado pelo cliente. Este campo é importantíssimo quando se pretende elaborar estudos sobre sequencias tipo (padrões) de visitas.

Os campos [c-ip] e [cs-uri-stem], referentes ao IP do “visitante” do site e ao nome do

ficheiro “visitado”, constituem os elementos mais relevantes para se realizar este estudo.

Os restantes campos são de elevado interesse para outros estudos.

Figura 5 - Exemplo de um registo

Rede de agentes de suporte em e-business para PME IAPMEI

8

3.2 Tratamento dos dados

3.2.1 Criação da base de dados

Estando os dados origem repartidos por diferentes ficheiros é essencial criar um sistema

que permita recolher numa estrutura única todos os dados e que permita trabalhar com

estes de forma célere e eficaz. Optou-se por converter os ficheiros de log para uma base

de dados SQL. No caso específico deste trabalho utilizou-se o SQL Server 2005.

Utilizou-se o Microsoft SQL Server Management Studio Express para gerir e aceder

aos dados.

A estrutura da base de dados pode ser criada com o seguinte comando SQL (inclui todos

os campos existentes nos logs) [7][8]:

CREATE TABLE logs ( [date] [datetime] NULL, [time] [datetime] NULL , [c-ip] [varchar] (50) NULL , [cs-username] [varchar] (50) NULL , [s-sitename] [varchar] (50) NULL , [s-computername] [varchar] (50) NULL , [s-ip] [varchar] (50) NULL , [s-port] [varchar] (50) NULL , [cs-method] [varchar] (50) NULL , [cs-uri-stem] [varchar] (255) NULL , [cs-uri-query] [varchar] (2048) NULL , [sc-status] [int] NULL , [sc-win32-status] [varchar] (50) NULL , [sc-bytes] [int] NULL , [cs-bytes] [int] NULL , [time-taken] [int] NULL , [cs-version] [varchar] (50) NULL , [cs-host] [varchar] (255) NULL , [cs(User-Agent)] [varchar] (255) NULL , [cs(Cookie)] [varchar] (2048) NULL , [cs(Referer)] [varchar] (2048) NULL )

Estando a tabela criada poderemos importar os dados de cada um dos ficheiros log. Se

se tiverem privilégios alargados no servidor SQLServer poderá utilizar a seguinte

instrução para alimentar a tabela criada:

BULK INSERT logs FROM 'c:\logs\ex060317.log'

Rede de agentes de suporte em e-business para PME IAPMEI

9

WITH ( FIELDTERMINATOR = ' ', ROWTERMINATOR = '\n' )

Esta instrução terá que ser executada para cada ficheiro de log existente. Não é

necessário retirar os cabeçalhos dos ficheiros de log, pois o próprio BULK INSERT dá

erro ao interpretar mas passa para a linha seguinte.

Estando a tabela dos logs alimentada poderão ser realizadas uma série de interrogações

que poderão ser base de um sistema de análise permanente ao desempenho do site.

Rede de agentes de suporte em e-business para PME IAPMEI

10

3.2.2 Limpeza e Tratamento dos dados

Procedeu-se à eliminação dos registos supérfluos ao estudo a realizar e tratamento dos

dados relevantes, nomeadamente:

� Eliminação dos pedidos ao servidor de ficheiros secundários.

Englobam-se nestes as imagens (.gif, .jpg e outros).

Utilizou-se a seguinte instrução SQL para eliminar esses registos:

DELETE FROM [webmining].[dbo].[logs] WHERE [cs-uri-stem] like '%.gif'

Apenas este comando eliminou 71096 registos. Procedeu-se de igual forma para outras

extensões de ficheiros, nomeadamente “.jpg”, “.css”, “.js”

� Eliminação de áreas de acesso privadas

Eliminaram-se igualmente áreas do domínio privadas que não interessavam para o

estudo, pois referiam-se a zonas de administração do site reservadas aos funcionários da

empresa e sem acesso ao público em geral.

DELETE FROM [webmining].[dbo].[logs] WHERE [cs-uri-stem] like '%/backoffice/%'

� Eliminação de registos duplicados

Outro elemento a considerar são a existência de registos duplicados. Através do

seguinte comando SQL eliminaram-se os registos duplicados. Para o executar é

necessário criar previamente um campo de identificação único de cada linha ([id]). Esta

necessidade pode ser contornada com outras instruções SQL mais elaboradas.

Rede de agentes de suporte em e-business para PME IAPMEI

11

DELETE FROM logs WHERE id NOT IN (SELECT max(id) FROM logs GROUP BY visitante,[cs-uri-stem] HAVING count(*)>=1)

� Capitalização

Verificou-se que para a mesma página apareciam versões com maiúsculas e outras com

minúsculas. Qualquer um dos métodos a aplicar poderiam interpretar esses registos

como diferentes erradamente. Assim procedemos à capitalização de todos os registos

para evitar esse problema. Realizou-se a seguinte instrução SQL:

UPDATE [webmining].[dbo].[logs] SET [cs-uri-stem] = upper([cs-uri-stem])

� Visitantes únicos

Para o trabalho em causa existe uma particularidade relevante para o estudo. Sendo os

dados recolhidos relativos a visitas a um site onde não há validação do utilizador existe

o problema de diferentes utilizadores serem identificados pelo mesmo IP. Isso acontece

devido aos ISPs afectarem conjuntos de IPs a determinadas áreas que são partilhados

por todos os utilizadores dessa área. Assim nada nos garante que determinado IP é única

e exclusivamente utilizado por um dado visitante. Por este motivo teremos que tentar

minimizar essa possibilidade.

A forma mais obvia que ocorre será unificar o campo [c-ip], relativo ao IP do cliente, ao

campo [cs(user-agent)], relativo a características do sistema utilizado pelo cliente. É

teoricamente possível que um grupo de pessoas que utilizam o mesmo IP possam de

alguma forma ter as características do sistema utilizado exactamente iguais, mas essa

probabilidade é diminuta.

Rede de agentes de suporte em e-business para PME IAPMEI

12

Adicionou-se à tabela SQL mais um campo com a designação [visitante]. Com a

seguinte instrução SQL “alimentou-se” este novo campo com a junção dos dois campos

já referidos.

UPDATE [webmining].[dbo].[logs] SET [visitante] = [c-ip] + ' - ' + [cs(User-Agen t)]

Na recolha de dados para obtenção das regras de associação irá ter-se em conta este

novo campo.

Nesta fase verificamos a existência de 107 endereços únicos (itens), obtidos com a

instrução SQL:

select distinct [cs-uri-stem] from logs order by [c s-uri-stem]

Figura 6 – Interrogação SQL no MS SQL Server Management Studio Express

Rede de agentes de suporte em e-business para PME IAPMEI

13

3.2.3 Análise preliminar aos dados

Apresentam-se a seguir algumas das instruções SQL que se podem fazer à base de

dados criada para se obter alguma informação útil [6]:

Interrogação SQL 1: Top 10 dos itens requisitados

SELECT TOP 10 [cs-uri-stem] as Url, COUNT([cs-uri-s tem]) AS Hits FROM logs GROUP BY [cs-uri-stem] ORDER BY Hits DESC

Top 10

0

1000

2000

3000

4000

5000

6000

/Def

ault.

asp

/foru

m/vi

ewtop

ic.ph

p

/eu/

Defau

lt.asp

/foru

m/vi

ewfor

um.p

hp

/com

para

tivo.as

p

/enc

omen

da.a

sp

/who

is.as

p

/who

is_re

sulta

do.a

sp

/eu/

dom

inios

_eu.as

p

/conta

1.asp

Páginas

Ped

idos

Figura 6 – Resultado da Interrogação 1 tratada no Excel

Interrogação SQL 2: Top 10 dos itens mais lentos

SELECT TOP 10 cs-uri-stem AS Url, MIN(time-taken) a s [Min], AVG(time-taken) AS [Avg], max(time-taken) AS [Max], count(time-taken) AS Hits FROM logs WHERE time-taken < 120000 GROUP BY Url ORDER BY [Avg] DESC

Rede de agentes de suporte em e-business para PME IAPMEI

14

Interrogação SQL 3: Endereços requisitados apenas uma vez

SELECT DISTINCT TO_LOWERCASE(cs-uri-stem) AS Url, C ount(*) AS Hits FROM logs WHERE sc-status=200 GROUP BY Url ORDER BY Url

Interrogação SQL 4: Erros HTTP por hora:

SELECT date, QUANTIZE(time, 3600) AS Hour, sc-status AS Status, COUNT(*) AS Errors FROM logs WHERE (sc-status >= 400) GROUP BY date, hour, sc-status HAVING (Errors > 25) ORDER BY Errors DESC

Interrogação SQL 5: Erros HTTP ordenados por Url e Status:

SELECT cs-uri-stem AS Url, sc-status AS Status, COU NT(*) AS Errors FROM logs WHERE (sc-status >= 400) GROUP BY Url, Status ORDER BY Errors DESC

Interrogação SQL 6: Códifos dos erros Win32 por total e pagina:

SELECT cs-uri-stem AS Url, WIN32_ERROR_DESCRIPTION(sc-win32-status) AS Error, Count(*) AS Total FROM logs WHERE (sc-win32-status > 0) GROUP BY Url, Error ORDER BY Total DESC

Interrogação SQL 7: Métodos HTTP (GET, POST) usados por URL:

SELECT cs-uri-stem AS Url, cs-method AS Method, Count(*) AS Total FROM logs WHERE (sc-status < 400 or sc-status >= 500) GROUP BY Url, Method ORDER BY Url, Method

Interrogação SQL 8: Bytes enviados do servidor:

SELECT cs-uri-stem AS Url, Count(*) AS Hits, AVG(sc-bytes) AS Avg, Max(sc-bytes) AS Max, Min(sc-bytes) AS Min, Sum(sc-bytes) AS TotalBytes FROM logs GROUP BY cs-uri-stem

Rede de agentes de suporte em e-business para PME IAPMEI

15

HAVING (Hits > 100) ORDER BY [Avg] DESC

Interrogação SQL 9: Bytes enviados pelo cliente:

SELECT cs-uri-stem AS Url, Count(*) AS Hits, AVG(cs-bytes) AS Avg, Max(cs-bytes) AS Max, Min(cs-bytes) AS Min, Sum(cs-bytes) AS TotalBytes FROM logs GROUP BY Url HAVING (Hits > 100) ORDER BY [Avg] DESC

Interrogação SQL 10: Páginas que demoraram mais de 20 segundos a processar entre

determinado período de tempo:

SELECT [cs-uri-stem], [time-taken] FROM logs WHERE [time-taken] >= 20000 and time between '1899- 12-30 16:30:00.000' and '1899-12-30 17:30:00.000'

Interrogação SQL 11: Verifica quais as páginas que demoram mais tempo a abrir tendo

como referencia o valor médio de tempo de abertura.

Select distinct [cs-uri-stem], [time-taken] From tablename Where [time-taken] > (select avg([time-taken]) From tablename) order by [time-taken] desc)

Rede de agentes de suporte em e-business para PME IAPMEI

16

4. Análise de um conjunto de dados usando regras de associação.

4.1 Conceitos base

As regras de associação são relações entre itens presentes num conjunto de grupos. Uma

regra de associação típica disponibiliza a seguinte informação:

- Se o item x e y estão presentes num grupo, o item z está igualmente presente

em m% dos casos;

- A combinação “x & y & z” ocorre em n% de todos os grupos considerados.

Exemplo:

A seguinte regra de associação é encontrada numa transação de supermercado:

[Tomates & Cenouras] => [Sumo de Laranja]

Com:

Suporte = 0.5 Confiança = 0.8 Lift = 12.4

Onde:

SUPORTE: O valor do Suporte indica que o conjunto Tomates, Cenouras e Sumo de

Laranja está presente em 50% dos transações consideradas no estudo.

CONFIANÇA: O valor da Confiança indica que nas transações onde são encontrados

em conjunto os itens Tomates e Cenouras, o item Sumo de laranja está igualmente

presente em 80% dos casos.

Rede de agentes de suporte em e-business para PME IAPMEI

17

LIFT: Mede a “informatividade” de A relativamente a B. O valor do Lift indica que a

combinação Tomates, Cenouras e Sumo de Laranja é encontrada cerca de 12 vezes a

mais do que esperado. O número esperado de ocorrências é determinado na presunção

que a existencia de Tomates e Cenouras num grupo não influência a probabilidade de

encontrar Sumo de Laranja no mesmo grupo e vice-versa.

Quando se corre um algorítmo, pode potencialmente gerar muitas ou poucas regras. Por

exemplo, não é habitual calcular todas as regras para grandes datasets, seriam muitos. O

inverso pode igualmente acontecer.

Rede de agentes de suporte em e-business para PME IAPMEI

18

4.2 Descobrir Regras de Associação

Utilizam-se diversos métodos/ferramentas para obter as Regras de Associação. Destes

destacam-se o algoritmo APRIORI e diversas ferramentas de DataMining como o

WEKA, Magnum Opus, Caren, SPSS (Clementine) ou Analisys Services

(Microsoft/SQL Server).

Para a preparação dos dados para os formatos de cada aplicação testada utilizou-se fundamentalmente o SQL e o Excel.

Com a base de dados tratada poderemos preparar o cesto (basket) utilizando o campo

[visitante], referente às sessões, e o [cs-uri-stem], referente às páginas visitadas, ou seja,

os artigos do cesto. Os dados, não duplicados, contêm, no caso em estudo, 5289

registos.

Figura 7 – Interrogação SQL para obtenção dos dados a tratar

Rede de agentes de suporte em e-business para PME IAPMEI

19

4.1.1 WEKA

O Weka é uma colecção de algoritmos para Machine Learning para resolver diversos

tipos de problemas de Data Mining. Está escrito em JAVA e corre em praticamente

todas as plataformas. Os algoritmos podem ser aplicados directamente aos datasets ou

ser chamados de outras aplicações JAVA feitas à medida. Inclui diversos métodos para

classificação, regras de associação, descoberta de regras de associação, clustering,

previsão, etc.

Informação adicional sobre o Weka pode ser obtida no URL

http://www.cs.waikato.ac.nz/ml/weka/. Neste endereço encontram-se alguns datasets, do

repositório da UCI, convertidos no formato ARFF (usado pelo Weka).

O formato do ficheiro de dados ARFF compatível com o Weka tem a seguinte configuração:

@relation artigos @attribute visitante REAL @attribute A1 {0,1} @attribute A2 {0,1} @attribute A3 {0,1} (….) @attribute A43 {0,1} @attribute A44 {0,1} @data 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 (…) 1280,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,1,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 1281,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,1,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 1282,0,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,0,1,1,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0

Os resultados obtidos no WEKA com o ficheiro ARFF criado, com 100 instâncias e 9 itens, mantendo os parâmetros por defeito da aplicação, foram os seguintes:

Rede de agentes de suporte em e-business para PME IAPMEI

20

=== Run information === Scheme: weka.associations.Apriori -N 10 -T 0 -C 0.9 -D 0.05 -U 1.0 -M 0.1 -S -1.0 Relation: artigos-weka.filters.unsupervised.att ribute.Remove-R1-9,11,18,20-43,45 Instances: 100 Attributes: 9 A9 A11 A12 A13 A14 A15 A16 A18 A43 === Associator model (full training set) === Apriori ======= Minimum support: 0.95 Minimum metric <confidence>: 0.9 Number of cycles performed: 1 Generated sets of large itemsets: Size of set of large itemsets L(1): 6 Size of set of large itemsets L(2): 11 Size of set of large itemsets L(3): 9 Size of set of large itemsets L(4): 3 Best rules found: 1. A16=0 97 ==> A14=0 97 conf:(1) 2. A15=0 97 ==> A14=0 97 conf:(1) 3. A13=0 97 ==> A14=0 97 conf:(1) 4. A12=0 97 ==> A14=0 97 conf:(1) 5. A15=0 A16=0 96 ==> A14=0 96 conf:(1) 6. A13=0 A15=0 96 ==> A14=0 96 conf:(1) 7. A12=0 A16=0 96 ==> A14=0 96 conf:(1) 8. A12=0 A15=0 96 ==> A14=0 96 conf:(1) 9. A13=0 A16=0 95 ==> A14=0 A15=0 95 conf:(1) 10. A13=0 A14=0 A16=0 95 ==> A15=0 95 conf:(1)

Rede de agentes de suporte em e-business para PME IAPMEI

21

4.1.2 Magnum Opus

O Magnum Opus é uma ferramenta para encontrar regras de associação. Usa o eficiente

e rápido algoritmo de procura OPUS [9].

Mais informação sobre esta ferramenta e download de versão de testes poderá ser obtida

no endereço http://www.rulequest.com/MagnumOpus-info.html.

A versão de testes está limitada a 1000 casos (transacções).

O ficheiro tem o formato basket como se exemplifica a seguir:

1,/DEFAULT.ASP 2,/DEFAULT.ASP 2,/PT/ENCOMENDA_DOM_PT.ASP 2,/EU/DOMINIOS_EU_FORMULARIO.ASP 2,/ENVIAR_CONTACTO.ASP 2,/EU/POLÝTICA_REGISTO.PDF 3,/DEFAULT.ASP 4,/DEFAULT.ASP 4,/WHOIS_RESULTADO.ASP 4,/CONTACTOS.ASP 4,/BANNER4.ASP 4,/BANNER3.ASP 4,/FAQS.ASP 5,/BANNER3.ASP 5,/DEFAULT.ASP 5,/WHOIS_RESULTADO.ASP 5,/CONTACTOS.ASP 5,/FAQS.ASP 6,/FAQS.ASP 6,/BANNER2.ASP 6,/BANNER6.ASP 6,/SUPORTE.ASP 6,/WHOIS_RESULTADO.ASP 6,/BANNER4.ASP 6,/BANNER3.ASP 6,/CONTACTOS.ASP 6,/EU/DEFAULT.ASP 6,/CONTA2.ASP 6,/DEFAULT.ASP 6,/MOODLE/DEFAULT.ASP 6,/WHOIS.ASP 6,/CONTA1.ASP 6,/CONTA3.ASP 6,/CONTA5.ASP 6,/BANNER5.ASP 6,/BLOGS/DEFAULT.ASP 6,/POLITICA.ASP

Rede de agentes de suporte em e-business para PME IAPMEI

22

O campo do dataset referente ao visitante foi convertido para uma sequência numérica

por questões de simplificação e leitura. O ficheiro de texto criado foi gravado com

extensão “.idi”.

A primeira coluna representa o visitante e a segunda (depois da virgula) representa a

página visitada.

Para abrir o ficheiro utilizou-se o botão . Depois de selecconar o ficheiro deverá

seleccionar a opção “Identifier – item file” e premir em “Import Now”

Figura 8 – Abertura do ficheiro

Utilizaram-se os seguintes parâmetros:

Suporte Mínimo: 0.02 Confiança Mínima: 0.01 Lift Mínimo: 1

Rede de agentes de suporte em e-business para PME IAPMEI

23

Figura 9 – Ecrã do Magnum Opus (Definição de valores)

Os resultados obtidos foram:

Magnum Opus - The leader in discovery technology. Version 3.0 Copyright (c) 1999-2005 G. I. Webb & Associates Pty Ltd. Demonstration Version. 1000 case or basket limit. Data file: cesto.idi 536 cases / 0 holdout cases / 67 items Thu Apr 27 13:03:34 2006 Search for rules Search by support Filter out rules that are insignificant, critical v alue=0.01 Maximum number of attributes on LHS = 4 Maximum number of rules = 100 Minimum leverage = -1.0 Minimum leverage count = -2147483647

Rede de agentes de suporte em e-business para PME IAPMEI

24

Minimum coverage = 0.01 Minimum coverage count = 1 Minimum support = 0.02 Minimum support count = 0 Minimum lift = 1 Minimum strength = 0.0 All values allowed on LHS All values allowed on RHS Only 16 rules satisfy the specified constraints. /DEFAULT.ASP is associated with /COMPARATIVO.ASP with strength = 0.080 coverage = 0.655: 351 cases satisfy the LHS support = 0.052: 28 cases satisfy both the LHS and the RHS lift 1.43: the strength is 1.43 times greater than the strength if there were no association leverage = 0.0156: the support is 0.0156 (8.4 cases ) greater than if there were no association /COMPARATIVO.ASP is associated with /DEFAULT.ASP with strength = 0.933 coverage = 0.056: 30 cases satisfy the LHS support = 0.052: 28 cases satisfy both the LHS and the RHS lift 1.43: the strength is 1.43 times greater than the strength if there were no association leverage = 0.0156: the support is 0.0156 (8.4 cases ) greater than if there were no association /DEFAULT.ASP is associated with /WHOIS.ASP with strength = 0.068 coverage = 0.655: 351 cases satisfy the LHS support = 0.045: 24 cases satisfy both the LHS and the RHS lift 1.36: the strength is 1.36 times greater than the strength if there were no association leverage = 0.0118: the support is 0.0118 (6.3 cases ) greater than if there were no association /WHOIS.ASP is associated with /DEFAULT.ASP with strength = 0.889 coverage = 0.050: 27 cases satisfy the LHS support = 0.045: 24 cases satisfy both the LHS and the RHS lift 1.36: the strength is 1.36 times greater than the strength if there were no association leverage = 0.0118: the support is 0.0118 (6.3 cases ) greater than if there were no association /DEFAULT.ASP is associated with /WHOIS_RESULTADO.ASP with strength = 0.054 coverage = 0.655: 351 cases satisfy the LHS support = 0.035: 19 cases satisfy both the LHS and the RHS lift 1.45: the strength is 1.45 times greater than the strength if there were no association leverage = 0.0110: the support is 0.0110 (5.9 cases ) greater than if there were no association /WHOIS_RESULTADO.ASP

Rede de agentes de suporte em e-business para PME IAPMEI

25

is associated with /DEFAULT.ASP with strength = 0.950 coverage = 0.037: 20 cases satisfy the LHS support = 0.035: 19 cases satisfy both the LHS and the RHS lift 1.45: the strength is 1.45 times greater than the strength if there were no association leverage = 0.0110: the support is 0.0110 (5.9 cases ) greater than if there were no association /FORUM/VIEWTOPIC.PHP is associated with /FORUM/VIEWFORUM.PHP with strength = 0.189 coverage = 0.177: 95 cases satisfy the LHS support = 0.034: 18 cases satisfy both the LHS and the RHS lift 2.54: the strength is 2.54 times greater than the strength if there were no association leverage = 0.0204: the support is 0.0204 (10.9 case s) greater than if there were no association /FORUM/VIEWFORUM.PHP is associated with /FORUM/VIEWTOPIC.PHP with strength = 0.450 coverage = 0.075: 40 cases satisfy the LHS support = 0.034: 18 cases satisfy both the LHS and the RHS lift 2.54: the strength is 2.54 times greater than the strength if there were no association leverage = 0.0204: the support is 0.0204 (10.9 case s) greater than if there were no association /DEFAULT.ASP is associated with /CONTA1.ASP with strength = 0.046 coverage = 0.655: 351 cases satisfy the LHS support = 0.030: 16 cases satisfy both the LHS and the RHS lift 1.44: the strength is 1.44 times greater than the strength if there were no association leverage = 0.0091: the support is 0.0091 (4.9 cases ) greater than if there were no association /CONTA1.ASP is associated with /DEFAULT.ASP with strength = 0.941 coverage = 0.032: 17 cases satisfy the LHS support = 0.030: 16 cases satisfy both the LHS and the RHS lift 1.44: the strength is 1.44 times greater than the strength if there were no association leverage = 0.0091: the support is 0.0091 (4.9 cases ) greater than if there were no association /EU/DEFAULT.ASP is associated with /WHOIS.ASP with strength = 0.171 coverage = 0.142: 76 cases satisfy the LHS support = 0.024: 13 cases satisfy both the LHS and the RHS lift 3.40: the strength is 3.40 times greater than the strength if there were no association leverage = 0.0171: the support is 0.0171 (9.2 cases ) greater than if there were no association /WHOIS.ASP is associated with /EU/DEFAULT.ASP with strength = 0.481 coverage = 0.050: 27 cases satisfy the LHS support = 0.024: 13 cases satisfy both the LHS and the RHS

Rede de agentes de suporte em e-business para PME IAPMEI

26

lift 3.40: the strength is 3.40 times greater than the strength if there were no association leverage = 0.0171: the support is 0.0171 (9.2 cases ) greater than if there were no association /DEFAULT.ASP & /EU/DEFAULT.ASP are associated with /WHOIS.ASP with strength = 0.333 coverage = 0.067: 36 cases satisfy the LHS support = 0.022: 12 cases satisfy both the LHS and the RHS lift 6.62: the strength is 6.62 times greater than the strength if there were no association leverage = 0.0190: the support is 0.0190 (10.2 case s) greater than if there were no association /COMPARATIVO.ASP is associated with /WHOIS.ASP with strength = 0.367 coverage = 0.056: 30 cases satisfy the LHS support = 0.021: 11 cases satisfy both the LHS and the RHS lift 7.28: the strength is 7.28 times greater than the strength if there were no association leverage = 0.0177: the support is 0.0177 (9.5 cases ) greater than if there were no association /WHOIS.ASP is associated with /COMPARATIVO.ASP with strength = 0.407 coverage = 0.050: 27 cases satisfy the LHS support = 0.021: 11 cases satisfy both the LHS and the RHS lift 7.28: the strength is 7.28 times greater than the strength if there were no association leverage = 0.0177: the support is 0.0177 (9.5 cases ) greater than if there were no association /DEFAULT.ASP & /FORUM/VIEWTOPIC.PHP are associated with /FORUM/VIEWFORUM.PHP with strength = 0.407 coverage = 0.050: 27 cases satisfy the LHS support = 0.021: 11 cases satisfy both the LHS and the RHS lift 5.46: the strength is 5.46 times greater than the strength if there were no association leverage = 0.0168: the support is 0.0168 (9.0 cases ) greater than if there were no association

Analizando a última regra gerada:

/DEFAULT.ASP & /FORUM/VIEWTOPIC.PHP � /FORUM/VIEWFORUM.PHP

verificamos que tem uma Confiança (Strength) de 40,7% e um Suporte de 2.1 % o que

representa 11 casos nos 536 avaliados.

Rede de agentes de suporte em e-business para PME IAPMEI

27

4.1.3 Caren

Poderemos obter regras de associação utilizando a rotina em Java “Caren”. O Caren é

alimentado por um ficheiro no formato basket. O ficheiro tem um formato basket muito

similar ao utilizado no Magnum Opus, como se exemplifica a seguir:

1 /DEFAULT.ASP 2 /DEFAULT.ASP 2 /PT/ENCOMENDA_DOM_PT.ASP 2 /EU/DOMINIOS_EU_FORMULARIO.ASP 2 /ENVIAR_CONTACTO.ASP 2 /EU/POLÝTICA_REGISTO.PDF 3 /DEFAULT.ASP 4 /DEFAULT.ASP 4 /WHOIS_RESULTADO.ASP 4 /CONTACTOS.ASP 4 /BANNER4.ASP 4 /BANNER3.ASP 4 /FAQS.ASP 5 /BANNER3.ASP 5 /DEFAULT.ASP 5 /WHOIS_RESULTADO.ASP 5 /CONTACTOS.ASP 5 /FAQS.ASP 6 /FAQS.ASP 6 /BANNER2.ASP 6 /BANNER6.ASP 6 /SUPORTE.ASP 6 /WHOIS_RESULTADO.ASP 6 /BANNER4.ASP 6 /BANNER3.ASP 6 /CONTACTOS.ASP 6 /EU/DEFAULT.ASP 6 /CONTA2.ASP 6 /DEFAULT.ASP 6 /MOODLE/DEFAULT.ASP 6 /WHOIS.ASP 6 /CONTA1.ASP 6 /CONTA3.ASP

Para executar o Caren utiza-se a seguinte sintaxe:

java caren <dataset> <minconf> <minsup> -d –Bas

Por exemplo:

java –classpath . caren basket1 0.05 0.1 –d -Bas

Rede de agentes de suporte em e-business para PME IAPMEI

28

onde “basket1” é o nome do ficheiro basket no formato exemplificado anteriormente.

Nesta linha de exemplo utilizou-se o comando “–classpath .” para especificar o local de

execução da “class” Java. Sem esse comando o Java retorna um erro.

Figura 10 – Execução do CAREN no ambiente DOS

De realçar nestes resultados a regra de associação /whois_resultado.asp -> /default.asp com uma confiança de 0.9058.

Rede de agentes de suporte em e-business para PME IAPMEI

29

4.1.4 Outras ferramentas

Seguem exemplos e referências de outras ferramentas ou dados na área dos temas

abordados neste documento.

Nome Azmy SuperQuery

Descrição Inclui procura de regras de associação

Web www.azmy.com

Nome Clementine

Descrição Suite para o SPSS, inclui “market basket analysis”.

Web www.spss.com/clementine

Nome DB2 Intelligent Miner

Descrição Ferramentas de Data Mining da IBM

Web www-306.ibm.com/software/data/iminer/

Nome The LPA Data Mining Toolkit

Descrição supports the discovery of association rules within relational database

Web www.lpa.co.uk/dtm.htm

Rede de agentes de suporte em e-business para PME IAPMEI

30

Nome WebAnalyst

Descrição Inclui “market basket analysis”

Web www.megaputer.com/products/wa/index.php3

Nome Purple Insight MineSet

Descrição Suite Visualde data mining suite, inclui viasualização de regras de associação

Web www.purpleinsight.com/products/product6.shtml

Nome Wizsoft WizRule

Descrição Procura regras de associação

Web www.wizsoft.com

Nome APRIORI

Descrição Programa com o Algoritmo Apriori

Web fuzzy.cs.uni-magdeburg.de/~borgelt/apriori.html

Nome FIMI, Frequent Itemset Mining Implementations

Descrição Inclui software e datasets

Web http://fimi.cs.helsinki.fi/src/

Rede de agentes de suporte em e-business para PME IAPMEI

31

5. Análise e selecção das regras e dos conjuntos frequentes

Os diferentes sistemas disponíveis para obtenção de regras de associação, produzem um

número muito grande de regras que terão que ser analisadas e reduzidas através de um

“pós-processamento”. Coloca-se a questão: “Das regras obtidas, quais as mais

importantes?

A redução das regras obtidas pode ser realizada no seu processamento impondo alguns

limites, como por exemplo o suporte mínimo, a cobertura mínima, etc.

Alguns limites foram impostos no Magnum Opus, do qual obtivemos as três seguintes

regras (entre outras).

REGRA 1

/DEFAULT.ASP & /EU/DEFAULT.ASP are associated with /WHOIS.ASP with strength = 0.333 coverage = 0.067: 36 cases satisfy the LHS support = 0.022: 12 cases satisfy both the LHS and the RHS lift 6.62: the strength is 6.62 times greater than the strength if there were no association leverage = 0.0190: the support is 0.0190 (10.2 case s) greater than if there were no association

REGRA 2

/WHOIS.ASP is associated with /EU/DEFAULT.ASP with strength = 0.481 coverage = 0.050: 27 cases satisfy the LHS support = 0.024: 13 cases satisfy both the LHS and the RHS lift 3.40: the strength is 3.40 times greater than the strength if there were no association leverage = 0.0171: the support is 0.0171 (9.2 cases ) greater than if there were no association

Rede de agentes de suporte em e-business para PME IAPMEI

32

REGRA 3

/DEFAULT.ASP & /FORUM/VIEWTOPIC.PHP are associated with /FORUM/VIEWFORUM.PHP with strength = 0.407 coverage = 0.050: 27 cases satisfy the LHS support = 0.021: 11 cases satisfy both the LHS and the RHS lift 5.46: the strength is 5.46 times greater than the strength if there were no association leverage = 0.0168: the support is 0.0168 (9.0 cases ) greater than if there were no association

As regras 1 e 2, relacionadas, mostram associações que à partida não seriam muito

óbvias. Neste caso em particular indiciam que um utilizador que procura domínio “.EU”

acaba por visitar as páginas relacionadas com as outras extensões (.COM, .NET, etc). O

processo inverso também se verifica.

A confiança (strength) é elevada em ambas as regras.

Nas três regras o Lift é elevado. O Lift mede a informatividade de A relativamente a B.

Se Lift=1 significa que A e B são independentes. Esta medida de interesse permite

eliminar regras com confiança elevada mas com pouco interesse. Nesta perspectiva

interessa ter valores de Lift superiores a 1.

Rede de agentes de suporte em e-business para PME IAPMEI

33

6. Conclusões

A conclusão mais óbvia neste trabalho é que o processamento de grandes volumes de

informação poderá revelar-se complicada, exigindo recursos computacionais especiais.

A hipótese de utilização/implementação de um sistema Market Basket Analysis em tempo real poderá ser extremamente complicada, exigindo recursos computacionais com elevado processamento.

Aparte desta exigência, os métodos utilizados revelam-se extremamente úteis na

obtenção de informações sobre a forma como os visitantes de um site se comportam.

A área do “Web Usage Mining” tem ainda um longo caminho a percorrer na

optimização das ferramentas disponíveis e no estudo da navegabilidade dos sites.

Sendo a INTERNET uma área em forte crescimento, onde muitas das empresas já

presentes nesta rede começam a entrar numa fase de maturidade, urge utilizar e

implementar estes métodos na obtenção de soluções tecnologicamente mais eficazes e

lucrativas para as empresas.

Os algoritmos existentes actualmente para descoberta de regras de associação poderão

encontrar alguns problemas na sua execução quando utilizados em grandes bases de

dados. Há já alguns estudos que analisam este problema e propõem soluções baseadas

em amostras das bases de dados.

Rede de agentes de suporte em e-business para PME IAPMEI

34

7. Referências e conteúdos consultados

[1] EIRINAKI, Magdalini; VAZIRGIANNIS, Michalis: Web Mining for Web

Personalization, Department of Informatics - Athens University of Economics and

Business. Disponível na Internet: http://www.db-net.aueb.gr/michalis/papers/tutorial-

pkdd_05.pdf

[2] MANNILA, Heikki; TOIVONEN, Hannu; e VERKAMO, A. Inkeri: Improved

Methods for Finding Association Rules. Report C-1993-65, Department of Computer

Science, University of Helsinki, February 1994. 20 pages. Disponível na Internet:

http://www.cs.helsinki.fi/TR/C-1993/65

[3] LO, Hing-Po; LU, Linda; CHAN, Miriam: Improving the Webdesign – Mining

Web Data at cityjob.com, Departmant of Management Sciences – City University of

Hong Kong, disponível na Internet:

http://fbweb.cityu.edu.hk/saskdc/contents/Announcement/Improving%20Web%20Desig

n-talk2.ppt

[4] WEBB, Geoffrey I. Efficient Search for Association Rules [online] Abril 2006, Disponível na Internet: http://www.ir.iit.edu/~dagr/DataMiningCourse/Spring2001/Presentations/HANDOUTS_02.pdf

[5] SAYIN, C.Emre: Detecting Potential Customers with Web Usage Mining,

Disponível na Internet: http://students.sabanciuniv.edu/~emres/websi/dataMinProj.doc

[6] The Unofficial Log Parser Support Site. Disponível na Internet:

http://www.logparser.com

[7] IISFAQ. Disponível na Internet: http://www.iisfaq.com/Default.aspx?tabid=3117

[8] How To Use SQL Server to Analyze Web Logs. Disponível na Internet:

http://support.microsoft.com/default.aspx?scid=kb;en-us;Q296085

Rede de agentes de suporte em e-business para PME IAPMEI

35

[9] WEBB, Geoffrey I.: OPUS: An efficient admissible algorithm for unordered

search, Journal of Artificial Intelligence Research, Deakin University, School of

Computing and Mathematics Geelong, Vic, 3217, Australia. Disponível na Internet:

http://www.citebase.org/cgi-bin/fulltext?format=application/pdf&identifier=oai:arXiv.org:cs/9512101

Titulo WEB USAGE MINING

Autor Manuel José Ferreira Monteiro

Contacto [email protected]

Curso e-Business para PME

Data Dezembro de 2006