标签: mahout

Mahout布尔基于用户的推荐器的相似度函数

我正在使用Mahout构建一个基于用户的推荐系统,该系统使用布尔数据进行操作.

我使用GenericBooleanPrefUserBasedRecommender,NearestNUserNeighborhood现在试图决定最合适的用户相似度函数.

有人建议使用LogLikelihoodSimilarityTanimotoCoefficientSimilarity.我试过这两种情况,并在两种情况下得到[主观评估]有意义的结果.但是,LogLikehood对同一数据集的RMSE评级更好.在这两种情况下,"无推荐"的数量相似.

任何人都可以推荐哪种相似功能最适合这种情况?

similarity collaborative-filtering mahout

2
推荐指数
1
解决办法
2721
查看次数

Mahout Hive整合

我想将基于Hadoop的Mahout推荐器与Apache Hive结合起来.所以我生成的建议书直接存储在我的Hive Tables中.任何人都知道类似的教程吗?

hadoop hive mahout

2
推荐指数
1
解决办法
1860
查看次数

使用Mahout Native Bayes分类器算法需要哪些步骤?

我正在尝试使用Native Bayes Classifier来检测欺诈交易.我在excel表中有大约5000的样本数据,这是我将用于训练分类器的数据,我有大约1000的测试数据,我将在其上应用测试分类器.

我的问题是,我不知道如何训练分类器.在将训练数据传递到训练分类器之前,是否需要将训练数据转换为某种特定格式.训练分类器将如何知道哪个是我的目标值以及哪个是其特征.

有人可以帮帮我吗?

classification fraud-prevention mahout

2
推荐指数
1
解决办法
3494
查看次数

如何让Mahout推荐器更快地工作?

所以你好Mahout社区!

关于加快推荐计算,我有几个问题.在我的服务器上,我安装了没有Hadoop的Mahout.jRuby也用于推荐脚本.在数据库中,我有3k用户和100k项(连接表中的270k项).因此,当用户请求建议时,简单脚本开始工作:

首先,它使用PGPoolingDataSource如下方式建立数据库连接:

  connection = org.postgresql.ds.PGPoolingDataSource.new()
  connection.setDataSourceName("db_name");
  connection.setServerName("localhost")
  connection.setPortNumber(5432)
  connection.setDatabaseName("db_name")
  connection.setUser("mahout")
  connection.setPassword("password")
  connection.setMaxConnections(100)
  connection
Run Code Online (Sandbox Code Playgroud)

我收到这个警告:

WARNING: You are not using ConnectionPoolDataSource. Make sure your DataSource pools connections to the database itself, or database performance will be severely reduced.
Run Code Online (Sandbox Code Playgroud)

任何想法如何解决?

之后我创建了建议:

model = PostgreSQLJDBCDataModel.new(
    connection,
    'stars',
    'user_id',
    'repo_id',
    'preference',
    'created_at'
  )

  similarity = TanimotoCoefficientSimilarity.new(model)
  neighborhood = NearestNUserNeighborhood.new(5, similarity, model)
  recommender = GenericBooleanPrefUserBasedRecommender.new(model, neighborhood, similarity)
  recommendations = recommender.recommend user_id, 30
Run Code Online (Sandbox Code Playgroud)

目前,为一个用户生成推荐需要大约5-10秒.问题是如何更快地提出建议(200ms会很好)?

apache hadoop mahout

2
推荐指数
1
解决办法
1269
查看次数

自动产品分类和查询权重

我正面临使用solr的排名问题而且我被困了.

给定一个电子商务网站,对于查询"ipad",我获得:

  1. ipad 2的ipad保护套
  2. ipad案例
  3. ipad连接套件
  4. ipad 32gb wifi

这是一个问题,因为我们想要排名第一的主要产品(或产品本身)和tf/idf排名第一的配件由于描述,如"ipad案例兼容ipad,ipad2,ipad3,ipad视网膜,ipad mini等".

此外,使用类别我们无法确定是附件还是产品.

我想知道使用自动分类是否有帮助.另一种改善这种排名的解决方案(如Named Entity Recognition)将不胜感激.

lucene solr machine-learning mahout

2
推荐指数
1
解决办法
1746
查看次数

Mahout:运行grouple示例会给出ClassNotFound异常

我在这个网站上运行初学者Mahout推荐人教程.我到达了运行jetty以启动reccomender的步骤:

mvn jetty:run
Run Code Online (Sandbox Code Playgroud)

Jetty似乎开始了,但无法找到grouple的示例jar.IE我得到这个例外:

