Deberán elegir una tarea de las presentadas para alguno de los datasets y desarrollarla incluyendo:
- Un baseline
- Un dataset de validation/test para todos los experimentos
- Al Menos una implementación de alguna de las siguientes:
- Redes neuronales
- Reducción de dimensiones
- Clustering
Por sobre eso se valora el uso de cualquier técnica de machine learning novedosa y potencialmente útil. La idea es hacer una POC: Proof of concept.
El formato de entrega es un video de no más de 10 minutos explicando que se intentó, por qué y resultados. Junto con eso se deberá entregar el código y todo el desarrollo correspondiente.
Se le preguntara si da permiso para compartir el video, de aceptar le pedimos lo suba a youtube.
La nota es a criterio del equipo docente donde todos serán correctores de todo (promediando el puntaje de varios), sobre una base de 2 puntos como máximo que sumarán de forma directa al promedio que se tenga en la materia. Por ejemplo, si su promedio de cursada es 8.75 y saca 1.5 puntos en el TP4 su promedio de cursada es 10.25.
Este TP no tiene correctores individuales asignados, todas las consultas, sean o no de código corresponden al canal #consultas-tp4 o al ayudante que prefieran, también pueden ayudarse entre ustedes. Lo más normal es que no tengan idea de qué hacer en su tarea y es la idea que prueben cosas algo distintas. Después de investigar un poco que se puede usar, pueden preguntar en el canal de consultas para que les demos sugerencias sobre qué probar o que es una buena idea y cuál no.
El dataset consiste de tan solo 250 imágenes por lo que resulta difícil aplicar redes neuronales. La mayoría de las implementaciones utiliza transfer learning sobre otra red pre entrenada. El objetivo de la tarea es intentar algo distinto: Entrenar un KNN con distancia y representación a elegir para las imágenes. ¿Qué distancias, reducciones de dimensiones y Ks consiguen mejor accuracy en el set de test?
Tomando este dataset de typos en commits de github se extrajeron textos de código (no documentación) corregidos por usuarios en commits de github. El dataset reducido tiene más de 69mil textos con las posiciones de los caracteres que fueron modificados.
Tomando los textos mal escritos y sus posiciones como secuencias de caracteres, es posible predecir qué caracteres van a ser modificados? ¿Cuál es el mejor AUC-roc que se puede conseguir? Utilizar el dataset reducido.
Se dispone de una base de datos con información de las cartas del juego Yu-Gi-Oh! (en este archivo se encuentra la traducción de los datos) y una colección de imágenes de dichas cartas.
El style transfer permite generar imágenes nuevas en base a una imagen y un determinado estilo. En este caso, se busca que dada la imagen de una carta y un subset de características, se genere una nueva imagen que represente las características ingresadas. ¿Hay features que sean más importantes que otras para lograr resultados apreciables?¿Es el tamaño de la imagen determinante para el resultado final?
Proponer un embed para las imágenes de las cartas, que permita mediante KNN maximizar la cantidad de atributos que se pueden inferir de la misma. ¿Es posible con el embed propuesto determinar si dos cartas son la misma solo que con arte distinto? ¿Se puede identificar un límite inferior para el largo del embedding, debajo del cual deja de servir? ¿Y un límite superior desde el que deja de tener sentido tener un embedding?
Tenemos dos conjuntos de datos de alphavantage, uno de valores de acciones en intervalos de 1 minuto y otro de valores de criptomonedas en intervalos de un día.
Generalmente las acciones de predicción en trading están ligadas a predecir el precio de una acción específica. En este caso se plantea no predecir el precio, sino que dada una cartera (dinero + acciones), se sugieren los movimientos a realizar durante un dia (en tiempo real*) para maximizar la ganancia. Los movimientos se definen en términos de: se debe comprar / vender / holdear; cuanto se debe comprar o vender; a qué precio se debe comprar o vender.
*Tiempo real: en un contexto de microtrading, el tiempo que tardamos en realizar los movimientos importa en el resultado. Para el TP, asuman que en T1 se puede sensar (tomar un input de cualquier tiempo menor o igual a T1), en T2 toma una acción y en T3 se ve el resultado.
Para las operaciones considerar:
- Compra
- La operación es exitosa si el valor al que se quiere comprar está por sobre el mínimo operado en T3
- Definimos una pérdida en términos de cuánto más caro pagamos la acción respecto del mínimo operado en T3
- Venta
- La operación es exitosa si el valor al que se quiere vender esta por debajo del máximo operado en T3
- Definimos una pérdida en términos de cuánto más barato vendimos la acción respecto del máximo operado en T3
- Hold
- Definimos pérdida en términos del valor que tenían las acciones de la cartera en al inicio de T1 respecto de lo que valen al final de T3.
- Si el valor en T1 es menor que T3 se lo define como una ganancia
Una variante de inversión más conservadora es diversificar la cartera en más de un tipo de instrumento. En particular, para alguien que no tiene mucho tiempo, es más fácil comprar al inicio de la rueda y vender al cierre. Utilizando el dataset de criptos, proponer para un día y un capital inicial, como debe distribuir el capital entre las diversas divisas a fin de maximizar la ganancia al final del día. Utilizando el mismo modelo, predecir para N días y un capital inicial cuanto es la ganancia. ¿Es posible definir un margen de error para esa predicción? ¿Para qué rango de valores de entrada se considera que el margen de error es aceptable?
Tomamos una muestra de posts de stack overflow y sus respuestas del dataset utilizado en este paper. Por un lado tenemos un parquet para los posts en sí mismos y otro para las respuestas de esos posts.
¿Qué tan fácil es predecir los tags de un post dado su contenido? Utilice el sample de posts para realizar está tarea multilabel.
Utilice el sample de posts para predecir en simultáneo la cantidad de comentarios, respuestas y favs que va a recibir.
Dado un post y una respuesta crear un predictor que con el contenido de ambas de la probabilidad de que esa respuesta corresponda a ese post. La métrica de validación es AUC-ROC.
Dados dibujos hechos a mano por personas (recomendamos bajar los binarios) queremos predecir sus categorías
Utilice KNN sobre una reducción de dimensiones que elija para predecir la categoría de los dibujos. ¿Qué top-3 accuracy puede conseguir?
Utilice algún algoritmo de clasificación no supervisada sobre alguna reducción de dimensiones de su elección. ¿Cuál es la mejor Normalized Mutual Information que puede conseguir?
Tenemos tres datasets de tweets, según si son políticos o no, o discriminatorios o no:
- Dataset_1.zip: Contiene tweets en inglés políticos y no políticos
- Dataset_2.zip: Contiene tweets en inglés discriminatorios y no discriminatorios
- Dataset_3.zip: Contiene tweets en portugues políticos y no políticos
Crear un clasificador que comprenda ambos idiomas (inglés y portugues) que clasifique tweets según si son políticos o no. La métrica de validación es AUC-ROC. ¿Cómo conviene usar los débilmente clasificados?
Cree un clasificador para tweets discriminatorios. La métrica de validación es AUC-ROC. ¿Cómo conviene usar los débilmente clasificados?
Utilizando un método de clasificación semi-supervisada corrija los datasets débilmente clasificados. ¿Cúal es la accuracy del método?
Tenemos un dataset con los espectrogramas de masa para distintos compuestos orgánicos.
Queremos predecir la cantidad de átomos de cada elemento que tiene el compuesto utilizado. ¿Qué tan bien funciona en los compuestos con los que no entreno?
Para los compuestos que tienen almenos una categoría asignada en alguno de sus niveles. ¿Qué tan facil es predecirla según el espectrograma?