Class: JrubyMahout::RecommenderBuilder
- Inherits:
-
Object
- Object
- JrubyMahout::RecommenderBuilder
- Defined in:
- lib/jruby_mahout/recommender_builder.rb
Instance Attribute Summary collapse
-
#item_based_allowed ⇒ Object
Returns the value of attribute item_based_allowed.
-
#recommender_name ⇒ Object
Returns the value of attribute recommender_name.
Instance Method Summary collapse
-
#buildRecommender(data_model) ⇒ Object
buildRecommender(DataModel dataModel) Builds a Recommender implementation to be evaluated, using the given DataModel.
-
#initialize(similarity_name, neighborhood_size, recommender_name, is_weighted) ⇒ RecommenderBuilder
constructor
public interface RecommenderBuilder Implementations of this inner interface are simple helper classes which create a Recommender to be evaluated based on the given DataModel.
Constructor Details
#initialize(similarity_name, neighborhood_size, recommender_name, is_weighted) ⇒ RecommenderBuilder
public interface RecommenderBuilder Implementations of this inner interface are simple helper classes which create a Recommender to be evaluated based on the given DataModel.
23 24 25 26 27 28 29 |
# File 'lib/jruby_mahout/recommender_builder.rb', line 23 def initialize(similarity_name, neighborhood_size, recommender_name, is_weighted) @is_weighted = is_weighted @neighborhood_size = neighborhood_size @similarity_name = similarity_name @recommender_name = recommender_name @item_based_allowed = (@similarity_name == "SpearmanCorrelationSimilarity") ? false : true end |
Instance Attribute Details
#item_based_allowed ⇒ Object
Returns the value of attribute item_based_allowed.
20 21 22 |
# File 'lib/jruby_mahout/recommender_builder.rb', line 20 def item_based_allowed @item_based_allowed end |
#recommender_name ⇒ Object
Returns the value of attribute recommender_name.
20 21 22 |
# File 'lib/jruby_mahout/recommender_builder.rb', line 20 def recommender_name @recommender_name end |
Instance Method Details
#buildRecommender(data_model) ⇒ Object
buildRecommender(DataModel dataModel) Builds a Recommender implementation to be evaluated, using the given DataModel.
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 |
# File 'lib/jruby_mahout/recommender_builder.rb', line 33 def buildRecommender(data_model) begin case @similarity_name when "PearsonCorrelationSimilarity" similarity = (@is_weighted) ? PearsonCorrelationSimilarity.new(data_model, Weighting::WEIGHTED) : PearsonCorrelationSimilarity.new(data_model) when "EuclideanDistanceSimilarity" similarity = (@is_weighted) ? EuclideanDistanceSimilarity.new(data_model, Weighting::WEIGHTED) : EuclideanDistanceSimilarity.new(data_model) when "SpearmanCorrelationSimilarity" similarity = SpearmanCorrelationSimilarity.new(data_model) when "LogLikelihoodSimilarity" similarity = LogLikelihoodSimilarity.new(data_model) when "TanimotoCoefficientSimilarity" similarity = TanimotoCoefficientSimilarity.new(data_model) when "GenericItemSimilarity" similarity = PearsonCorrelationSimilarity.new(data_model, Weighting::WEIGHTED) else similarity = nil end unless @neighborhood_size.nil? if @neighborhood_size > 1 neighborhood = NearestNUserNeighborhood.new(Integer(@neighborhood_size), similarity, data_model) elsif @neighborhood_size >= -1 and @neighborhood_size <= 1 neighborhood = ThresholdUserNeighborhood.new(Float(@neighborhood_size), similarity, data_model) end end case @recommender_name when "GenericUserBasedRecommender" recommender = GenericUserBasedRecommender.new(data_model, neighborhood, similarity) when "GenericItemBasedRecommender" recommender = (@item_based_allowed) ? GenericItemBasedRecommender.new(data_model, similarity) : nil when "SlopeOneRecommender" recommender = SlopeOneRecommender.new(data_model) else recommender = nil end recommender rescue Exception => e return e end end |