0

すでに知っているように、genericItemSimilarityでは、item1とitem2の間の類似性が事前に計算されています。

GenericItemBasedRecommenderを使用して推奨を取得すると、the recommender need datamodel and similarity in memory at the same timegenericItemSimilarityによると、次のような構造になります。

  public GenericItemSimilarity(ItemSimilarity otherSimilarity, DataModel dataModel) throws TasteException {
        long[] itemIDs = GenericUserSimilarity.longIteratorToList(dataModel.getItemIDs());
        initSimilarityMaps(new DataModelSimilaritiesIterator(otherSimilarity, itemIDs));
  }

dataModelを使用して、時間内に類似性マップを生成するだけです。

類似マップをDb/ファイルに保存する必要がありますか?

mahout 0.7には、 FileItemItemSimilarityIteratorファイルから類似性マップを読み取るのに役立つという名前のクラスがあります。

FileItemItemSimilarityIteratorまたはAbstractJDBCInMemoryItemSimilarity(mahout 0.5)冗長性または無力です。

4

1 に答える 1

1

その場ですばやく再計算できる場合は、類似点をメモリに保存する必要はありません。

そうでない場合は、絶対値が小さい類似点を単純に削除することをお勧めします。これらは計算への影響が最も少ないです。

于 2012-08-22T11:15:46.503 に答える