Departamento de Informática, Universidade do Minho
Braga, 27 de Março de 2005
GRIDSD
Extracção de padrões em bases de
dados de grandes dimensões
Ronnie Alves ([email protected])
http://alfa.di.uminho.pt/~ronnie
Centro de Ciências e Tecnologia da Computação
Departamento de Informática
Escola de Engenharia
Universidade do Minho
PORTUGAL
Departamento de Informática, Universidade do Minho
GRID - Grupo de Investigação e Desenvolvimento em Sistemas de Dados
• DBMS, os maiores e mais pesados
• Exploração dos DBMS
• Mineração de bases de dados
– Large Transactional Tables
– Fracamente acoplado
– Fortemente acoplado
• Extracção de conhecimento via Procedural Schema
– Itemset Mining
• Trabalhos Relacionados
Roteiro
1
Departamento de Informática, Universidade do Minho
GRID - Grupo de Investigação e Desenvolvimento em Sistemas de Dados
• Database Size, Decision Support Systems
– All Environments & UNIX Only: Top honors went to France
Telecom for the largest database in the All Environments and
UNIX Only categories. At 29.2TB, the database was three
times as big as that of the 2001 winner. France Telecom runs
the Oracle Database on HP Superdome servers and HP
RAID storage systems.
• Rows/Records, Decision Support Systems
– All Environments & UNIX Only: AT&T received two
additional Grand Prizes for most rows, All Environments and
UNIX Only categories. The 496 billion-row system
represents a doubling of the highest figure for this category
in 2001.
» March 2004 Issue DM Review Magazine
» http://www.dmreview.com/article_sub.cfm?articleId=8182
DBMS, os maiores e mais pesados
1
Departamento de Informática, Universidade do Minho
GRID - Grupo de Investigação e Desenvolvimento em Sistemas de Dados
• Buscar e Resumir dados
– SQL
• SQL + funções de agregação (count, min, sum,…)
» SELECT Empresa, Produto, SUM(Total)
» FROM Vendas
» GROUP BY Empresa, Produto
» HAVING SUM(Total)>10000
• Extrair Padrões dos dados
– Para além das funcionalidades do SQL ANSI.
» Para tal entra em acção os algoritmos e
ferramentas de mineração
Exploração dos DBMS
1
Departamento de Informática, Universidade do Minho
GRID - Grupo de Investigação e Desenvolvimento em Sistemas de Dados
• Actividade básica,
– encontrar padrões frequentes (itemset mining)
Mineração de bases de dados
1
Departamento de Informática, Universidade do Minho
GRID - Grupo de Investigação e Desenvolvimento em Sistemas de Dados
• Fracamente acoplado
– O processo de mineração é feito fora do DBMS
– Usa o DBMS apenas para buscar os dados
• Fortemente acoplado
– Usa todos os recursos do DBMS para efeitos do processo
de mineração
Mineração de bases de dados
1
Departamento de Informática, Universidade do Minho
GRID - Grupo de Investigação e Desenvolvimento em Sistemas de Dados
•
•
•
Tarefa principal e de maior custo para a geração de Regras de
Associação
Regras da Forma: “A  [support s, confidence c]”.
Examples:
– buys(x, “diapers”)  buys(x, “beers”) [0.5%, 60%]
– age(x, “30-34”) ^ income(x ,“42K-48K”) buys(x, “high
resolution TV”) [2%,60%]
– major(x, “CS”) ^ takes(x, “DB”) grade(x, “A”) [1%, 75%]
Itemset Mining
1
Departamento de Informática, Universidade do Minho
GRID - Grupo de Investigação e Desenvolvimento em Sistemas de Dados
• Apriori
• FP-Growth
Itemset Mining Algoritmos
1
Departamento de Informática, Universidade do Minho
GRID - Grupo de Investigação e Desenvolvimento em Sistemas de Dados
Ck: Candidate itemset of size k
Lk : frequent itemset of size k
L1 = {frequent items};
for (k = 1; Lk !=; k++) do begin
Ck+1 = candidates generated from Lk;
for each transaction t in database do
increment the count of all candidates in Ck+1
that are contained in t
Lk+1 = candidates in Ck+1 with min_support
end
return k Lk;
PROBLEMA: As implementações SQL-based do Apriori geram
vários joins de grande custo na medida em que K aumenta!
Apriori—Pseudocode
1
Departamento de Informática, Universidade do Minho
GRID - Grupo de Investigação e Desenvolvimento em Sistemas de Dados
Database D
TID
100
200
300
400
itemset sup.
C1
{1}
2
{2}
3
Scan D
{3}
3
{4}
1
{5}
3
Items
134
235
1235
25
C2 itemset sup
L2 itemset sup
2
2
3
2
{1
{1
{1
{2
{2
{3
C3 itemset
{2 3 5}
Scan D
{1 3}
{2 3}
{2 5}
{3 5}
Apriori Exemplo
2}
3}
5}
3}
5}
5}
1
2
1
2
3
2
L1 itemset sup.
{1}
{2}
{3}
{5}
2
3
3
3
C2 itemset
{1 2}
Scan D
{1
{1
{2
{2
{3
3}
5}
3}
5}
5}
L3 itemset sup
{2 3 5} 2
1
Departamento de Informática, Universidade do Minho
GRID - Grupo de Investigação e Desenvolvimento em Sistemas de Dados
TID
100
200
300
400
500
Items bought
(ordered) frequent items
{f, a, c, d, g, i, m, p}
{f, c, a, m, p}
{a, b, c, f, l, m, o}
{f, c, a, b, m}
{b, f, h, j, o}
{f, b}
{b, c, k, s, p}
{c, b, p}
{a, f, c, e, l, p, m, n}
{f, c, a, m, p}
Etapas:
Header Table
1. Items frequentes de
tamanho 1
Item frequency head
f
4
c
4
a
3
b
3
m
3
p
3
2. Ordenar os items de forma
descendente
3. Construir a FP-tree
correspondente
FP-Growth
min_support = 0.5
{}
f:4
c:3
c:1
b:1
a:3
b:1
p:1
m:2
b:1
p:2
m:1
1
Departamento de Informática, Universidade do Minho
GRID - Grupo de Investigação e Desenvolvimento em Sistemas de Dados
{}
Header Table
Item frequency head
f
4
c
4
a
3
b
3
m
3
p
3
Conditional pattern bases
f:4
c:3
c:1
b:1
a:3
b:1
p:1
m:2
b:1
p:2
m:1
item
cond. pattern base
c
f:3
a
fc:3
b
fca:1, f:1, c:1
m
fca:2, fcab:1
p
fcam:2, cb:1
FP-Growth Conditional Pattern Base
1
Departamento de Informática, Universidade do Minho
GRID - Grupo de Investigação e Desenvolvimento em Sistemas de Dados
Header Table
Item frequency head
f
4
c
4
a
3
b
3
m
3
p
3
{}
f:4
c:3
c:1
b:1
a:3
b:1
p:1
m:2
b:1
p:2
m:1
m-conditional pattern
base:
fca:2, fcab:1


