Class: Rumale::EvaluationMeasure::NormalizedMutualInformation
- Inherits:
-
Object
- Object
- Rumale::EvaluationMeasure::NormalizedMutualInformation
- Includes:
- Base::Evaluator
- Defined in:
- lib/rumale/evaluation_measure/normalized_mutual_information.rb
Overview
NormalizedMutualInformation is a class that calculates the normalized mutual information.
Reference
-
C D. Manning, P. Raghavan, and H. Schutze, “Introduction to Information Retrieval,” Cambridge University Press., 2008.
-
N X. Vinh, J. Epps, and J. Bailey, “Information Theoretic Measures for Clusterings Comparison: Variants, Properties, Normalization and Correction for Chance,” J. Machine Learning Research, vol. 11, pp. 2837–1854, 2010.
Instance Method Summary collapse
-
#score(y_true, y_pred) ⇒ Float
Calculate noramlzied mutual information.
Instance Method Details
#score(y_true, y_pred) ⇒ Float
Calculate noramlzied mutual information
25 26 27 28 29 30 31 32 33 34 35 36 |
# File 'lib/rumale/evaluation_measure/normalized_mutual_information.rb', line 25 def score(y_true, y_pred) check_label_array(y_true) check_label_array(y_pred) # calculate entropies. class_entropy = entropy(y_true) return 0.0 if class_entropy.zero? cluster_entropy = entropy(y_pred) return 0.0 if cluster_entropy.zero? # calculate mutual information. mi = MutualInformation.new mi.score(y_true, y_pred) / Math.sqrt(class_entropy * cluster_entropy) end |