algorithm - org - spark 2.2 mllib
¿Cuál es el rango en Algoritmo de Aprendizaje Automático ALS en Apache Spark Mllib? (1)
Como dijiste, el rango se refiere a los supuestos factores latentes u ocultos. Por ejemplo, si estuvieras midiendo cuánto le gustaban las películas a las personas diferentes e intentabas predecirlas cruzadas, entonces podrías tener tres campos: persona, película, número de estrellas. Ahora, digamos que usted era omnisciente y que sabía la verdad absoluta y que sabía que, de hecho, todas las clasificaciones de las películas podían predecirse perfectamente con solo 3 factores ocultos: sexo, edad e ingresos. En ese caso, el "rango" de tu carrera debería ser 3.
Por supuesto, no sabe cuántos factores subyacentes, si corresponde, manejan sus datos, por lo que debe adivinar. Cuanto más utilice, mejores serán los resultados hasta cierto punto, pero mayor será la memoria y el tiempo de cómputo que necesitará.
Una forma de hacerlo es comenzar con un rango de 5-10, luego aumentarlo, digamos 5 a la vez hasta que los resultados dejen de mejorar. De esta forma, determina la mejor clasificación para tu conjunto de datos mediante la experimentación.
Quería probar un ejemplo del algoritmo de aprendizaje automático ALS. Y mi código funciona bien. Sin embargo, no entiendo el rank
parámetros utilizado en el algoritmo.
Tengo el siguiente código en java
// Build the recommendation model using ALS
int rank = 10;
int numIterations = 10;
MatrixFactorizationModel model = ALS.train(JavaRDD.toRDD(ratings),
rank, numIterations, 0.01);
He leído que donde está el número de factores latentes en el modelo.
Supongamos que tengo un conjunto de datos de (usuario, producto, clasificación) que tiene 100 filas. ¿Qué valor debería tener el rank
(factores latentes)?