Welkom op de Nederland Computer Kennisnetwerk!  
 
Zoeken computer kennis
Home Hardware Netwerken Programmering Software Computerstoring Besturingssysteem
Computer Kennis >> Software >> Tekstverwerking Software >> Content
Bestaat er matlab-code voor dataminingtechniek voor frequente patroonboomassociatie-algoritmen?
Hier is een eenvoudige MATLAB-implementatie van het FP-Tree-associatiealgoritme voor datamining. Deze code vindt frequente itemsets en associatieregels uit een bepaalde transactiedataset.

```

% Maak de originele transactiedatabase als een celarray

transacties ={ ...

{'Brood', 'Melk', 'Boter'}, ...

{'Brood', 'Luiers', 'Bier', 'Eieren'}, ...

{'Melk', 'Luiers', 'Bier', 'Cola'}, ...

{'Brood', 'Melk', 'Luiers', 'Cola'}, ...

{'Brood', 'Eieren', 'Bier'} ...

};

% Converteer transacties naar een binaire matrix

binaryTransactions =nullen(grootte(transacties, 1), grootte(uniek([transacties{:}]), 2));

voor i =1:grootte(transacties, 1)

voor j =1:grootte(transacties{i}, 2)

binaryTransactions(i, strcmp(transacties{i}{j}, uniek([transacties{:}]))) =1;

einde

einde

% Creëer een frequente patroonboom op basis van de binaire transactiematrix

fpTree =fptree(binairetransacties);

% Vind alle frequente itemsets met minimale ondersteuning van 2

frequentItemsets =find_frequent_itemsets(fpTree, 2);

% Genereer associatieregels uit de frequente itemsets

associatieRules =genereren_association_rules(frequentItemsets);

% Geef de frequente itemsets en associatieregels weer

disp('Veelgebruikte itemsets:');

disp('------------------');

for i =1:lengte(frequenteitemsets)

fprintf('%s\n', strjoin(frequentItemsets{i}, ', '));

einde

disp('Associatieregels:');

disp('------------------');

for i =1:lengte(associatieregels)

lhs =strjoin(associatieregels{i}.lhs, ', ');

rhs =strjoin(associatieregels{i}.rhs, ', ');

vertrouwen =associatieregels{i}.vertrouwen * 100;

ondersteuning =associatieregels{i}.support * 100;

fprintf('Als %s, dan %s. Vertrouwen =%f%%, Ondersteuning =%f%%\n', lhs, rhs, vertrouwen, ondersteuning);

einde

% Functie om een ​​frequente patroonboom te creëren op basis van een binaire transactiematrix

functie fpTree =fptree(transacties)

headerTable =create_header_table(transacties);

root =add_node(-1, headerTable.id);

fpTree =struct('root', root, 'headerTable', headerTable);

voor i =1:grootte(transacties, 1)

add_transaction(transacties(i, :), root, headerTable);

einde

einde

% Functie om een ​​koptabel van de transacties te maken

functie headerTable =create_header_table (transacties)

headerTabel =struct();

uniqueItems =uniek([transacties{:}]);

for i =1:grootte(uniekeitems, 2)

headerTable(uniqueItems{i}).id =i;

headerTable(uniqueItems{i}).count =som(som(transacties ==uniekeItems{i}));

headerTabel(uniekeItems{i}).link =[];

einde

einde

% Functie om een ​​transactie toe te voegen aan de FP-Tree

functie add_transaction(transactie, knooppunt, headertabel)

indien leeg(transactie)

opbrengst;

einde

% Zoek het item met de hoogste frequentie in de transactie

maxFrequentie =0;

maxItem ='';

voor i =1:lengte(transactie)

if headerTable(transaction{i}).count> maxFrequency

maxFrequency =headerTabel(transactie{i}).count;

maxItem =transactie{i};

einde

einde

% Als het knooppunt geen onderliggend element voor het maxItem heeft, maakt u er een

if isempty(node.children)

node.children(maxItem).id =headerTabel(maxItem).id;

node.children(maxItem).count =1;

node.children(maxItem).link =headerTabel(maxItem).link;

node.children(maxItem).parent =knooppunt;

anders

if isfield(node.children, maxItem)

node.children(maxItem).count =knooppunt.children(maxItem).count + 1;

anders

node.children(maxItem).id =headerTabel(maxItem).id;

node.children(maxItem).count =1;

node.children(maxItem).link =headerTabel(maxItem).link;

node.children(maxItem).parent =knooppunt;

einde

einde

% Update de headertabel

headerTable(maxItem).link =knooppunt;

% Voeg de overige items recursief toe aan de boomstructuur

voor i =1:lengte(transactie)

if ~(strcmp(maxItem, transactie{i}))

add_transaction(transaction(2:end), node.children(maxItem), headerTable);

einde

einde

einde

% Functie om alle frequente itemsets uit de FP-Tree te vinden

functie frequentItemsets =find_frequent_itemsets(fpTree, minSupport)

frequentItemsets ={};

% Vind recursief frequente itemsets uit elke tak van de FP-Tree

voor vertakking in fpTree.root.children.keys

branchFrequency =fpTree.headerTable(branch).count;

% Als de aftakkingsfrequentie lager is dan de minimale ondersteuning, ga dan door naar de volgende aftakking

als branchFrequency doorgaan;

einde

% Voeg het filiaalitem toe als een frequente itemset

frequentItemsets{end + 1} ={branch};

% Vind recursief frequente itemsets voor alle subbomen van de huidige vertakking

subFrequentItemsets =find_frequent_itemsets(subbomen(fpTree.root, branch), minSupport);

% Voeg het vertakkingsitem toe aan alle frequente itemsets uit de subboom

voor i =1:lengte(subFrequentItemsets)

subFrequentItemsets{i}{1} =[tak, subFrequentItemsets{i}{1}];

frequentItemsets{end + 1} =subFrequentItemsets{i};

einde

einde

einde

% Functie om associatieregels te genereren uit de frequente itemsets

functie associatieRules =genereren_association_rules(frequentItemsets)

associatieregels ={};

% Genereer voor elke frequente itemset alle mogelijke associatieregels

voor itemset =frequentItemsets

voor i =1:lengte(itemset)

% Creëer het antecedent en het gevolg voor de regel

antecedent =itemset(1:i-1);

consequent =itemset(i+1:einde);

% Bereken de steun, het vertrouwen en de lift van de regel

ondersteuning =100 * (find_support(union(antecedent, consequent)) / find_support(antecedent));

vertrouwen =100 * (find_support(union(antecedent, consequent)) / find_support(antecedent));

lift =vertrouwen / (100 * find_support(consequent) / find_support(antecedent));

% Voeg de associatieregel toe aan de lijst

associatieRules{end + 1} =struct('lhs', antecedent, 'rhs', consequent, 'vertrouwen', vertrouwen, 'ondersteuning', ondersteuning);

einde

einde

einde

% Functie om de ondersteuning van een itemset te vinden

functieondersteuning =find_support(itemset)

ondersteuning =0;

% Doorloop alle transacties en controleer of ze de itemset bevatten

voor i =1:grootte(binairetransacties, 1)

if all(binaryTransactions(i, ismember(uniek([binaryTransactions{:}]), itemset)))

ondersteuning =ondersteuning + 1;

einde

einde

einde

```

