11

Ich wollte ein Beispiel für ALS Machine Learning-Algorithmus versuchen. Und mein Code funktioniert gut, aber ich verstehe Parameter rank in Algorithmus verwendet nicht.Was ist Rang in ALS-Maschine Lernalgorithmus in Apache Spark MLLIB

ich in Java folgenden Code haben

// Build the recommendation model using ALS 
    int rank = 10; 
    int numIterations = 10; 
    MatrixFactorizationModel model = ALS.train(JavaRDD.toRDD(ratings), 
      rank, numIterations, 0.01); 

Ich habe einige, wo, dass sie die Zahl der latenten Faktoren im Modell ist.

Angenommen, ich habe einen Datensatz von (Benutzer, Produkt, Bewertung) mit 100 Zeilen. Welcher Wert sollte rank (latente Faktoren) sein.

Antwort

15

Wie Sie sagten, bezieht sich der Rang auf die vermuteten latenten oder versteckten Faktoren. Wenn Sie zum Beispiel messen, wie sehr verschiedene Leute Filme mögen und versuchen, sie vorherzusagen, dann haben Sie vielleicht drei Felder: Person, Film, Anzahl der Sterne. Nun, lassen Sie uns sagen, dass Sie allwissend waren und Sie die absolute Wahrheit kannten, und Sie wussten, dass tatsächlich alle Filmbewertungen durch nur 3 versteckte Faktoren, Geschlecht, Alter und Einkommen perfekt vorhergesagt werden können. In diesem Fall sollte der "Rang" Ihres Laufs 3 sein.

Natürlich wissen Sie nicht, wie viele zugrunde liegende Faktoren, wenn überhaupt, Ihre Daten fahren, so dass Sie raten müssen. Je mehr Sie verwenden, desto besser sind die Ergebnisse bis zu einem gewissen Punkt, aber desto mehr Speicher und Rechenzeit benötigen Sie.

Ein Weg, um es zu arbeiten, ist mit einem Rang von 5-10 beginnen, dann erhöhen Sie es, sagen Sie 5 auf einmal, bis Ihre Ergebnisse aufhören zu verbessern. Auf diese Weise bestimmen Sie den besten Rang für Ihren Datensatz durch Experimentieren.

+0

Tyler, Danke für so eine gute Erklärung. Allerdings habe ich eine Frage hier, die latenten Faktoren, die wir annehmen, sind sie nur Benutzer (Entscheidungen, Interessen) oder sie können auch Merkmale enthalten? –

+1

Es ist nur eine Eigenschaft der Daten. –

+0

Wenn Sie so genau eine Antwort für Lambda hinzufügen könnten, was ich glaube, ist der einzige andere Parameter, den ALS verwendet ... Dies ist die beste Antwort, die ich für Rank gefunden habe –

Verwandte Themen