Data Mining: Indução de Regras de Associação Leonardo Cole Neto

Download Report

Transcript Data Mining: Indução de Regras de Associação Leonardo Cole Neto

Data Mining:
Indução de Regras de
Associação
Leonardo Cole Neto
Rodrigo Teixeira Ramos
May 25, 2016
1
Minerando Regras de Associação
em Grandes Bases de Dados




Minerando regras de associação
Minerando regras de associação booleana unidimensionais a partir de bancos transacionais
Minerando regras de associação multi-nível a partir de
bancos transacionais
Minerando regras de associação multi-dimencionais a
partir de bancos transacionais e data warehouses

Da mineração de associações à análise de correlação

Mineração de associações baseada em restrições

Resumo
May 25, 2016
2
Mineração de Regras de Associação
Definição:
 Achar padrões, associações, correlações frequentes em
conjuntos de itens ou objetos em um banco de dados
transacional, relacional ou outros tipo de repositórios
de informação.
 Aplicações:
 Análise de compras, cross-marketing, design de
catálogos de produtos, clustering, classificação, etc.
 Exemplos.
 Regra: “Body ead [support, confidence]”.
 buys(x, “diapers”)  buys(x, “beers”) [0.5%, 60%]
 major(x, “CS”) ^ takes(x, “DB”) grade(x, “A”) [1%,
75%]

May 25, 2016
3
Regras de Associação: Conceitos
Básicos



Dados: (1) conjunto de transações, (2) cada transação é
uma lista de itens (comprados por um cliente em uma
visita)
Achar: todas as regras que correlacionam a presença de
um conjunto de itens com a presença de outro conjunto de
itens em uma mesma transação
 E.g., 98% das pessoas que compram pneus e auto-
acessórios, também fazem algum serviço automotivo.
Achar: todas as regras X & Y  Z com um mínimo de
support e confidence
 Suporte (support), s, probabilidade que uma transação
contenha {X  Y  Z}
 Confidência (confidence), c, probabilidade condicional
que uma transação que contenha {X  Y} também
May 25, 2016
4
Minerando Regras de Associação
em Grandes Bases de Dados




Minerando regras de associação
Minerando regras de associação booleana unidimensionais a partir de bancos transacionais
Minerando regras de associação multi-nível a partir de
bancos transacionais
Minerando regras de associação multi-dimencionais a
partir de bancos transacionais e data warehouses

Da mineração de associações à análise de correlação

Mineração de associações baseada em restrições

Resumo
May 25, 2016
5
Mineração de Regras de Associação



Associações booleanas vs. quantitativas (Baseadas nos tipos
de valores manuseados)
 buys(x, “SQLServer”) ^ buys(x, “DMBook”) buys(x,
“DBMiner”) [0.2%, 60%]
 age(x, “30..39”) ^ income(x, “42..48K”) buys(x, “PC”)
[1%, 75%]
Associações Uni-dimensionais vs. Multi-dimensionais
(Baseadas nas dimensões dos dados envolvidos)
Análise de Nível único vs. Múltiplos níveis (Baseadas nos
níveis de abstração)
 age(x, “30..39”) buys(x, “laptop computer”)
 age(x, “30..39”)  buys(x, “computer”)
May 25, 2016
6
Mineração de conjuntos de itens
frequentes: O passo chave

Achar os conjuntos de itens frequentes (itemsets
frequentes): o conjunto de itens que tem um mínimo
de support

Um subconjunto de um itemset frequente, também
deve ser um itemset frequente



Se {AB} é um itemset frequente, ambos {A} e {B} devem
ser itemsets frequentes
Achar iterativamente itemsets frequentes com
cardinalidade de 1 à k (k-itemset)
Usar os itemsets frequentes para gerar as regras de
associação.
May 25, 2016
7
O algoritmo Apriori

Passo de união(join): Ck é gerado, unindo Lk-1com ele mesmo
Passo de poda(prune): Qualquer (k-1)-itemset que não seja

Pseudo-código:

