gpt4 book ai didi

mysql - 如何在 Apache Mahout 中将现有的具有 n 列的 MySQL 表作为 MySQLJDBCDataModel?

转载 作者:行者123 更新时间:2023-11-29 22:52:44 24 4
gpt4 key购买 nike

我正在尝试使用 Mahout 为我的项目创建一个推荐系统。我尝试了带有 .csv 文件的示例程序(来自 Mahout)。现在我正在使用MySQL数据库中的数据。我有一个名为“交易”的表,其中包含以下列。transactioniduseriditemid购买数量金额评级

我看到 Mahout 需要数据采用“userid、itemid、偏好/评级”格式,并且我看到它具有 MySQLJDBCDataModel。所需的三列已存在于我的“交易”表中。

现在对于数据源,我应该创建一个仅包含所需 3 列的新表并从“交易”表复制值吗?或者,我可以以某种方式使用“交易”表本身吗?

我确实浏览了下面链接中的文档,但无法清楚地理解 http://archive.cloudera.com/cdh4/cdh/4/mahout/mahout-integration/org/apache/mahout/cf/taste/impl/model/jdbc/MySQLJDBCDataModel.html

请指教。先谢谢您的帮助。

最佳答案

By default it assumes  the table schema  

user_id BIGINT NOT NULL,
item_id BIGINT NOT NULL,
preference FLOAT NOT NULL,

http://grepcode.com/file/repo1.maven.org/maven2/org.apache.mahout/mahout-integration/0.7/org/apache/mahout/cf/taste/impl/model/jdbc/MySQLJDBCDataModel.java

很久以前我就做了如下的事情。我使用 MySQLBooleanPrefJDBCDataModel.i 没有偏好值。

public void datamodelimplementation2()
{
MysqlDataSource dataSource = new MysqlDataSource();
dataSource.setServerName("10.20.53.157");
dataSource.setUser("root");
dataSource.setPassword("root");
dataSource.setDatabaseName("mahout");
DataModel model = new MySQLBooleanPrefJDBCDataModel(dataSource,
"mahoutinput","cid", "pid", null);

ItemBasedRecommender recommender = null;

try {
DataModel dataModel = new MySQLBooleanPrefJDBCDataModel(dataSource);
ItemSimilarity similarity = new MySQLJDBCInMemoryItemSimilarity(dataSource);
AllSimilarItemsCandidateItemsStrategy candidateStrategy =
new AllSimilarItemsCandidateItemsStrategy(similarity);
recommender = new GenericItemBasedRecommender(dataModel,
similarity, candidateStrategy, candidateStrategy);

} catch (Exception e1) {
e1.printStackTrace();
System.exit(-1);
}

recommender.refresh(null);
List<RecommendedItem> r = null;
try {

r = recommender.recommend(18768, 10);


} catch (TasteException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
System.out.println(r);

}


as of my knowledge you need to create a table that contains user id,item id,rating. and incrementally add new data to that table.

关于mysql - 如何在 Apache Mahout 中将现有的具有 n 列的 MySQL 表作为 MySQLJDBCDataModel?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28825159/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com