Upload
vuongtram
View
213
Download
0
Embed Size (px)
Citation preview
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