Universidade Federal de Uberlândia - Mestrado em Ciência da Computação
Lista de Exercı́cios n0 2 - Data Mining : SEQUÊNCIAS
10 Semestre de 2003
Profa. Sandra A. de Amo
Exercı́cios muito fáceis, simples aplicação de algoritmos vistos em aula, cujo
objetivo é rever e testar se a matéria dada em aula foi bem assimilada.
1. Considere o seguinte banco de dados de sequências de transações de clientes:
IdCl
c1
c2
c3
c4
c5
c6
c7
c8
c9
c10
Itemsets
< {1, 2, 7}, {3, 9, 10}, {4, 7, 8} >
< {2, 9, 10}, {1, 6}, {7, 5} >
< {1}, {4, 8}, {2, 9}, {3, 10} >
< {2}, {2, 8}, {7, 9} >
< {10}, {5, 7} >
< {5, 8}, {1, 3}, {2, 7} >
< {1, 2, 7, 5}, {3, 9, 10, 8} >
< {9}, {2}, {4} >
< {8}, {10}, {11, 12} >
< {2, 9}, {1, 2, 6}, {7, 10} >
Supondo um limite mı́nimo de suporte de 20%, aplique o algoritmo Apriori-All sobre
este banco de dados e exiba todas as k-sequências de itemsets frequentes.
2. Considere o mesmo input do problema anterior. Resolva o problema aplicando o
algoritmo GSP.
3. Considere o seguinte banco de dados de sequência de compras de clientes (onde em
cada compra, só um item foi comprado).
IdCl
c1
c2
c3
c4
c5
c6
c7
c8
c9
c10
Itemsets
< a, c, d, e >
< a, e, f, g >
< b, f, e >
< c, f, e, h, i >
< a, e, f, g >
< g, h, a, f, e >
< a, g, g, a, f, h >
< g, h, h, f, e >
< f, e, a >
< g, f, f, f, a >
Considere um nı́vel mı́nimo de suporte de 20% e uma expressão regular R =
aE ∗ e + gE ∗ f (o usuário só está interessado em sequências que iniciam com a e
terminam com e ou em sequências que iniciam com a g terminam com f). A expressão E é dada por E = (a + b + c + d + e + f + g + h + i).
Resolva o problema aplicando o algoritmo SPIRIT(V) e SPIRIT(N). Repare que
ambos devem dar os mesmos resultados. Complete o seguinte quadro estatı́stico
abaixo :
Algoritmo
Total de Candidatos Gerados
Número de Iterações
SPIRIT(N)
SPIRIT(V)
4. Dê um exemplo que justifique por que, na fase da podagem dos algoritmos SPIRIT,
para que uma k-sequência s seja podada é necessário verificar a existência de uma
subsequência s0 de tamanho menor do que k que satisfaça a restrição R e não seja
frequente, isto é, que s0 6∈ L. Isto é : você deve exibir uma s de tamanho k (por
exemplo, 3) tal que toda subsequência de tamanho 2 é frequente e satisfaz R, mas
existe uma de tamanho 1 que não satisfaz R. Isto seria possı́vel se a restrição fosse
antimonotônica ?
Exercı́cios razoavelmente fáceis e que exigem um mı́nimo de raciocı́nio
5. Suponha que um usuário de um sistema de Data Mining esteja interessado em
minerar sequências de itemsets, mas deseja interagir com o mesmo propondo certas
condições sobre as sequências a serem mineradas. Para cada uma das propostas
abaixo, classifique-a em Restrições de Geração ou Restrições de Validação, justificando muito bem sua resposta :
(a) Só estou interessado em sequências de compras semanais, isto é, que ocorrem
a cada perı́odo de 7 dias.
(b) Só estou interessado em sequências de compras que possuem items que se
repetem a cada compra.
(c) Só estou interessado em sequências de compras semanais, isto é, que ocorrem
a cada perı́odo de 7 dias e onde em cada compra consta o item ”cerveja”.
(d) Só estou interessado em sequências de compras que ocorrem em dias de jogo da
selecao brasileira de futebol e onde em cada compra consta o item ”cerveja”.
(e) Só estou interessado em sequências de compras que ocorrem num intervalo de
30 dias.
(f) Só estou interessado em sequências de compras que ocorrem num intervalo de
30 dias e tais que o intervalo entre uma compra e outra não excede 2 dias.
(g) Só estou interessado em sequências de compras que ocorrem num intervalo de
30 dias e tais que o intervalo entre uma compra e outra é de pelo menos 3 dias.
(h) Só estou interessado em sequências de compras que ocorrem num intervalo de
30 dias e que contenham, no total dos items comprados durante este perı́odo,
todos os itens que constam da “cesta básica”
(i) Só estou interessado em sequências de compras onde pelo menos uma das compras contenha o itemset “cerveja” e onde pelo menos uma das compras contenha
o itemset “vinho” (estas compras respectivas podem ou não corresponderem à
mesma compra).
6. Considere o seguinte problema de mineração de dados : o banco de dados D é constituı́do de três tabelas :
Cliente(IdCl,Cidade,Telefone)
Loja(IdLoja,NomeL,Cidade)
Compra(IdCl,IdLoja,Itemset,Data)
Suponha que o seu cliente (usuário do seu sistema de mineração de dados) esteja
interessado em :
(*) : Conhecer a evolução das compras dos clientes que moram numa
cidade A, e tais que as compras foram efetuadas numa certa rede
de lojas B, numa filial que fica na cidade C.
Repare que A, B, C são parâmetros fornecidos pelo usuário. O seu problema de
mineração consiste pois no seguinte :
Input : D, um nı́vel mı́nimo de suporte α, um valor para A, um valor para B e um
valor para C.
Output : todas as sequências frequentes satisfazendo a condição (*) requerida pelo
usuário.
Pede-se : adapte o algoritmo GSP para resolver este problema.
Sugestão: O requisito do usuário (*) consiste em considerar a seguinte visão materializada (ou data warehouse) sobre os dados:
SELECT Cliente.IdCl,Cliente.Itemset, Cliente.Data
FROM Cliente, Loja, Compra
WHERE Compra.IdCl = Cliente.IdCl AND Loja.IdLoja = Compra.IdLoja
AND NomeL = A AND Cliente.Cidade = B AND Loja.Cidade = C
Exercı́cios razoavelmente difı́ceis (não muito, perfeitamente dentro do
que se espera de um mestrando), que exigem um pouco de raciocı́nio e
criatividade
7. Adapte o algoritmo GSP para minerar sequências satisfazendo uma restrição de
MIN-MAX (m,M) dada.(Não se exige que o algoritmo que você dê seja o mais
eficiente possı́vel, mas seria importante que você tentasse raciocinar no sentido de
propor uma maneira eficiente de resolver o problema).
8. Adapte o algoritmo GSP para minerar sequências satisfazendo uma restrição de
TIME-WINDOW W dada. (Não se exige que o algoritmo que você dê seja o mais
eficiente possı́vel, mas seria importante que você tentasse raciocinar no sentido de
propor uma maneira eficiente de resolver o problema).
9. Desenvolva um método para armazenar sequências numa árvore-hash de modo a
ser utilizado nas etapas de cálculo do suporte e poda no algoritmo Apriori-All.
Lembre-se que neste algoritmo, os itemsets frequentes são calculados logo no inı́cio
e enumerados. A partir daı́, os padrões sequenciais são sequências de números.
Lembre-se também que o Apriori-All transforma o banco de dados de input num
banco de dados de sequências de conjuntos de números( onde cada número corresponde a um itemset frequente na ordenação estabelecida). Veja portanto que, ao
contrário do que acontece em GSP, no algoritmo Apriori-All os padrões sequenciais e
as sequências do cliente são objetos de natureza distinta: o primeiro é um sequência
de números (representando itemset frequentes), o segundo é uma sequência de conjuntos de números (cada número representando um itemset frequente).
10. Mostre que no algoritmo SPIRIT(L), se L0q0 = ∅ (o conjunto das sequências frequentes e legais com respeito ao estado incial do autômato e que têm comprimento
igual a k) então o algoritmo SPIRIT(L) pára.
11. Suponha que uma cadeia de pizzarias esteja interessada em minerar o comportamento de consumo de seus clientes, relacionado a grandes eventos esportivos. Coisas
do tipo “Toda vez que é transmitido um jogo da seleção de futebol brasileira pela
TV, as vendas de pizza sobem de 20% uma hora antes do inı́cio do jogo”.
(a) Formalize o problema : quais são os padrões sequenciais ? Como é o banco de
dados de input ? O que é um padrão frequente ?
(b) Proponha um método para resolver este problema.
Download

lista 2 - Sandra de Amo - Universidade Federal de Uberlândia