Software  
 
Rede de conhecimento computador >> Software >> Software de processamento de texto >> Content
Existe algum código matlab para técnica de mineração de dados de algoritmo de associação de árvore de padrões frequentes?
Aqui está uma implementação simples do MATLAB do algoritmo de associação FP-Tree para mineração de dados. Este código encontra conjuntos de itens frequentes e regras de associação de um determinado conjunto de dados de transação.

```
% Crie o banco de dados de transações original como uma matriz de células
transações ={ ...
{'Pão', 'Leite', 'Manteiga'}, ...
{'Pão', 'Fraldas', 'Cerveja', 'Ovos'}, ...
{'Leite', 'Fraldas', 'Cerveja', 'Coca'}, ...
{'Pão', 'Leite', 'Fraldas', 'Coca'}, ...
{'Pão', 'Ovos', 'Cerveja'} ...
};

% Converter transações em uma matriz binária
binaryTransactions =zeros(size(transactions, 1), size(unique([transactions{:}]), 2));
para i =1:tamanho(transações, 1)
para j =1:tamanho(transações{i}, 2)
binaryTransactions(i, strcmp(transações{i}{j}, único([transações{:}]))) =1;
fim
fim

% Crie uma árvore de padrões frequentes a partir da matriz de transação binária
fpTree =fptree(transações binárias);

% Encontre todos os conjuntos de itens frequentes com suporte mínimo de 2
FrequentItemsets =find_frequent_itemsets(fpTree, 2);

% Gera regras de associação a partir dos conjuntos de itens frequentes
AssociationRules =generate_association_rules(frequentItemsets);

% Exibir os conjuntos de itens frequentes e regras de associação
disp('Conjuntos de itens frequentes:');
disp('------------------');
para i =1:comprimento (conjuntos de itens frequentes)
fprintf('%s\n', strjoin(frequentItemsets{i}, ', '));
fim

disp('Regras de Associação:');
disp('------------------');
para i =1:comprimento (regras de associação)
lhs =strjoin(associationRules{i}.lhs, ', ');
rhs =strjoin(associationRules{i}.rhs, ', ');
confiança =associaçãoRules{i}.confiança * 100;
suporte =associaçãoRules{i}.suporte * 100;
fprintf('Se %s, então %s. Confiança =%f%%, Suporte =%f%%\n', lhs, rhs, confiança, suporte);
fim

% Função para criar uma árvore de padrões frequentes a partir de uma matriz de transação binária
função fpTree =fptree(transações)
headerTable =create_header_table(transações);
raiz =add_node(-1, headerTable.id);
fpTree =struct('root', root, 'headerTable', headerTable);

para i =1:tamanho(transações, 1)
add_transaction(transações(i, :), root, headerTable);
fim
fim

% Função para criar uma tabela de cabeçalho a partir das transações
função headerTable =create_header_table(transações)
headerTable =struct();
itens únicos =único([transações{:}]);
para i =1:tamanho(itens exclusivos, 2)
headerTable(uniqueItems{i}).id =i;
headerTable(uniqueItems{i}).count =sum(sum(transactions ==uniqueItems{i}));
headerTable(uniqueItems{i}).link =[];
fim
fim

% Função para adicionar uma transação à FP-Tree
função add_transaction(transação, nó, headerTable)
se estiver vazio (transação)
retornar;
fim

% Encontre o item com maior frequência na transação
maxFrequência =0;
maxItem ='';
para i =1:comprimento (transação)
if headerTable(transaction{i}).count> maxFrequency
maxFrequency =headerTable(transaction{i}).count;
maxItem =transação{i};
fim
fim

% Se o nó não tiver um filho para maxItem, crie um
se estiver vazio (node.children)
node.children(maxItem).id =headerTable(maxItem).id;
node.children(maxItem).count =1;
node.children(maxItem).link =headerTable(maxItem).link;
node.children(maxItem).parent =node;
outro
if isfield(node.children, maxItem)
node.children(maxItem).count =node.children(maxItem).count + 1;
outro
node.children(maxItem).id =headerTable(maxItem).id;
node.children(maxItem).count =1;
node.children(maxItem).link =headerTable(maxItem).link;
node.children(maxItem).parent =node;
fim
fim

% Atualizar a tabela de cabeçalho
headerTable(maxItem).link =nó;

% Adiciona recursivamente os itens restantes à árvore
para i =1:comprimento (transação)
if ~(strcmp(maxItem, transação{i}))
add_transaction(transaction(2:end), node.children(maxItem), headerTable);
fim
fim
fim

% Função para encontrar todos os conjuntos de itens frequentes da FP-Tree
função freqüenteItemsets =find_frequent_itemsets(fpTree, minSupport)
FrequentItemsets ={};

% Encontre recursivamente conjuntos de itens frequentes de cada ramo da FP-Tree
para ramificação em fpTree.root.children.keys
branchFrequency =fpTree.headerTable(branch).count;

% Se a frequência da filial for menor que o suporte mínimo, continue para a próxima filial
se branchFrequency continuar;
fim

% Adicione o item da ramificação como um conjunto de itens frequente
FrequentItemsets{end + 1} ={branch};

% Encontra recursivamente conjuntos de itens frequentes para todas as subárvores do ramo atual
subFrequentItemsets =find_frequent_itemsets(subtrees(fpTree.root, branch), minSupport);

% Adiciona o item da ramificação a todos os conjuntos de itens frequentes da subárvore
para i =1:comprimento (subFrequentItemsets)
subFrequentItemsets{i}{1} =[ramo, subFrequentItemsets{i}{1}];
FrequentItemsets{end + 1} =subFrequentItemsets{i};
fim
fim
fim

% Função para gerar regras de associação a partir dos conjuntos de itens frequentes
função associaçãoRules =generate_association_rules(frequentItemsets)
regras de associação ={};

% Para cada conjunto de itens frequentes, gere todas as regras de associação possíveis
para conjunto de itens =conjuntos de itens frequentes
para i =1:comprimento (conjunto de itens)

% Cria o antecedente e o consequente da regra
antecedente =conjunto de itens(1:i-1);
consequente =conjunto de itens(i+1:fim);

% Calcule o suporte, a confiança e a suspensão da regra
suporte =100 * (find_support(união(antecedente, consequente)) / find_support(antecedente));
confiança =100 * (find_support(union(antecedente, consequente)) / find_support(antecedente));
lift =confiança / (100 * find_support(consequente) / find_support(antecedente));

% Adiciona a regra de associação à lista
AssociationRules{end + 1} =struct('lhs', antecedente, 'rhs', consequente, 'confiança', confiança, 'suporte', suporte);
fim
fim
fim

% Função para encontrar o suporte de um conjunto de itens
suporte de função =find_support(itemset)
suporte =0;

% Iterar todas as transações e verificar se elas contêm o conjunto de itens
para i =1:tamanho (transações binárias, 1)
if all(binaryTransactions(i, ismember(unique([binaryTransactions{:}]), conjunto de itens)))
suporte =suporte + 1;
fim
fim
fim
```

Anterior :

Próximo :
  Os artigos relacionados
·Como Digite cabeça para baixo Letras & Trás Texto 
·Como converter um documento do Word para WordPerfect 9 
·Como alterar arquivos DOCX para Word 2000 
·Qual é o formato RTF File 
·Como usar o Mail Merge 
·Como escrever um livro no computador 
·Como converter Macromedia Flash para o Word e Power Poi…
·Como ativar funções completas AbiWord no Write Ativid…
·Como reparar um arquivo de documento 
·Como fazer um convite de aniversário Com o Microsoft O…
  Artigos em destaque
·Como acessar relatórios em SharePoint 
·O que é o arquivo de extensão Psh 
·Como editar um arquivo PDF em Word 
·O que se entende por uma captura de ecrã 
·O que acontece com o WhatsApp quando você troca de tel…
·Como desativar o status ativo no Facebook 
·Como corrigir BitDefender 2010 
·Como converter SWF para AVI Grátis 
·Dinheiro Cheats para Uplink 
·Como isolar duplicatas no Excel 
Cop e direita © Rede de conhecimento computador http://ptcomputador.com Todos os Direitos Reservados