class RecommEngine::EuclideanCalculator

Public Instance Methods

calc() click to toggle source
# File lib/recommengine/euclidean_calculator.rb, line 3
def calc
  1.0 / (Math.sqrt(1.0 + sum_of_squared_distances))
end

Private Instance Methods

comparate_score(item) click to toggle source
# File lib/recommengine/euclidean_calculator.rb, line 17
def comparate_score(item)
  data[comparate][item]
end
square_of_distance(item, subject_score) click to toggle source
# File lib/recommengine/euclidean_calculator.rb, line 21
def square_of_distance(item, subject_score)
  (subject_score - comparate_score(item))**2
end
squared_distances() click to toggle source
# File lib/recommengine/euclidean_calculator.rb, line 9
def squared_distances
  data[subject].map{ |item, subject_score| square_of_distance(item, subject_score) if comparate_score(item) }.compact
end
sum_of_squared_distances() click to toggle source
# File lib/recommengine/euclidean_calculator.rb, line 13
def sum_of_squared_distances
  squared_distances.inject(:+)
end