From 029b1bfab30230c54fd007f960238a5e355dd211 Mon Sep 17 00:00:00 2001 From: Brandon Rodriguez <brodriguez8774@gmail.com> Date: Mon, 1 Jun 2020 09:44:58 -0400 Subject: [PATCH] Saving implemention for before I learned R has packages Said packages supposedly already have Apriori implemented. Rip. --- a3.r | 27 +++++++++++++++++++++++---- 1 file changed, 23 insertions(+), 4 deletions(-) diff --git a/a3.r b/a3.r index 61bbdd4..7e31fd0 100644 --- a/a3.r +++ b/a3.r @@ -27,6 +27,7 @@ apriori <- function(itemsets, min_support, display_candidates=TRUE, display_freq # Initialize variables. level = 0 candidate_itemsets <- NULL + candidate_names <- NULL frequent_itemsets <- NULL # Loop until no more frequent itemsets are found for current level. @@ -40,11 +41,13 @@ apriori <- function(itemsets, min_support, display_candidates=TRUE, display_freq # First level. Initialize frequency candidacy. ret_val <- apriori_initialize_candidates(itemsets, level) candidate_itemsets[[level]] <- ret_val[[1]] + candidate_names[[level]] <- ret_val[[2]] # Get true frequent itemset from candidates. frequent_itemsets <- list(apriori_determine_freq_sets(ret_val[[1]], ret_val[[2]], min_support)) } else { # Not first level. + ret_val <- apriori_gen_candidates(frequent_itemsets[[level - 1]], level, debug=TRUE) } catn('Freq Itemsets:') @@ -75,16 +78,16 @@ apriori <- function(itemsets, min_support, display_candidates=TRUE, display_freq apriori_initialize_candidates <- function(initial_set, level, debug=FALSE) { if (debug) { catn('') - catn('Finding candidates.') + catn('Finding initial candidates.') } candidates <- NULL cand_names <- NULL - # Loop through our previous frequent sets. + # Loop through our initial sets. for (set in initial_set) { - # Loop through each item in frequent sets. + # Loop through each item in initial sets. for (item_index in 1:length(set)) { item <- set[item_index] @@ -129,8 +132,24 @@ apriori_initialize_candidates <- function(initial_set, level, debug=FALSE) { ### # ## -apriori_gen_candidates <- function() { +apriori_gen_candidates <- function(prev_itemsets, level, debug=FALSE) { + if (debug) { + catn('') + catn(paste('Finding level', level, 'candidate itemsets.')) + } + + # Get prev names. + prev_names <- names(prev_itemsets) + print(prev_names) + # Loop through our previous frequent sets. + for (prev_set in prev_itemsets) { + + # Loop through each item in previous sets. + for (item_index in 1:length(prev_set)) { + catn(paste('item', prev_set[item_index])) + } + } } -- GitLab