ユーザー設定の値がない場合は、おそらく必要ありません。Mahout は、好みの値を持たないユーザーにアイテムを推奨するための実装を提供します。これは、ブール設定と呼ばれます。基本的に、一部のユーザーがアイテムを気に入っていることはわかっていますが、その程度はわかりません。たまにはこれでいい。
以下は、これを行う方法のサンプルコードです。基本的に最初の行だけが異なり、データ モデルのタイプがBooleanPrefDataModel
. 次に、ブール データを使用して、2 種類の類似度測定を使用できます。LogLikelihoodSimilarity TanimotoCoefficientSimilarity
、. 両方とも、ユーザー ベースおよびアイテム ベースのレコメンデーションの計算に使用できます。
DataModel model = new GenericBooleanPrefDataModel( GenericBooleanPrefDataModel.toDataMap( new FileDataModel(new File("FILE_NAME"))));
UserSimilarity similarity = new LogLikelihoodSimilarity(model);
UserNeighborhood neighborhood = new NearestNUserNeighborhood(10, similarity, model);
Reecommender recommender = new GenericUserBasedRecommender(model, neighborhood, similarity);
List<RecommendedItem> recommendations = recommender.recommend(1, 10);
for (RecommendedItem recommendation : recommendations) {
System.out.println(recommendation);
}
もう 1 つの方法は、mahout の外部で設定値を計算し、データ モデルを他のユーザー ベースまたはアイテム ベースのアルゴリズムにフィードすることです。しかし、私の知る限り、mahout は設定値を計算するための実装を提供していません。