javax.servlet.ServletException:java.lang.IllegalStateException:java.lang.ClassNotFoundException:org.apache.mahout.cf.taste.example.grouplens.GroupLensRecommender

在做了一些研究后,我发现了几个 问题,没有明确解决这个问题.或者列出了解决方案,但没有给出反馈意见.我尝试将maven的内存从建议的1024 MB增加到2048 MB,但这似乎没有改变任何东西.

java mahout

2
推荐指数
1
解决办法
523
查看次数

Mahout Precision Recall Movielens 10M

我是推荐系统的新手.我正在努力学习Mahout,到目前为止我认为我掌握了它.

但是,当我尝试使用Mahout in Action(清单2.4,第21页)中的示例计算Precision&Recall时,我遇到了一个相当奇怪的问题,为了更方便,我在这里复制粘贴主体:

RandomUtils.useTestSeed();
 DataModel model = new FileDataModel (new File("intro.csv"));
 RecommenderIRStatsEvaluator evaluator =
 new GenericRecommenderIRStatsEvaluator ();
  RecommenderBuilder recommenderBuilder = new RecommenderBuilder() {
  @Override
   public Recommender buildRecommender(DataModel model)
    throws TasteException {
    UserSimilarity similarity = new PearsonCorrelationSimilarity (model);
    UserNeighborhood neighborhood =
     new NearestNUserNeighborhood (2, similarity, model);
      return
      new GenericUserBasedRecommender (model, neighborhood, similarity);
     }
   };
    IRStatistics stats = evaluator.evaluate(
    recommenderBuilder, null, model, null, 2,
    GenericRecommenderIRStatsEvaluator.CHOOSE_THRESHOLD,
    1.0);
 System.out.println(stats.getPrecision());
 System.out.println(stats.getRecall());
Run Code Online (Sandbox Code Playgroud)

当我尝试使用书中的小数据集执行上述操作时,一切都应该如此.但是,当我尝试使用Movielens 1M或10M计算Precision&Recall时,结果非常低......例如,Precision和Recall @ 2等于:P:0.00573和R:0.005882

我没有想法,所以如果有人有或有过类似的问题,我会很高兴听到有解决方案......

mahout

2
推荐指数
1
解决办法
2065
查看次数

Mahout Datamodel具有重复的用户,项目输入但具有不同的偏好值

我想知道分布式mahout推荐器作业如何org.apache.mahout.cf.taste.hadoop.item.RecommenderJob处理csv文件,其中存在重复和三重用户,项目条目但具有不同的首选项值.例如,如果我有一个包含类似条目的.csv文件

1,1,0.7
1,2,0.7
1,2,0.3
1,3,0.7
1,3,-0.7

Mahout的数据模型将如何处理这个问题?它会为给定用户,项目条目(例如,对于用户项目1,2,偏好将是(0.7 + 0.3))总结偏好值,或者是否对值进行平均(例如,对于用户项目1,2,偏好是(0.7 + 0.3)/ 2)或者它是否默认为最后一个用户,它检测到的项目条目(例如,对于用户1,2,优先级值设置为0.3).

我问这个问题是因为我正在考虑基于多个偏好指标的推荐(项目视图,喜欢,不喜欢,保存到购物车等).如果数据模型将偏好值视为线性权重(例如,项目视图加上保存到愿望列表具有比项目视图更高的偏好分数)将是有帮助的.如果datamodel已经通过求和来处理这个问题,它将为我节省额外map-reduce的杂项,以根据多个指标对总分进行排序和计算.任何人都可以在mahout上提供任何澄清.csv datamodel在这方面的工作org.apache.mahout.cf.taste.hadoop.item.RecommenderJob将非常感激.谢谢.

hadoop recommendation-engine mahout mahout-recommender

2
推荐指数
1
解决办法
535
查看次数

如何从Hdfs读取CSV文件?

我的数据在CSV文件中.我想读取HDFS中的CSV文件.

任何人都可以帮我代码?

我是hadoop的新手.提前致谢.

csv hadoop hdfs mahout

2
推荐指数
1
解决办法
1万
查看次数

mahout中StandardNaiveBayesClassifier和ComplementaryNaiveBayesClassifier之间的差异

也许我的问题很复杂,但我想知道StandardNaiveBayesClassifierComplementaryNaiveBayesClassifier算法之间的主要区别Mahout.哪一个在较少量的训练数据上表现较好,或者是数据相关问题?哪一个更适合情绪分析?还有一些其他的aspecs ......

先感谢您!

algorithm machine-learning mahout

2
推荐指数
1
解决办法
2549
查看次数