¿Cómo abordar la competencia numer.ai con predictores numéricos escalados anónimos?

9

Numer.ai ha existido por un tiempo y parece que solo hay pocas publicaciones u otras discusiones al respecto en la web.

El sistema ha cambiado de vez en cuando y la configuración actual es la siguiente:

  1. datos de tren (N = 96K) y prueba (N = 33K) con 21 características con valores continuos en [0,1] y un objetivo binario.
  2. Los datos están limpios (no faltan valores) y se actualizan cada 2 semanas. Puede cargar sus predicciones (en el conjunto de prueba) y ver la pérdida de registro. Parte de los datos de prueba son incluso datos en vivo y le pagan por buenas predicciones.

Lo que me gustaría discutir:

Como las características son totalmente anónimas, creo que no hay mucha ingeniería de características que podamos hacer. Entonces mi enfoque es muy mecánico:

  1. inspirado en esto , uso un algoritmo de clasificación para filtrar los datos de entrenamiento que mejor se ajustan a mis datos de prueba.
  2. Averigüe un buen preprocesamiento
  3. entrenar buenos algoritmos de clasificación
  4. construir conjuntos de ellos (apilamiento, ..).

La pregunta concreta:

Con respecto al paso 1: ¿Tiene experiencia con este enfoque? Digamos que ordeno la probabilidad de que las muestras de tren pertenezcan a la prueba (generalmente por debajo de 0.5) y luego tomo las mayores probabilidades de K. ¿Cómo elegirías a K? Intenté con 15K ... pero principalmente para tener un pequeño conjunto de datos de entrenamiento para acelerar el entrenamiento en el paso 3.

Con respecto al paso 2: los datos ya están en una escala de 0,1. Si aplico cualquier transformación lineal (como PCA), rompería esta escala. ¿Qué intentarías en el preprocesamiento si tienes esos datos numéricos y no tienes idea de que realmente es así?

PD: Soy consciente de que porque numer.ai le paga a las personas que discuten esto podría ayudarme a ganar algo de dinero. Pero como esto es público, esto ayudaría a cualquiera ...

PPS: la tabla de clasificación de hoy tiene un patrón interesante: los dos primeros con logloss de 0.64xx, luego el número 3 con 0.66xx y luego la mayoría de los predictores alcanzan 0.6888x.

Por lo tanto, parece haber un campo superior muy pequeño y muchos tipos moderadamente exitosos (incluyéndome a mí).

Ricardo
fuente

Respuestas:

2

Observé el enfoque y seleccioné K probando un rango, es decir, 5k, 10k, 15k, etc. y luego explorando el rango en el que cae el mejor resultado, digamos que el mejor es 15k, entonces podría hacer 13, 14, 15, 16, 17 y así sucesivamente.

Hasta ahora no he encontrado ningún preprocesamiento efectivo.

Respondiendo el comentario:

He intentado usar LogisticRegression, SVM, Redes neuronales, RandomForests, Multinomial NB, Extra Trees. Todos excepto las redes neuronales que utilizan las implementaciones en sklearn. PyBrain para la NN.

Juan
fuente
¿Quizás puedas agregar más detalles? Sí, intentamos datos de entrenamiento de varios tamaños. ¿Qué preprocesamiento has probado? ¿Qué clasificadores? ¡Gracias!
Richard