class Lurn::NaiveBayes::Base

Public Instance Methods

max_class(vector) click to toggle source
# File lib/lurn/naive_bayes/base.rb, line 10
def max_class(vector)
  log_probs = predict_log_probabilities(vector)

  max_index = log_probs.index(log_probs.max)

  unique_labels[max_index]
end
max_probability(vector) click to toggle source
# File lib/lurn/naive_bayes/base.rb, line 18
def max_probability(vector)
  probs = predict_probabilities(vector)

  probs.max
end
predict_log_probabilities(vector) click to toggle source
# File lib/lurn/naive_bayes/base.rb, line 24
def predict_log_probabilities(vector)
  vector = Vector.elements(vector)
  jll = joint_log_likelihood(vector)
  log_prob_x = Math.log(jll.map { |v| Math.exp(v) }.inject(:+))
  jll.map{ |v| v - log_prob_x }
end
predict_probabilities(vector) click to toggle source
# File lib/lurn/naive_bayes/base.rb, line 4
def predict_probabilities(vector)
  log_probabilties = predict_log_probabilities(vector)

  log_probabilties.map { |p| Math.exp(p) }
end