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