11

Ho voluto provare un esempio di algoritmo di apprendimento automatico ALS. E il mio codice funziona bene, tuttavia non capisco il parametro rank utilizzato nell'algoritmo.Qual è il grado nella macchina ALS Apprendimento dell'algoritmo in Apache Spark Mllib

Ho seguente codice in java

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

Ho letto alcuni dove che è il numero di fattori latenti nel modello.

Supponiamo di avere un set di dati di (utente, prodotto, valutazione) con 100 righe. Quale valore dovrebbe essere di rank (fattori latenti).

risposta

15

Come hai detto, il rango si riferisce ai presunti fattori latenti o nascosti. Ad esempio, se stavi misurando la differenza tra le persone e i film e hai provato a prevederle in modo incrociato, potresti avere tre campi: persona, film, numero di stelle. Ora, diciamo che eri onnisciente e conoscevi l'assoluta verità e sapevi che in realtà tutte le classificazioni del film potevano essere perfettamente predette da soli 3 fattori nascosti, sesso, età e reddito. In tal caso, il "rango" della corsa dovrebbe essere 3.

Naturalmente, non si sa quanti fattori sottostanti, se ve ne sono, guidano i dati in modo da indovinare. Più usi, migliori sono i risultati fino a un certo punto, ma più tempo di memoria e computazione ti servirà.

Un modo per funzionare è iniziare con un punteggio di 5-10, quindi aumentarlo, diciamo 5 alla volta finché i risultati non smettono di migliorare. In questo modo si determina il miglior posizionamento per il set di dati tramite la sperimentazione.

+0

Tyler, Grazie per una così buona spiegazione. Tuttavia, ho una domanda qui, i fattori latenti, che assumiamo, sono solo degli utenti (scelte, interessi) o possono includere anche le caratteristiche degli oggetti? –

+1

È puramente una caratteristica dei dati. –

+0

se si potesse includere una risposta precisa per Lambda, che credo sia l'unico altro parametro utilizzato da ALS ... Questa è la migliore risposta che ho trovato per Rank –