Previous: Next:
  Tekstverwerking Software
·Hoe Page Breaks invoegen in Op…
·Hoe te Printworks converteren …
·Hoe kan ik mijn AppleWorks Upg…
·Verschil tussen Microsoft 2003…
·Hoe maak je een CV in Word Bui…
·De beste Fonts voor Readabilit…
·Hoe maak je een wachtwoord in …
·Hoe Word Lees Perfect 
·Hoe een website te kopiëren I…
  Related Articles
Zijn er antivirusprogramma's die een vir…
Wat is Factuur.xlsx in Excel-document? 
Wat is AOL-surfometer? 
Wat is de afkorting van .com? 
Wat is het verschil tussen een platte vi…
Is er een manier om te weten hoe laat ie…
Bestaat er een gratis programma waarmee …
Wat is het belang van het instellen van …
Hoe is het beste in softwareontwikkeling…
  Software Articles
·Hoe maak je een Date Stamp een PDF-besta…
·Hoe maak je een reguliere telefoon met S…
·Hoe de kleur van de rook in Photoshop Ve…
·Hoe een Product Activation Key Verander 
·Hoe kan ik meerdere pagina Documenten op…
·Hoe te openen .001 .002 .003 en . R01 . …
·Hoe Vergelijk WordPerfect 5.1 Met WordPe…
·Hoe maak je een Center Line in Pro Maak …
·Hoe voeg ik Lege waarden in Microsoft Ac…
Copyright © Computer Kennis https://www.nldit.com