¿El error de clasificación es menor cuando no aprendo nada en el conjunto de datos?

8

Tengo un conjunto de datos de una bolsa de palabras. Elijo aleatoriamente algunos puntos y los uso para probar y los otros se usan para entrenar.

  • caso (1) Simplemente tomo cada punto de datos del conjunto de prueba y lo clasifico como teniendo la misma etiqueta de clase que su punto más cercano del conjunto de trenes.
  • caso (2) Hago la clasificación usando cualquier clasificador supervisado conocido.

Siempre obtengo una mejor tasa de reconocimiento en el caso (1). Es decir, no aprender nada, ¡es mejor que usar cualquier aprendizaje supervisado para este conjunto de datos (y otros)! ¿Es esa una situación frecuente?

shn
fuente
No sé si es frecuente, pero me pasó a mí. Tu clasificador simplemente no funciona bien. En particular, a menudo hice modelos de árbol y descubrí que el nodo raíz es el mejor árbol (según la definición de "mejor").
Peter Flom
1
Es muy común que las personas cometan errores cuando implementan algoritmos de aprendizaje. Si usa el descenso de gradiente, verifique que un pequeño paso en la dirección del gradiente realmente disminuya la función de costo en aproximadamente la cantidad que debería. Esta es una prueba fácil, pero muchas personas la omiten y pierden el tiempo ajustando un algoritmo con un error de señal o algún problema similar.
Douglas Zare el
@DouglasZare Lo he probado con muchos clasificadores de Weka y otros que implementé yo mismo. Para muchos conjuntos de datos, el uso de un clasificador con un paso de entrenamiento (es decir, el caso (2)) dará mejores resultados que el caso (1), sin embargo, para los tres conjuntos de datos de bolsa de palabras que estoy probando actualmente, obtengo mejores resultados en el caso (1). No creo que el aprendizaje / clasificador no funcione bien, ya que lo he probado con muchos clasificadores.
shn

Respuestas:

11

No es cierto que no estés aprendiendo nada. Lo que está haciendo es usar el conocido algoritmo de clasificación llamado Vecino más cercano (NN). Es importante darse cuenta de que está aprendiendo mientras use los datos del tren (incluso si no calcula explícitamente algún parámetro), y en este caso definitivamente lo está usando.

Está bien que a NN le vaya bien. Sin embargo, en algunos casos puede ser una señal de que hay un problema con sus datos. Esto puede suceder cuando sus datos no son IID . Por ejemplo, en algunos casos puede tener duplicados exactos o cercanos en sus datos. En tal caso, muchas instancias en el conjunto de prueba tendrán un vecino cercano en el conjunto del tren y obtendrá una alta tasa de éxito, pero de hecho está sobreajustado, porque si obtiene un nuevo punto sin duplicados, su rendimiento será peor. Lo que puede hacer en este caso es tratar de eliminar los duplicados de antemano, o construir los conjuntos de tren / prueba de modo que los duplicados (o grupos apretados) tengan que estar en el mismo conjunto. Es importante mirar los datos e intentar comprender lo que está sucediendo.

Bitwise
fuente
Estoy usando directamente el conjunto de entrenamiento para hacer la clasificación de los puntos de ajuste de prueba. No hay una fase de entrenamiento que se realizó en el conjunto de entrenamiento. No aprendí nada, solo clasifiqué mis puntos de prueba. No sé por qué llamas a esto "aprendizaje" solo porque se usa el juego de trenes. No obstante, acabo de comprobar el conjunto de datos y tiene razón, hay algunos puntos de datos duplicados, a veces el mismo punto de datos está en el tren y el conjunto de prueba, este no es el caso para todos los puntos de datos, pero intentaré para solucionarlo, elimine los duplicados y vea si se solucionó el problema.
shn
1
@shn es un error común pensar que no estás aprendiendo y que no hay parámetros en dicho método. Siempre que use los datos de entrenamiento, es aprender. Lo que realmente está haciendo es usar todo el conjunto de entrenamiento como sus "parámetros aprendidos", por lo que cuando lo guarda para su uso posterior, en realidad está "entrenando" (es por eso que NN es a menudo más propenso al sobreajuste, en realidad tiene mucho de "parámetros"). Si las predicciones que haces dependen del conjunto de entrenamiento, es aprender. Un caso sin entrenamiento sería si hiciera predicciones SIN usar el conjunto de entrenamiento.
Bitwise
Ok, el problema vino de los puntos duplicados. Al eliminarlos, algunos clasificadores logran una tasa de reconocimiento ligeramente mejor que la estrategia NN. Sin embargo, no me di cuenta de que había demasiados puntos duplicados, los eliminé y terminé con un conjunto de datos mucho más pequeño, el número de instancias no es realmente suficiente para realizar un aprendizaje en línea. ¿Conoces algún conjunto de datos etiquetado disponible sobre la clasificación de documentos que esté listo para usar (es decir, que pueda usar sin hacer el preprocesamiento y muchas cosas ...)? Hay un gran conjunto de datos de bolsa de palabras en el repositorio de UCI, pero no se proporcionan etiquetas.
shn