Class: Evoc::HyperRule
Constant Summary
Constants included from InterestingnessMeasures
InterestingnessMeasures::M_ADDED_VALUE_MAX, InterestingnessMeasures::M_ADDED_VALUE_MID, InterestingnessMeasures::M_ADDED_VALUE_MIN, InterestingnessMeasures::M_CAUSAL_CONFIDENCE_MAX, InterestingnessMeasures::M_CAUSAL_CONFIDENCE_MID, InterestingnessMeasures::M_CAUSAL_CONFIDENCE_MIN, InterestingnessMeasures::M_CAUSAL_SUPPORT_MAX, InterestingnessMeasures::M_CAUSAL_SUPPORT_MID, InterestingnessMeasures::M_CAUSAL_SUPPORT_MIN, InterestingnessMeasures::M_COLLECTIVE_STRENGTH_MAX, InterestingnessMeasures::M_COLLECTIVE_STRENGTH_MID, InterestingnessMeasures::M_COLLECTIVE_STRENGTH_MIN, InterestingnessMeasures::M_CONFIDENCE_MAX, InterestingnessMeasures::M_CONFIDENCE_MID, InterestingnessMeasures::M_CONFIDENCE_MIN, InterestingnessMeasures::M_CONVICTION_MAX, InterestingnessMeasures::M_CONVICTION_MID, InterestingnessMeasures::M_CONVICTION_MIN, InterestingnessMeasures::M_COSINE_MAX, InterestingnessMeasures::M_COSINE_MID, InterestingnessMeasures::M_COSINE_MIN, InterestingnessMeasures::M_COVERAGE_MAX, InterestingnessMeasures::M_COVERAGE_MID, InterestingnessMeasures::M_COVERAGE_MIN, InterestingnessMeasures::M_DESCRIPTIVE_CONFIRMED_CONFIDENCE_MAX, InterestingnessMeasures::M_DESCRIPTIVE_CONFIRMED_CONFIDENCE_MID, InterestingnessMeasures::M_DESCRIPTIVE_CONFIRMED_CONFIDENCE_MIN, InterestingnessMeasures::M_DIFFERENCE_OF_CONFIDENCE_MAX, InterestingnessMeasures::M_DIFFERENCE_OF_CONFIDENCE_MID, InterestingnessMeasures::M_DIFFERENCE_OF_CONFIDENCE_MIN, InterestingnessMeasures::M_EXAMPLE_AND_COUNTEREXAMPLE_RATE_MAX, InterestingnessMeasures::M_EXAMPLE_AND_COUNTEREXAMPLE_RATE_MID, InterestingnessMeasures::M_EXAMPLE_AND_COUNTEREXAMPLE_RATE_MIN, InterestingnessMeasures::M_GINI_INDEX_MAX, InterestingnessMeasures::M_GINI_INDEX_MID, InterestingnessMeasures::M_GINI_INDEX_MIN, InterestingnessMeasures::M_HYPER_COEFFICIENT_HYPER_MEASURE, InterestingnessMeasures::M_HYPER_COEFFICIENT_MAX, InterestingnessMeasures::M_HYPER_COEFFICIENT_MID, InterestingnessMeasures::M_HYPER_COEFFICIENT_MIN, InterestingnessMeasures::M_IMBALANCE_RATIO_MAX, InterestingnessMeasures::M_IMBALANCE_RATIO_MID, InterestingnessMeasures::M_IMBALANCE_RATIO_MIN, InterestingnessMeasures::M_INTERESTINGNESS_WEIGHTING_DEPENDENCY_MAX, InterestingnessMeasures::M_INTERESTINGNESS_WEIGHTING_DEPENDENCY_MID, InterestingnessMeasures::M_INTERESTINGNESS_WEIGHTING_DEPENDENCY_MIN, InterestingnessMeasures::M_JACCARD_MAX, InterestingnessMeasures::M_JACCARD_MID, InterestingnessMeasures::M_JACCARD_MIN, InterestingnessMeasures::M_J_MEASURE_MAX, InterestingnessMeasures::M_J_MEASURE_MID, InterestingnessMeasures::M_J_MEASURE_MIN, InterestingnessMeasures::M_KAPPA_MAX, InterestingnessMeasures::M_KAPPA_MID, InterestingnessMeasures::M_KAPPA_MIN, InterestingnessMeasures::M_KLOSGEN_MAX, InterestingnessMeasures::M_KLOSGEN_MID, InterestingnessMeasures::M_KLOSGEN_MIN, InterestingnessMeasures::M_KULCZYNSKI_MAX, InterestingnessMeasures::M_KULCZYNSKI_MID, InterestingnessMeasures::M_KULCZYNSKI_MIN, InterestingnessMeasures::M_LAPLACE_CORRECTED_CONFIDENCE_MAX, InterestingnessMeasures::M_LAPLACE_CORRECTED_CONFIDENCE_MID, InterestingnessMeasures::M_LAPLACE_CORRECTED_CONFIDENCE_MIN, InterestingnessMeasures::M_LEAST_CONTRADICTION_MAX, InterestingnessMeasures::M_LEAST_CONTRADICTION_MID, InterestingnessMeasures::M_LEAST_CONTRADICTION_MIN, InterestingnessMeasures::M_LEVERAGE_MAX, InterestingnessMeasures::M_LEVERAGE_MID, InterestingnessMeasures::M_LEVERAGE_MIN, InterestingnessMeasures::M_LIFT_MAX, InterestingnessMeasures::M_LIFT_MID, InterestingnessMeasures::M_LIFT_MIN, InterestingnessMeasures::M_LINEAR_CORRELATION_COEFFICIENT_MAX, InterestingnessMeasures::M_LINEAR_CORRELATION_COEFFICIENT_MID, InterestingnessMeasures::M_LINEAR_CORRELATION_COEFFICIENT_MIN, InterestingnessMeasures::M_LOEVINGER_MAX, InterestingnessMeasures::M_LOEVINGER_MID, InterestingnessMeasures::M_LOEVINGER_MIN, InterestingnessMeasures::M_ODDS_RATIO_MAX, InterestingnessMeasures::M_ODDS_RATIO_MID, InterestingnessMeasures::M_ODDS_RATIO_MIN, InterestingnessMeasures::M_ODD_MULTIPLIER_MAX, InterestingnessMeasures::M_ODD_MULTIPLIER_MID, InterestingnessMeasures::M_ODD_MULTIPLIER_MIN, InterestingnessMeasures::M_ONE_WAY_SUPPORT_MAX, InterestingnessMeasures::M_ONE_WAY_SUPPORT_MID, InterestingnessMeasures::M_ONE_WAY_SUPPORT_MIN, InterestingnessMeasures::M_PIATETSKY_SHAPIRO_MAX, InterestingnessMeasures::M_PIATETSKY_SHAPIRO_MID, InterestingnessMeasures::M_PIATETSKY_SHAPIRO_MIN, InterestingnessMeasures::M_PREVALENCE_MAX, InterestingnessMeasures::M_PREVALENCE_MID, InterestingnessMeasures::M_PREVALENCE_MIN, InterestingnessMeasures::M_RECALL_MAX, InterestingnessMeasures::M_RECALL_MID, InterestingnessMeasures::M_RECALL_MIN, InterestingnessMeasures::M_RELATIVE_RISK_MAX, InterestingnessMeasures::M_RELATIVE_RISK_MID, InterestingnessMeasures::M_RELATIVE_RISK_MIN, InterestingnessMeasures::M_SEBAG_SCHOENAUER_MAX, InterestingnessMeasures::M_SEBAG_SCHOENAUER_MID, InterestingnessMeasures::M_SEBAG_SCHOENAUER_MIN, InterestingnessMeasures::M_SPECIFICITY_MAX, InterestingnessMeasures::M_SPECIFICITY_MID, InterestingnessMeasures::M_SPECIFICITY_MIN, InterestingnessMeasures::M_SUPPORT_MAX, InterestingnessMeasures::M_SUPPORT_MID, InterestingnessMeasures::M_SUPPORT_MIN, InterestingnessMeasures::M_TWO_WAY_SUPPORT_MAX, InterestingnessMeasures::M_TWO_WAY_SUPPORT_MID, InterestingnessMeasures::M_TWO_WAY_SUPPORT_MIN, InterestingnessMeasures::M_VARYING_RATES_LIAISON_MAX, InterestingnessMeasures::M_VARYING_RATES_LIAISON_MID, InterestingnessMeasures::M_VARYING_RATES_LIAISON_MIN, InterestingnessMeasures::M_YULES_Q_MAX, InterestingnessMeasures::M_YULES_Q_MID, InterestingnessMeasures::M_YULES_Q_MIN, InterestingnessMeasures::M_YULES_Y_MAX, InterestingnessMeasures::M_YULES_Y_MID, InterestingnessMeasures::M_YULES_Y_MIN, InterestingnessMeasures::M_ZHANG_MAX, InterestingnessMeasures::M_ZHANG_MID, InterestingnessMeasures::M_ZHANG_MIN, InterestingnessMeasures::VALUE_TYPE
Instance Attribute Summary collapse
-
#hyper_coefficient ⇒ Object
Returns the value of attribute hyper_coefficient.
-
#hyper_confidence ⇒ Object
Returns the value of attribute hyper_confidence.
-
#lhs ⇒ Object
Returns the value of attribute lhs.
-
#rhs ⇒ Object
Returns the value of attribute rhs.
Attributes inherited from Rule
#human_lhs, #human_rhs, #tx_store
Instance Method Summary collapse
-
#initialize(rules, aggregator, measures) ⇒ HyperRule
constructor
A new instance of HyperRule.
- #name ⇒ Object
Methods inherited from Rule
Methods included from InterestingnessMeasures
get_max, #get_measure, get_mid, get_min, #get_p, #get_p_values, hyper_measures, included, #instantiated_measures, is_hyper_measure?, #m_added_value, #m_causal_confidence, #m_causal_support, #m_collective_strength, #m_confidence, #m_conviction, #m_cosine, #m_coverage, #m_descriptive_confirmed_confidence, #m_difference_of_confidence, #m_example_and_counterexample_rate, #m_gini_index, #m_hyper_coefficient, #m_imbalance_ratio, #m_interestingness_weighting_dependency, #m_j_measure, #m_jaccard, #m_kappa, #m_klosgen, #m_kulczynski, #m_laplace_corrected_confidence, #m_least_contradiction, #m_leverage, #m_lift, #m_linear_correlation_coefficient, #m_loevinger, #m_odd_multiplier, #m_odds_ratio, #m_one_way_support, #m_piatetsky_shapiro, #m_prevalence, #m_recall, #m_relative_risk, #m_sebag_schoenauer, #m_specificity, #m_support, #m_two_way_support, #m_varying_rates_liaison, #m_yules_q, #m_yules_y, #m_zhang, #measure_instantiated?, measures, #n, #p_A, #p_AB, #p_A_notB, #p_AgivenB, #p_AgivennotB, #p_AorB, #p_B, #p_BgivenA, #p_BgivennotA, #p_notA, #p_notA_B, #p_notA_notB, #p_notAgivenB, #p_notAgivennotB, #p_notB, #p_notBgivenA, #p_notBgivennotA, #set_measure, #set_p, #to_a, #tx_store
Methods included from Logging
configure_logger_for, #logger, logger_for, set_level
Constructor Details
#initialize(rules, aggregator, measures) ⇒ HyperRule
5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
# File 'lib/evoc/hyper_rule.rb', line 5 def initialize(rules,aggregator,measures) if measures.nil? || measures.empty? raise ArgumentError, "At least one measure must be provided when defining a new hyper rule" end self.lhs = rules.map(&:lhs).array_union self.rhs = rules.map(&:rhs).array_union self.tx_store = rules.first.tx_store self.hyper_coefficient = rules.size # aggregate measures measures.each do |m| logger.debug "Aggregating #{self.hyper_coefficient} rules on #{m}" # check if its the hyper confidence if m == 'm_hyper_confidence' antecedent = self.tx_store.transactions_of_list(self.lhs) consequent = self.tx_store.transactions_of_list(self.rhs) numerator = (antecedent & consequent).size denominator = antecedent.size hyper_confidence = numerator/denominator self.set_measure(m,hyper_confidence,hyper_measure: true) else begin # get the 'm' measure of each rule m_measures = rules.map {|rule| rule.get_measure(m)} # remove undefined measures m_measures.reject! {|a| a.value.nil?} # group the measures into negative and positive correlations pos_correlation = m_measures.group_by {|a| a.value > Evoc::Rule.get_mid(m)} positive_correlation = pos_correlation[true].nil? ? 0 : Evoc::InterestingnessMeasureAggregator.new(m,pos_correlation[true]).method(aggregator).call.value # add the agggregated measure self.set_measure(m,positive_correlation,hyper_measure: true) # add the hyper coefficient as a measure for aggregators called with '.._hc' if !(aggregator =~ /_hc\z/).nil? self.set_measure('m_hyper_coefficient',hyper_coefficient,hyper_measure: true) end rescue Evoc::Exceptions::InterestingnessMeasure::NonFinite logger.debug "Could not aggregate #{m} using #{aggregator}, aggregation produced a non-finite value, probably a range problem, setting measure value to nil" self.set_measure(m,nil, hyper_measure: true) end end end end |
Instance Attribute Details
#hyper_coefficient ⇒ Object
Returns the value of attribute hyper_coefficient.
3 4 5 |
# File 'lib/evoc/hyper_rule.rb', line 3 def hyper_coefficient @hyper_coefficient end |
#hyper_confidence ⇒ Object
Returns the value of attribute hyper_confidence.
3 4 5 |
# File 'lib/evoc/hyper_rule.rb', line 3 def hyper_confidence @hyper_confidence end |
#lhs ⇒ Object
Returns the value of attribute lhs.
3 4 5 |
# File 'lib/evoc/hyper_rule.rb', line 3 def lhs @lhs end |
#rhs ⇒ Object
Returns the value of attribute rhs.
3 4 5 |
# File 'lib/evoc/hyper_rule.rb', line 3 def rhs @rhs end |
Instance Method Details
#name ⇒ Object
49 50 51 |
# File 'lib/evoc/hyper_rule.rb', line 49 def name self.lhs.join(',') + " => " + self.rhs.join(',') end |