Estaba leyendo el informe de la solución ganadora de un Kaggle de la competencia (Malware de Clasificación). El informe se puede encontrar en este post del foro. El problema era un problema de clasificación (nueve clases, la métrica fue la pérdida logarítmica) con 10000 elementos en el conjunto de tren, 10000 elementos en el conjunto de prueba.
Durante la competencia, los modelos fueron evaluados contra el 30% del conjunto de pruebas. Otro elemento importante es que los modelos se fueron realizando muy bien (cerca de 100% de exactitud)
Los autores utilizaron la técnica siguiente:
Otra técnica importante que logramos es Semisupervised de Aprendizaje. Nosotros primero generar pseudo etiquetas de prueba establecidos por la elección de la max probabilidad de que nuestro mejor modelo. Entonces podemos predecir el conjunto de pruebas de nuevo en un validación cruzada de la moda con el tren de datos y datos de prueba. Para ejemplo, el conjunto de datos de prueba se divide a 4 de la parte a, B, C y D. utilizamos la totalidad de los datos de entrenamiento, y los datos de la prueba a, B, C con sus pseudo etiquetas, juntos como el nuevo conjunto de entrenamiento y podemos predecir el conjunto de pruebas D.
El mismo método se utiliza para predecir a, B y C. Este enfoque, inventado por Xiaozhou, funciona sorprendentemente bien y se reduce el local de la cruz la validación de la pérdida, el público LB pérdida y privado LB pérdida. La mejor Semisupervised modelo de aprendizaje puede lograr 0.0023 en privado LB registro la pérdida, que es la mejor puntuación en todas nuestras soluciones.
Yo realmente no veo cómo se puede mejorar los resultados. Es debido a que el 30% de la prueba de conjunto fue "filtrado" y que era una forma de usar esta información?
O hay alguna razón teórica que explica por qué funciona ?