class MultinomialNaiveBayes::Classifier
Public Class Methods
new(categories_summaries, categories_probabilities)
click to toggle source
# File lib/multinomial_naive_bayes/classifier.rb, line 3 def initialize(categories_summaries, categories_probabilities) @categories_summaries = categories_summaries @categories_probabilities = categories_probabilities end
Public Instance Methods
all_ln_categories_probabilities(vector)
click to toggle source
# File lib/multinomial_naive_bayes/classifier.rb, line 19 def all_ln_categories_probabilities(vector) @categories_summaries.keys.inject({}) do |map, category| map[category] = ln_category_probability(vector, category) map end end
classify(vector)
click to toggle source
# File lib/multinomial_naive_bayes/classifier.rb, line 8 def classify(vector) max_ln_category_probability(vector)[0] end
ln_category_probability(vector, category)
click to toggle source
# File lib/multinomial_naive_bayes/classifier.rb, line 26 def ln_category_probability(vector, category) sum = 0 vector.each_with_index do |feature_value, feature| sum += Math.log(@categories_summaries[category][feature]**feature_value) end sum + Math.log(@categories_probabilities[category]) end
max_ln_category_probability(vector)
click to toggle source
# File lib/multinomial_naive_bayes/classifier.rb, line 12 def max_ln_category_probability(vector) all_ln_categories_probabilities(vector). to_a. sort_by{|ln_category_probability| -ln_category_probability[1]}. first end