Todos os padrões
frequentes a m
m,
fm, cm, am,
fcm, fam, cam,
fcam
•PROBLEMA: Tamanho da FP-tree e a memória disponível.
A recursão para geração das Conditional FP-trees implica
em várias reconstruções de tabelas (CONFP)!
FP-Growth Construct Conditional FP-tree
1
Departamento de Informática, Universidade do Minho
GRID - Grupo de Investigação e Desenvolvimento em Sistemas de Dados
• Premissas:
– Não gerar joins
– Não permitir reconstrução de tabelas CONFP
• Programação do DBMS para itemset mining
– Store procedures
– Funções UDF
– Cursores(salvo cuidado!)
Pattern Growth Mining on DBMS
1
Departamento de Informática, Universidade do Minho
GRID - Grupo de Investigação e Desenvolvimento em Sistemas de Dados
• Disponibilzar uma pattern tree
• Extrair padrões via pattern growth
PGS etapas
1
Departamento de Informática, Universidade do Minho
GRID - Grupo de Investigação e Desenvolvimento em Sistemas de Dados
1. Dado um suporte mínimo gerar os itemsets frequentes de
tamanho_1
2. Gerar nova tabela de transações a partir de 1
3. Criar pattern tree
CREATE TABLE #save_time ( start_time datetime not null)
INSERT #save_time VALUES ( GETDATE())
exec genfitems '3' -->removes infrequent 1-L items
exec gentransfi -->generates only transactions with frequent 1-L items
exec genefp -->generates pattern-tree (fp)
exec genpb '3' -->generates the (pb) and (confp)
exec up_confp -->maintain the position control of items
GO
SELECT 'Structure, msec' = DATEDIFF(millisecond, start_time,
getdate())
FROM #save_time
DROP TABLE #save_time
GO
PGS pattern tree
1
Departamento de Informática, Universidade do Minho
GRID - Grupo de Investigação e Desenvolvimento em Sistemas de Dados
1. PROCEDURE EFP
2. DO with (EXISTS TRANSFI)
3. CREATE TABLE EFP (item, cnt, path)
4. CREATE TABLE FP (item, cnt, path)
5. DECLARE
6. BEGIN
7.
count = 1
8.
curpath = null
9.
c_transfi CURSOR for TRANSFI
10. FOR each row in c_transfi
11. BEGIN
12.
curpath = curpath + ‘:’ + c_transfi.item
13.
INSERT INTO EFP
14.
values(c_transfi.item, count, curpath)
15. END
16. SELECT item, sum(cnt) as cnt, path
17. INTO FP
18. FROM EFP
19. GROUP BY item, path
20. END
Pattern tree
1
Departamento de Informática, Universidade do Minho
GRID - Grupo de Investigação e Desenvolvimento em Sistemas de Dados
1. Extracção de single Patterns
2. Extracção de not single Patterns
CREATE TABLE #save_time ( start_time datetime not null)
INSERT #save_time VALUES ( GETDATE())
exec genspg '3' -->generates single patterns in table (patterns)
exec genpg '3' -->add not single patterns in table (patterns)
GO
SELECT 'Mining, msec' = DATEDIFF(millisecond, start_time,
getdate())
FROM #save_time
DROP TABLE #save_time
GO
PGS Minerar
1
Departamento de Informática, Universidade do Minho
GRID - Grupo de Investigação e Desenvolvimento em Sistemas de Dados
1. DECLARE pg_subPath CURSOR for
2.
SELECT *
3.
FROM getTable_pb(@v_prefix,@v_item) order by ord
4.
SELECT list_pg_item = pg_subPath.item
5.
FOR each row in pg_subPath
6.
BEGIN
7.
SELECT node_path = pg_subPath.item+’%’+ c_confp.item
8.
SELECT node_supp =
9.
getNodeSupp(pg_subPath.prefix, node_path)
10.
SELECT pat_item = pg_subPath.item
11.
SELECT pat_fp = node_path+'%'+ pg_subPath.prefix
12.
SELECT pat_cnt = node_supp
13.
SELECT exist_pat = (
14.
SELECT count(*) FROM PATTERNS
15.
WHERE item=pat_item and fp=pat_fp)
16. INSERT INTO PATTERNS (item,fp,cnt)
17. VALUES (pat_item, pat_fp, pat_cnt)
18.
SELECT list_pg_item = list_pg_item
19. +’%’+ pg_subPath.item
20.
END
Fragment Growth
1
Departamento de Informática, Universidade do Minho
GRID - Grupo de Investigação e Desenvolvimento em Sistemas de Dados
Gerador de datasets
1
Departamento de Informática, Universidade do Minho
GRID - Grupo de Investigação e Desenvolvimento em Sistemas de Dados
Comparativo
1
Departamento de Informática, Universidade do Minho
GRID - Grupo de Investigação e Desenvolvimento em Sistemas de Dados
• Problema para portabilidade do algoritmo
– Outro DBMS, outro PGS ORACLE PLSQL
• Máximo cuidado com os cursores!
PGS open questions
1
Departamento de Informática, Universidade do Minho
GRID - Grupo de Investigação e Desenvolvimento em Sistemas de Dados
• Jiawei Han
– http://www-faculty.cs.uiuc.edu/~hanj/
• Bart Goethals
– http://www.adrem.ua.ac.be/~goethals/
• Frequent Itemset Mining Implementations Repository
– http://fimi.cs.helsinki.fi
• Weka 3: Data Mining Software in Java
– http://www.cs.waikato.ac.nz/ml/weka/
Sites
1
Departamento de Informática, Universidade do Minho
GRID - Grupo de Investigação e Desenvolvimento em Sistemas de Dados
• Pattern Growth Tightly Coupled on RDBMS (PKDD’05
submitted)
• Integrating Pattern Growth Mining on SQL Server (technical
report)
• A Hybrid Method to Discover Inter-Transactional Rules
(JISBD’05 accepted)
Trabalhos Relacionados
1
Departamento de Informática, Universidade do Minho
GRID - Grupo de Investigação e Desenvolvimento em Sistemas de Dados
• Ponto de partida para Mineração sobre cubos (ROLAP)
– Itemset mining integrado em RDBMS
– Mineração de cubos pre-computados
– Mineração integrada com os cubos on-the-fly
– Aplicação sobre webhouses
• Primeiras interações
– When the Hunter becomes the prey... (DataGadgets’04)
– Clickstreams, The basis to Establish User Navigation
Patterns (DataMining’04)
– Mining Clickstream based Data Cubes (ICEIS’04)
Trabalhos Relacionados
1
Departamento de Informática, Universidade do Minho
GRID - Grupo de Investigação e Desenvolvimento em Sistemas de Dados
1. Agarwal, R., Shim., R.: Developing tightly-coupled data mining application on a relational
database system. In Proc.of the 2nd Int. Conf. on Knowledge Discovery in Database and
Data Mining, Portland, Oregon (1996)
2. Agrawal, R., Imielinski, T., Swami, A..: Mining association rules between sets of items in large
databases. In Proc. of the ACM SIGMOD Intl. Conference on Management of Data (1993)
207–216
3. Agrawal, R., Srikant., R.: Fast algorithms for mining association rules. In Proc. of the 20th Very
Large Data Base Conference (1994) 487–499
4. Alves, R., Belo, O.: Integrating Pattern Growth Mining on SQL-Server RDBMS. Technical
Report-003, University of Minho, Department of Informatics, May (2005)
http://alfa.di.uminho.pt/~ronnie/files_files/rt/2005-RT3-Ronnie.pdf
5. Alves, R., Gabriel, P., Azevedo, P., Belo, O.: A Hybrid Method to Discover Inter-Transactional
Rules. In Proceedings of the JISBD’2005, Granada (2005) to appear
6. Cheung, W., Zaïane, O. R.: Incremental Mining of Frequent Patterns Without Candidate
Generation or Support Constraint, Seventh International Database Engineering and
Applications Symposium (IDEAS 2003), Hong Kong, China, July 16-18 (2003) 111-116
7. El-Hajj, M., Zaïane, O.R.: Inverted Matrix: Efficient Discovery of Frequent Items in Large
Datasets in the Context of Interactive Mining, in Proc. 2003 Int'l Conf. on Knowledge
Discovery and Data Mining (ACM SIGKDD), Washington, DC, USA, August 24-27 (2003)
109-118
8. Han, J., Pei, J., Yin., Y.: Mining frequent patterns without candidate generation. In Proc. of
ACM SIGMOD Intl. Conference on Management of Data, (2000) 1–12
References(1)
1
Departamento de Informática, Universidade do Minho
GRID - Grupo de Investigação e Desenvolvimento em Sistemas de Dados
9. Hidber, C.: Online association rule mining. In A. Delis, C. Faloutsos, and S. Ghandeharizadeh,
editors, Proceedings of the 1999 ACM SIGMOD International Conference on Management
of Data, volume 28(2) of SIGMOD Record. ACM Press (1999) 145–156
10. Orlando, S., Palmerini, P., Perego, R.: Enhancing the apriori algorithm for frequent set
counting. In Y. Kambayashi, W. Winiwarter, and M. Arikawa, editors, Proceedings of the
Third International Conference on Data Warehousing and Knowledge Discovery, volume
2114 of Lecture Notes in Computer Science (2001) 71–82
11. Orlando, S., Palmerini, P., Perego, R., Silvestri, F.: Adaptive and resource-aware mining of
frequent sets. In V. Kumar, S. Tsumoto, P.S. Yu, and N.Zhong, editors, Proceedings of the
2002 IEEE International Conference on Data Mining. IEEE Computer Society (2002) To
appear
12. Rantzau, R.: Processing frequent itemset discovery queries by division and set containment
join operators. In DMKD03: 8th ACM SIGMOD Workshop on Research Issues in Data
Mining and Knowledge Discovery (2003)
13. Sarawagi, S., Thomas, S., Agrawal, R.: Integrating mining with relational database systems:
alternatives and implications. In Proc. of the ACM SIGMOD Conference on Management of
data, Seattle, Washington, USA (1998)
14. Shang, X., Sattler, K., Geist, I.: Sql based frequent pattern mining without candidate
generation. In SAC’04 Data Mining, Nicosia, Cyprus (2004)
15. Wang, H., Zaniolo, C.: Using SQL to build new aggregates and extenders for ObjectRelational systems. In Proc. Of the 26th Int. Conf. on Very Large Databases, Cairo, Egypt
(2000)
16. Yoshizawa, T., Pramudiono, I., Kitsuregawa, M.: Sql based association rule mining using
commercial rdbms (ibm db2 udb eee). In In Proc. DaWaK, London, UK (2000)
References(2)
1
Departamento de Informática, Universidade do Minho
Belém, 10 de Janeiro de 2005
GRIDSD
Extracção de padrões em bases de
dados de grandes dimensões
Ronnie Alves ([email protected])
http://alfa.di.uminho.pt/~ronnie
Centro de Ciências e Tecnologia da Computação
Departamento de Informática
Escola de Engenharia
Universidade do Minho
PORTUGAL
Download

Slide 1