Domanda

Sto provando Mahout e chiedendomi per il dataModel di input

per la versione non distribuita

File DataModel deve seguire: Userid, ItemId, UserpreFereference Il problema è che non ho questi valori di preferenza dell'utente, devono preptentarlo Mahout ha qualche metodo per farlo?

Ho trovato un articolo http:// www.codeproject.com/articles/620717/building-a-recommending-engine-machine-learning . L'autore sembra non ha davvero valori di pericolo utente, ma ha usato org.apache.mahout.cf.taste.hadoop.item.RecommenderJob -s SIMILARITY_COOCCURRENCE per calcolare da {ID utente, questionario} Da ciò che posso dire, Mahout sembra i valori di perferenza di calcolo dai dati, quindi la raccomandazione calcola, sono corretto in questo caso?

È stato utile?

Soluzione

Se non si dispone di valori di preferenza dell'utente, forse non ne hai bisogno.Mahout offre un'implementazione per raccomandare articoli per gli utenti senza avere valori di preferenza.Questo è chiamato preferenze booleane. Fondamentalmente sai solo che qualche utente ama un oggetto, ma non sai quanto.A volte va bene.

Bellow è un codice di esempio come questo può essere fatto.Fondamentalmente solo la prima linea differisce, dove si dice che il tuo modello di dati è di tipo BooleanPrefDataModel.Poi con i dati booleani è possibile utilizzare due tipi di misure di somiglianza: loglikeliodilarità, TanimotoCoefficientSimilarity.Entrambi possono essere utilizzati per le raccomandazioni basate sull'utente e sulla voce.

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);
}
.

L'altra alternativa è quella di calcolare i valori delle preferenze al di fuori di Mahout e nutrire il modello di dati in altri algoritmi utente o elementi.Ma per quanto ne so, Mahout non offre implementazione per i valori di preferenza di calcolo.

Altri suggerimenti

È possibile definire il valore di preferenza per il tuo modello di dati (ma dipende dal modello di dati).Ad esempio, i tuoi elementi del modello di dati sono tracce ascoltate dagli utenti.Il valore delle preferenze può essere definito che l'utente1 ascolta Tracka X volte.Pertanto, deve essere definita il valore delle preferenze per il modello di dati per ogni coppia univoca di userID-Itemid.

L'esempio del modello di dati:

Userid, ItemId, Preferenze

1,1,3 - 1,2,5 - ... - 5,1,2 ... così via.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top