Class: Lurn::NaiveBayes::Base

Inherits:
Object
  • Object
show all
Defined in:
lib/lurn/naive_bayes/base.rb

Direct Known Subclasses

BernoulliNaiveBayes, MultinomialNaiveBayes

Instance Method Summary collapse

Instance Method Details

#max_class(vector) ⇒ Object



10
11
12
13
14
15
16
# 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) ⇒ Object



18
19
20
21
22
# File 'lib/lurn/naive_bayes/base.rb', line 18

def max_probability(vector)
  probs = predict_probabilities(vector)

  probs.max
end

#predict_log_probabilities(vector) ⇒ Object



24
25
26
27
28
29
# 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) ⇒ Object



4
5
6
7
8
# 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