frequente, não pode ser um subconjunto de um k-itemset
frequente
Ck: itemset candidato de tamanho k
Lk : itemset frequente de tamanho k
L1 = {items frequentes de tamanho 1};
for (k = 1; Lk !=; k++) do begin
Ck+1 = candidatos gerados a partir de Lk;
for each transaction t in database do
incremente o contador de todos os candidatos em Ck+1
que estão contidos em t
Lk+1 = candidatos em Ck+1 com min_support
end
return k Lk;
May 25, 2016
8
O algoritmo Apriori - Exemplo
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}
May 25, 2016
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
9
Como gerar os candidatos?

Suponha que os itens em Lk-1 são listados em uma ordem

Passo 1: auto-união Lk-1 (joining step)
insert into Ck
select p.item1, p.item2, …, p.itemk-1, q.itemk-1
from Lk-1 p, Lk-1 q
where p.item1=q.item1, …, p.itemk-2=q.itemk-2, p.itemk-1 < q.itemk1

Passo 2: poda (prune step)
forall itemsets c in Ck do
forall (k-1)-subsets s of c do
if (s is not in Lk-1) then delete c from Ck
May 25, 2016
10
Exemplo da geração dos candidatos

L3={abc, abd, acd, ace, bcd}

Auto-união: L3*L3


abcd de abc e abd

acde de acd e ace
Poda:


acde é removido pois ade não está em L3
C4={abcd}
May 25, 2016
11
Gargalos de performance no Apriori

O núcleo do algoritmo:




Usa (k – 1)-itemsets frequentes para gerar k-itemsets candidatos
Usa iterações pelo BD e casamento de padrões para coletar
contadores para os itemsets candidatos
O gargalo do Apriori: geração dos candidatos
Grandes conjuntos de candidatos:



104 1-itemset frequentes gerarão 107 2-itemsets candidatos
Para descobrir um padrão frequente de tamanho 100, é
necessária a geração de 2100  1030 candidatos.
Múltiplas iterações pelo BD:

May 25, 2016
Necessita (n +1 ) iterações, onde n é o tamanho do maior
padrão
12
Métodos para melhorar a eficiência do
Apriori

Contagem dos itemsets baseada em Hashes: Um k-itemset que tenha o
contador do hashing bucket abaixo de um limite, não pode ser frequente

Redução de transações: Uma transação que não contenha nenhum kitemset frequente, é inútil para as próximas iterações do algoritmo

Particionamento: Qualquer itemset que é potencialmente frequente no BD
deve ser frequente em pelo menos uma partição do mesmo

Amostragem: Mineração em um subconjunto dos dados, menor limite de
support + um método para determinar a completude

Contagem dinâmica de itemsets: Adicionar um novo candidato somente
quando todos os seus subconjuntos são estimados como frequentes
May 25, 2016
13
Mineração de padrões frequentes
sem a geração de candidatos

Compactar uma grande base de dados na estrutura
compacta de uma árvore FP, Frequent-Pattern tree (FPtree)



Altamente condensada, mas completa para mineração
de padrões frequentes
Evita iterações custosas com o BD
Desenvolver um método eficiente, baseado em FP-tree,
para mineração de padrões frequentes


May 25, 2016
Dividir para conquistar: decompor tarefas de
mineração
Evitar geração de candidatos
14
Construindo uma FP-tree a partir
de um BD transacional
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}
Steps:
1. Na primeira iteração com o
BD, achar os 1-itemset
frequentes
2. Ordenar os itens frequentes
em ordem descendente
3. Numa ova iteração com o
banco, construir a árvore
May 25, 2016
min_support = 0.5
{}
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
15
Benefícios da FP-tree


Completude:
 Nunca quebra padrões longos em uma transação
 Preserva completamente a informação para mineração
de padrões frequentes
Tamanho compacto
 Reduz informação irrelevante — itens infrequentes
somem
 Ordenação descendente da frequencia: quanto mais
frequentes, mais compartilhados ficam os itens
 Nunca é maior que a base de dados original
May 25, 2016
16
Mineração de padrões frequentes
usando FP-tree


Dividir para conquistar
 Recursivamente, aumentar os padrões frequentes
usando FP-tree
Método
 Para cada item, construir seu pattern-base condicional,
