hadoop - Apache Mahout-从字符串读取首选项值

标签 hadoop mahout

我的数据集包含经典的UserID,ItemID和首选项值,但是它们都是字符串。

通过覆盖FileDataModel类(属于Mahout库的一部分)中的readItemIDFromString()和readUserIDFromString()方法,我设法读取了UserID和ItemID字符串,但是,似乎对首选项值的转换似乎没有任何支持如果我没有记错的话。

如果有人对解决这个问题的方法有什么投入,我将不胜感激。

为了说明我的意思,这是我的UserID字符串“Conversion”的示例:

@Override
protected long readUserIDFromString(String value) {

    if (memIdMigtr == null) {
        memIdMigtr = new ItemMemIDMigrator();
    }

    long retValue = memIdMigtr.toLongID(value);
    if (null == memIdMigtr.toStringID(retValue)) {
        try {
            memIdMigtr.singleInit(value);
        } catch (TasteException e) {
            e.printStackTrace();
        }
    }
    return retValue;
}

String getUserIDAsString(long userId) {
    return memIdMigtr.toStringID(userId);
}   

以及AbstractIDMigrator的实现:
public class ItemMemIDMigrator extends AbstractIDMigrator {

private FastByIDMap<String> longToString;

public ItemMemIDMigrator() {
    this.longToString = new FastByIDMap<String>(10000);
}

public void storeMapping(long longID, String stringID) {
    longToString.put(longID, stringID);
}

public void singleInit(String stringID) throws TasteException {
    storeMapping(toLongID(stringID), stringID);
}

public String toStringID(long longID) {
    return longToString.get(longID);
}
}

最佳答案

Mahout将弃用基于Hadoop的旧推荐器。我们提供了一种基于称为“相关交叉事件”(CCO)的新算法的更现代的产品。它使用Spark构建,速度提高了10倍,并且与查询服务器结合使用时可以提供实时查询结果。

此方法为用户ID和项目ID提取字符串,并产生具有相同ID的结果,因此您不再需要管理它们。您确实应该查看新系统,而不知道将支持旧系统多长时间。

Mahout文档在这里:http://mahout.apache.org/users/algorithms/recommender-overview.html和此处:http://mahout.apache.org/users/recommender/intro-cooccurrence-spark.html

带有SDK,输入存储,模型和实时查询训练的整个系统描述是Apache PredictionIO项目和PIO和“Universal Recommender”文档的一部分,此处为:http://predictionio.incubator.apache.org/,此处为:http://actionml.com/docs/ur

关于hadoop - Apache Mahout-从字符串读取首选项值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42916760/

相关文章:

machine-learning - Mahout 基于项目的推荐引擎,没有偏好值

hadoop - Mahout 0.9使用哪个Hadoop

hadoop - 如何用拉丁 pig 按地区分组结果?

numpy - 亚马逊 EC2 与 PiCloud

java - 如何解析 CSV 文件以便 Mahout 对其进行分类

machine-learning - Mahout 分类器对其他语言的支持

hadoop - Pig 字段中的拆分字符

c# - 我尝试列出Hortonworks webhdfs,它将使用curl命令在Hortonworks控制台上正常工作,但不能在C#中列出所有文件夹

apache-spark - 查找事件的 Hadoop 镜像

hadoop - 在 Amazon Elastic MapReduce 中运行自定义 jar 时如何访问 s3n 中的文件