diff --git a/a3.r b/a3.r index 61bbdd43cfe3de4704ecc90f235c8c1fd425c0f7..7e31fd0a51250a623e45864145fb348d5cef6f0b 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])) + } + } }