e então sua FP-tree condicional
 Repetir o processo para cada nova FP-tree condicional
 Até que a FP-tree resultante seja vazia, ou contenha
somente um caminho (caminhos únicos gerarão todas as
combinações de seus sub-caminhos, cada um dos quais é um
padrão frequente)
May 25, 2016
17
Passo 1: Da FP-tree para o PatternBase Condicional



Começando pela tabela de frequencia da FP-tree
Atravessar a FP-tree seguindo o link de cada item frequente
Acumular todos os prefixos de caminhos transformados deste
item apartir de um pattern-base condicional
Header Table
Item frequency head
f
4
c
4
a
3
b
3
m
3
p
3
{}
f:4
c:3
p:2
May 25, 2016
c:1
b:1
a:3
m:2
Pattern-bases condicionais
b:1
p:1
b:1
item
pattern-base cond.
c
f:3
a
fc:3
b
fca:1, f:1, c:1
m
fca:2, fcab:1
p
fcam:2, cb:1
m:1
18
Passo 2: Construir a FP-tree
Condicional

Para cada pattern-base
 Construir a FP-tree para os itens frequentes do
pattern-base
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
m-conditional pattern
base:
fca:2, fcab:1
b:1
{}
p:1
f:3
m:2
b:1
c:3
p:2
m:1
a:3
Todos os padrões
frequentes
relacionados com m
m,
fm, cm, am,
fcm, fam, cam,
fcam
m-conditional FP-tree
May 25, 2016
19
Mineração de Padrões Frequentes
Criando Pattern-Bases Condicionais
Item
Conditional pattern-base
Conditional FP-tree
p
{(fcam:2), (cb:1)}
{(c:3)}|p
m
{(fca:2), (fcab:1)}
{(f:3, c:3, a:3)}|m
b
{(fca:1), (f:1), (c:1)}
Empty
a
{(fc:3)}
{(f:3, c:3)}|a
c
{(f:3)}
{(f:3)}|c
f
Empty
Empty
May 25, 2016
20
Geração de caminhos únicos na
FP-tree


Suponha que uma FP-tree T tenha um caminho único P
O conjunto completo dos padrões frequentes de T podem
ser gerados através da enumeração de todas as
combinações dos sub-caminhos de P
{}
f:3
c:3
a:3
Todos os padrões
frequentes
relacionados com m
m,
fm, cm, am,
fcm, fam, cam,
fcam
m-conditional FP-tree
May 25, 2016
21
Por que o crescimento do padrões
frequentes é rápido?

Estudos de performance mostram que

O crescimento FP é uma ordem de
magnetude mais rápido que o Apriori

Motivos
May 25, 2016

Não há geração ou teste de candidatos

Estrutura de dados compacta

Elimina iterações repetidas com o banco
22
Iceberg Queries


Icerberg query: Computar agregações sobre um atributo
ou um conjunto de atributos somente para aquelas com
valor de agregação maior que um certo limite
Exemplo:
select P.custID, P.itemID, sum(P.qty)
from purchase P
group by P.custID, P.itemID
having sum(P.qty) >= 10

Computar iceberg queries eficientemente com Apriori:
 Primeiro, computar as menores dimensões
 Então computar as maiores dimensões somente
quando todas as menores estiverem acima do limite
May 25, 2016
23
Regras de associação de multiplos
níveis





