我正在尝试使用mahout构建项目项相似性匹配推荐引擎。数据集采用以下格式(属性采用文本而非数字格式)
name : category : cost : ingredients
x : xx1 : 15 : xxx1, xxx2, xxx3
y : yy1 : 14 : yyy1, yyy2, yyy3
z : xx1 : 12 : xxx1, xxy1
因此,为了使用这个数据集进行训练,有什么方法可以将这个数据转换为mahout接受的数字(作为CSV布尔数据集)格式。
答案 0 :(得分:0)
使用Mahout v1,编码可以是文本分隔/ CSV类型文件。
name<tab>category-ID<space>cost-range-ID<space>ingredient-ID1<space>ingredient-ID2<space>etc...
所有ID都是字符串,因此您可能希望为成本范围提供ID,而不是将实际成本用作数值。另外,请确保所有列都不能包含相同的ID,因此cost-range-IDs与ingredient-ID和category-ID不同。
对此数据运行mahout spark-rowsimilarity
,您将获得以下格式的文件:
name<tab>name1:strength<space>name2:strength<space>etc...
这是每个项目的类似项目列表。对列表进行排序,强度是项目相似程度的LLR(对数似然比)得分。
文档:http://mahout.apache.org/users/recommender/intro-cooccurrence-spark.html