IIC2433-2017-2 / T02

Repositorio para realizar consultas sobre la tarea 1
1 stars 0 forks source link

Duda con respecto al input de la implementación #3

Closed Geeermy closed 6 years ago

Geeermy commented 6 years ago

¡Hola!

Aprovecho de dejar estas dudas:

  1. ¿Todos los argumentos que se piden en el enunciado son parte de los parámetros de la clase? Por ejemplo, ¿fp = FPGrowth(supp = 0.2, mode = "Verboso", separator = ";", ...)?

  2. Como el soporte se puede entregar tanto porcentual como contador, ¿puedo asumir que el primer caso es cuando es de tipo float y el segundo de tipo entero al revisar el input del usuario?

  3. Cuando me hablan de separador, ¿se refiere, por ejemplo, a cómo se separa cada ítem de una fila en la base de datos? Por ejemplo, si separator = ";", ¿el CSV que ingreso debiese tener cada fila de la forma I1;I2;I3...;In?

  4. Veo que uno de los argumentos es la confianza. ¿Se supone que también filtramos por ella? ¿O cuál es su objetivo? De las clases me quedó claro que el filtro lo hacemos a partir del soporte ingresado, pero no estoy entendiendo el objetivo de recibir como input la confianza, ¿o es para filtrar los itemsets frecuentes según dicho input luego de haberlos obtenido por el algoritmo?

  5. En caso de que el punto 1 no sea tan estricto, ¿puedo definir dónde va cada parámetro dentro de mi clase? Por ejemplo, al hacer fp.fit(path), creo que sería mejor ahí mismo entregar el separador, ya que de esa forma mi clase puede abarcar más de un tipo de archivo, sin tener que encasillarse a lo definido al principio de la clase (lo mismo aplica, por ejemplo, con los modos Verboso/No verboso y orderby).

¡De antemano gracias! (:

Geeermy commented 6 years ago

Respuesta recibida:

  1. Decídelo tú. Pero sería más natural que el separador y verboso o no fuesen en el fit. Ya que esos dependen del input.

  2. Deberías poner 2 atributos, por defecto nulos. Si entrega "c" es contador, si entrega "s" es soporte. Los tipos no siempre podrás diferenciarlos bien. Eso sería lo "estándar". Pero si encuentras otra solución que funcione estará bien. Yo recomendaría lo anterior por buenas prácticas. En python no está claro el reconociemiento por tipo de números a menos que pongas un decorador o los tipos sean muy específicos int vs string. De otra forma se puede equivocar si no lo manejas bien.

  3. Exacto. Configuré los dos subidos para que fueran ",", pero si lo usas en el futuro o con otro archivo de test, debe ser flexible. Al final depende del input.

  4. Puedes filtrar por confianza antes de generar el output. Ya que recien ahí estás definiendo el X e Y. Sin embargo queda a tu criterio. Lo importante es que el output esté filtrado.

  5. Muy bien ;) muy buena idea.

Saludos