Itens sempre em hierarquias.
Itens em níveis mais baixos
são esperados como tendo o
support mais baixo
Regras dizendo respeito a
itemsets de um determinado
nível são muito úteis
BD`s transacionais podem
ser codificados, baseados em
dimensões e níveis
Podemos explorar mineração
de múltiplos níveis
compartilhada
May 25, 2016
Food
bread
milk
skim
Fraser
TID
T1
T2
T3
T4
T5
2%
wheat
white
Sunset
Items
{111, 121, 211, 221}
{111, 211, 222, 323}
{112, 122, 221, 411}
{111, 121}
{111, 122, 211, 221, 413}
24
Minerando Regras de Associação
em Grandes Bases de Dados




Minerando regras de associação
Minerando regras de associação booleana unidimensionais a partir de bancos transacionais
Minerando regras de associação multi-nível a partir de
bancos transacionais
Minerando regras de associação multi-dimencionais a
partir de bancos transacionais e data warehouses

Da mineração de associações à análise de correlação

Mineração de associações baseada em restrições

Resumo
May 25, 2016
25
Associações de Multiplos Níveis:
Suporte Uniforme vs. Suporte Reduzido

Suporte uniforme: mesmo valor de suporte mínimo para todos os
níveis
 + Um limite de suporte mínimo. Não há necessidade de examinar
itemsets contendo qualquer item cujos antecessores não tenham o
mínimo suporte.


– Itens de níveis baixos não ocorrem com muita frequencia. Se o
limite do suporte é:
 Muito alto  perda de associações em níveis baixos
 Muito baixo  gera muitas associações de alto-nível
Suporte reduzido: reduz o míni,mo suporte em níveis mais baixos
 Existem 4 estratégias de busca:




May 25, 2016
Independente nível-por-nível
Filtragem de níveis cruzados por k-itemset
Filtragem de níveis cruzados por item
Filtragem controlada de níveis cruzados por item
26
Suporte Uniforme
Mineração múltiplos níveis com suporte uniforme
Nível 1
min_sup = 5%
Nível 2
min_sup = 5%
May 25, 2016
Milk
[support = 10%]
2% Milk
Skim Milk
[support = 6%]
[support = 4%]
27
Suporte Reduzido
Mineração de multiplos níveis com suporte reduzido
Nível 1
min_sup = 5%
Nível 2
min_sup = 3%
May 25, 2016
Milk
[support = 10%]
2% Milk
Skim Milk
[support = 6%]
[support = 4%]
28
Associações de Multiplos Níveis :
Filtragem de Redundâncias




Algumas regras podem ser redundantes devido à relações
“antecessoras” entre itens.
Exemplo
 milk  wheat bread
[support = 8%, confidence = 70%]
 2% milk  wheat bread [support = 2%, confidence = 72%]
Dizemos que a primeira regra é uma antecessora da
segunda.
Uma regra é redundante se seu suporte é próximo do
valor esperado, baseado na regra antecessora.
May 25, 2016
29
Minerando Regras de Associação
em Grandes Bases de Dados




Minerando regras de associação
Minerando regras de associação booleana unidimensionais a partir de bancos transacionais
Minerando regras de associação multi-nível a partir de
bancos transacionais
Minerando regras de associação multi-dimencionais a
partir de bancos transacionais e data warehouses

Da mineração de associações à análise de correlação

Mineração de associações baseada em restrições
May 25, 2016
30
Associação Multi-Dimensional:
Conceitos




Regras Uni-dimensionais ou Intra-dimensionais:
buys(X, “milk”)  buys(X, “bread”)
Regras Multi-dimensionais :
 Regras e Associação Inter-dimensionais (sem repetencia de
predicados)
age(X,”19-25”)  occupation(X,“student”)  buys(X,“coke”)
 Regras e Associação hibrido-dimensionais (repetencia de
predicados)
age(X,”19-25”)  buys(X, “popcorn”)  buys(X, “coke”)
Atributos Categoricos
 numero finito de possibilidade de valores, sem ordenação.
Atributos Quantitativos
 numericos, com ordem de valores implicitos
May 25, 2016
31
Técnicas para minerar
Associações Multi-Dimensionais

Busca pelo conjunto mais frequente de k-predicados:
 Exemplo: {age, occupation, buys} é um conjunto de 3predicados.
 Técnicas podem ser categorizadas por como tratam cada
predicado. ex: age.
1. Usando discretização estática de atributos quantitativos
 Atributos quantitativos são discretizados estaticamente usando
conceitos hierárquicos pré-definidos.
2. Regras de associação quantitativas
 Atributos quantitativos são discretizados dinamicamente em
grupos baseados na distribuição dos dados.
3. Regras de associação baseados em distancia
 Processo de discretização dinâmica considerando a distancia
entre pontos de dados.
May 25, 2016
32
Discretização estática de atributos
quantitativos

Discretização prévia na mineração usando conceitos hierárquicos.

Valores numéricos são substituídos por intervalos de valores (ranges).

Como em BDs relacionais, esta busca requer k varreduras em suas
tabelas, Cubos de dados são preferíveis para mineração.
()
(age)
(age, income)
(income
)
(buys)
(age,buys)(income,buys)
(age,income,buys)
May 25, 2016
33
Regras de Associação
Quantitativas

Atributos numéricos são dinamicamente discretizados para satisfazer
algum critério de mineração.
 como a confiança (confidence) ou a coesão (compactness) das
regras mineradas serem maximizadas.
Regras de associação quantitativas 2-D: Aquan1  Aquan2  Acat

Exemplo:

age(X,”30-34”)  income(X,”24K 48K”)
 buys(X,”high resolution TV”)
May 25, 2016
34
Uma abordagem - ARCS (Association Rule
Clustering System)
Como o ARCS trabalha?
1. Particionar (Binning)
2. Encontrar conjuntos
de predicados
mais freqüentes
3. Clustering
4. Otimizar
May 25, 2016
35
Minerando regras de associação
baseadas em distancia


Métodos de Particionamento (Binning) não capturam a semântica dos
intervalos de dados
Price($)
Equi-width
(width $10)
Equi-depth
(depth 2)
Distancebased
7
20
22
50
51
53
[0,10]
[11,20]
[21,30]
[31,40]
[41,50]
[51,60]
[7,20]
[22,50]
[51,53]
[7,7]
[20,22]
[50,53]
Particionamento baseado em distancia, criam descretizações mais
significantes considerando:
 densidade/numero de ponto em um intervalo
 coesão (“closeness”) dos pontos em um intervalo
May 25, 2016
36
Minerando Regras de Associação
em Grandes Bases de Dados




Minerando regras de associação
Minerando regras de associação booleana unidimensionais a partir de bancos transacionais
Minerando regras de associação multi-nível a partir de
bancos transacionais
Minerando regras de associação multi-dimencionais a
partir de bancos transacionais e data warehouses

Da mineração de associações à análise de correlação

Mineração de associações baseada em restrições
May 25, 2016
37
Medidas de Interesse

Medidas Objetivas


Medidas subjetivas (Silberschatz & Tuzhilin, KDD95)
Uma regra (pattern) é interessante se
 ela é inesperada (unexpected) ; e/ou


May 25, 2016
suporte (support); e confidencia (confidence)
utilizável (actionable)
Medidas subjetivas variam de usuário para usuário, assim
medidas objetivas baseadas na estatística
38
Critica ao Suporte e Confidencia

Exemplo 1:
 Entre 5000 estudantes
 3000 jogam basquete
 3750 comem cereal
 2000 jogam basquete e comem cereal
 joga basquete  come cereal [40%, 66.7%] é equivocado
porque a porcetagem total de estudante que comem cereal é
75% que é maior que 66.7%.
 jogam basquete  não come cereal [20%, 33.3%] é bem mais
preciso, embora com menor suporte (support) e confidencia
(confidence)
basketball not basketball sum(row)
cereal
2000
1750
3750
not cereal
1000
250
1250
sum(col.)
3000
2000
5000
May 25, 2016
39
Crítica ao Suporte e Confidência
(Cont.)


Exemplo 2:
 X e Y: positivamente correlacionado,
 X e Z, negativamente relacionando
 suporte e confidencia de
X=>Z domina
É necessária uma medida de
dependência ou correlação
corrA, B

P( A B)
=
P( A) P( B)
X 1 1 1 1 0 0 0 0
Y 1 1 0 0 0 0 0 0
Z 0 1 1 1 1 1 1 1
Rule Support Confidence
X=>Y 25%
50%
X=>Z 37.50%
75%
P(B|A)/P(B) é também chamada de lift
da regra A => B
May 25, 2016
40
Outra medida de interesse

Interesse (correlação, lift)
P( A  B)
P( A) P( B)

Colocando ambos P(A) e P(B) em consideração

P(A^B)=P(B)*P(A), se A e B são eventos independentes

A e B são negativamente correlacionados, se o valor e menor que 1;
caso contrário A e B são positivamente correlacionados
X 1 1 1 1 0 0 0 0
Y 1 1 0 0 0 0 0 0
Z 0 1 1 1 1 1 1 1
May 25, 2016
Itemset
Support
Interest
X,Y
X,Z
Y,Z
25%
37.50%
12.50%
2
0.9
0.57
41
Minerando Regras de Associação
em Grandes Bases de Dados




Minerando regras de associação
Minerando regras de associação booleana unidimensionais a partir de bancos transacionais
Minerando regras de associação multi-nível a partir de
bancos transacionais
Minerando regras de associação multi-dimencionais a
partir de bancos transacionais e data warehouses

Da mineração de associações à análise de correlação

Mineração de associações baseada em restrições
May 25, 2016
42
Mineração Baseada em Restrições


Mineração é executada sob a orientação de varias
restrições do usuário.
Tipos de restrições que podem ser usadas na mineração:
 Knowledge type constraint: classificação, associação,
etc.
 Data constraint: SQL-like queries


Dimension/level constraints:


small sales (price < $10) triggers big sales (sum > $200).
Interestingness constraints:

May 25, 2016
in relevance to region, price, brand, customer category.
Rule constraints


Find product pairs sold together in Vancouver in Dec.’98.
strong rules (min_support  3%, min_confidence  60%).
43
Regras de Restrição


Dois tipos de regras de restrição:
 Regra de restrição sintática (Rule form constraints): meta-rule
guided mining.

P(x, y) ^ Q(x, w) takes(x, “database systems”).
 Regra de restrição por contexto (Rule content constraint):
constraint-based query optimization (Ng, et al., SIGMOD’98).
 sum(LHS) < 100 ^ min(LHS) > 20 ^ count(LHS) > 3 ^
sum(RHS) > 1000
Restrições com 1-variável vs. 2-:
 1-var: Uma restrição confinada somente a um lado (Dir/Esq) da
regras, ex. como mostrada acima.
 2-var: Uma restrição confinada em ambos os lados.
 sum(LHS) < min(RHS) ^ max(RHS) < 5* sum(LHS)
May 25, 2016
44
Restrições Anti-monotonica and
Monotonica

Uma restrição Ca é anti-monotonica, caso um conjunto S violar a
restrição Ca, nenhum super-conjunto de S viola a restrição.

Uma restrição Ca é monotonica, caso um conjunto S satisfaça a
restrição Ca, todo super-conjunto de S satisfaz restrição.

Exemplos:

sum(S.Price)  v é anti-monotonica

sum(S.Price)  v é monotonica
May 25, 2016
45
Restrições Succinct


Uma restrição Ca é succinct, caso seja possível enumerar todos os
conjuntos que satisfazem a restrição.
Exemplo :
 sum(S.Price )  v não é succinct
 min(S.Price )  v é succinct
May 25, 2016
46
Restrições Convertiveis


Restrições que podem variar de acordo com a ordenamento dos
itemset.
Ex.: Tendo R um conjunto de itens
 Se o valores forem ordenados decrescentemente,
I={9, 8, 6, 4, 3, 1}, Avg(S)  v é monotonica
 Se o valores forem ordenados crescentemente,
I={1, 2, 4, 6, 8, 9}, Avg(S)  v é anti-monotonica
May 25, 2016
47
Relação entre categorias de
restrições
Succinctness
Anti-monotonicity
Monotonicity
Convertible constraints
Inconvertible constraints
May 25, 2016
48
Caracterização de restrições
Constraint
Anti-Monotonicity
S  v,   { =, ,  }
yes
vS
no
SV
no
SV
yes
S=V
partly
min(S)  v
no
min(S)  v
yes
min(S) = v
partly
max(S)  v
yes
max(S)  v
no
max(S) = v
partly
count(S)  v
yes
count(S)  v
no
count(S) = v
partly
sum(S)  v
yes
sum(S)  v
no
sum(S) = v
partly
avg(S)  v,   { =, ,  }
convertible
(frequent constraint)
(yes)
May 25, 2016
Succinct
Yes
yes
yes
yes
yes
yes
yes
yes
yes
yes
yes
weakly
weakly
weakly
no
no
no
no
(no)
49