Class: RecommEngine::Recommender
- Inherits:
-
Object
- Object
- RecommEngine::Recommender
- Defined in:
- lib/recommengine/recommender.rb
Instance Attribute Summary collapse
-
#data ⇒ Object
readonly
Returns the value of attribute data.
-
#predicted_scores ⇒ Object
readonly
Returns the value of attribute predicted_scores.
-
#similarity_algorithm ⇒ Object
readonly
Returns the value of attribute similarity_algorithm.
-
#subject ⇒ Object
readonly
Returns the value of attribute subject.
-
#sum_of_user_similarity_scores_by_item ⇒ Object
readonly
Returns the value of attribute sum_of_user_similarity_scores_by_item.
-
#sum_of_weighted_scores_by_item ⇒ Object
readonly
Returns the value of attribute sum_of_weighted_scores_by_item.
-
#user_similarity_scores ⇒ Object
readonly
Returns the value of attribute user_similarity_scores.
Instance Method Summary collapse
-
#initialize(data:, subject:, similarity: RecommEngine::DEFAULT_ALGORITHM) ⇒ Recommender
constructor
A new instance of Recommender.
- #recs ⇒ Object
- #top_rec ⇒ Object
Constructor Details
#initialize(data:, subject:, similarity: RecommEngine::DEFAULT_ALGORITHM) ⇒ Recommender
Returns a new instance of Recommender.
5 6 7 8 9 10 11 12 13 14 15 |
# File 'lib/recommengine/recommender.rb', line 5 def initialize(data:, subject:, similarity: RecommEngine::DEFAULT_ALGORITHM) @data = data @subject = subject @similarity_algorithm = similarity @predicted_scores = {} @user_similarity_scores = {} @sum_of_weighted_scores_by_item = {} @sum_of_user_similarity_scores_by_item = {} @sum_of_weighted_scores_by_item.default = 0 @sum_of_user_similarity_scores_by_item.default = 0 end |
Instance Attribute Details
#data ⇒ Object (readonly)
Returns the value of attribute data.
3 4 5 |
# File 'lib/recommengine/recommender.rb', line 3 def data @data end |
#predicted_scores ⇒ Object (readonly)
Returns the value of attribute predicted_scores.
3 4 5 |
# File 'lib/recommengine/recommender.rb', line 3 def predicted_scores @predicted_scores end |
#similarity_algorithm ⇒ Object (readonly)
Returns the value of attribute similarity_algorithm.
3 4 5 |
# File 'lib/recommengine/recommender.rb', line 3 def similarity_algorithm @similarity_algorithm end |
#subject ⇒ Object (readonly)
Returns the value of attribute subject.
3 4 5 |
# File 'lib/recommengine/recommender.rb', line 3 def subject @subject end |
#sum_of_user_similarity_scores_by_item ⇒ Object (readonly)
Returns the value of attribute sum_of_user_similarity_scores_by_item.
3 4 5 |
# File 'lib/recommengine/recommender.rb', line 3 def sum_of_user_similarity_scores_by_item @sum_of_user_similarity_scores_by_item end |
#sum_of_weighted_scores_by_item ⇒ Object (readonly)
Returns the value of attribute sum_of_weighted_scores_by_item.
3 4 5 |
# File 'lib/recommengine/recommender.rb', line 3 def sum_of_weighted_scores_by_item @sum_of_weighted_scores_by_item end |
#user_similarity_scores ⇒ Object (readonly)
Returns the value of attribute user_similarity_scores.
3 4 5 |
# File 'lib/recommengine/recommender.rb', line 3 def user_similarity_scores @user_similarity_scores end |
Instance Method Details
#recs ⇒ Object
17 18 19 20 21 |
# File 'lib/recommengine/recommender.rb', line 17 def recs calculate_weighted_totals calculate_predicted_scores predicted_scores.sort_by{ |item, score| score }.reverse end |
#top_rec ⇒ Object
23 24 25 26 27 |
# File 'lib/recommengine/recommender.rb', line 23 def top_rec calculate_weighted_totals calculate_predicted_scores predicted_scores.max_by{ |item, score| score } end |