¿Es razonable excluir valores atípicos en su conjunto de datos de entrenamiento para su clasificador?

Sin más información no me parece razonable. Al eliminar un valor atípico simplemente porque es un valor atípico, está eliminando la señal de su modelo. Hay excepciones.

Algunos ejemplos:

  • Los valores atípicos son errores. Por ejemplo, estoy trabajando en un conjunto de datos donde descubrí que algunos usuarios tenían días de retención negativos. En el análisis del juego (y otros), los días de retención es el número de días transcurridos desde que el usuario usó la aplicación por primera vez, lo que significa que siempre es> = 0. En estos casos, siempre excluyo los valores atípicos de los conjuntos de entrenamiento y prueba y necesito estar seguro que este error no ocurre en datos nuevos.
  • Los valores atípicos son simplemente valores atípicos. El porcentaje de usuarios que pagan en los primeros 30 días de actividad en un juego freemium es de alrededor del 2%. Por lo tanto, todos los usuarios que pagan son, por todas las razones prácticas previstas, valores atípicos. ¡Naturalmente debo mantenerlos!
  • Los valores atípicos son valores atípicos … y quiero encontrar los valores atípicos. Cualquier tipo de detección de anomalías, detección de fraude, detección de abandono … si tiene la detección de palabras, ¡es muy probable que estemos “persiguiendo” valores atípicos!
  • Los valores atípicos aparecen en una variable calculada que es la variable objetivo. Solo vi esto en las tareas de regresión. Usando el ejemplo de los usuarios que pagan, digamos que quiero predecir los ingresos por usuario después de 365 días. Con un 2% de usuarios gastando en los primeros 30 días en promedio, obtendré ingresos por usuario que van de $ 0 a $ 1K por usuario. La razón de esto es que en grupos muy pequeños de usuarios, un solo usuario puede hacer una gran diferencia, especialmente si él / ella gasta mucho. En este caso, prefiero excluir estos grupos si y solo si no son representativos de los nuevos datos finales que utilizaré. Ejemplo: si mis nuevos datos siempre tendrán más de 1000 usuarios, no usaré grupos más pequeños que eso en los conjuntos de entrenamiento y prueba.

En cuanto a los clasificadores, muchos algoritmos de clasificación son algo robustos para los valores atípicos. Los algoritmos que crean límites lineales (por ejemplo, LDA) son algo robustos pero estarán sesgados si los datos no son linealmente separables. Los algoritmos que utilizan métodos de conjunto (por ejemplo, RF) funcionan bastante bien al menos en los datos de entrenamiento. Los modelos de árbol (nuevamente RF) funcionan bien en presencia de valores atípicos.

El ajuste de los hiperparámetros del modelo juega un papel muy importante en los clasificadores. En cuanto a la regresión, me enfoco en usar modelos robustos. La compensación es la velocidad. No me importa eso en el tiempo de entrenamiento.

Mi regla general (actual) es que si el valor atípico es un error, lo elimino, si no, creo que es muy difícil de entender en el producto final de datos. A veces mi problema es no tener suficientes valores atípicos que se reducen a un conjunto de datos no balanceado.

¡Espero que esto ayude!

En mi opinión, como investigador de MCMC y divertido, uno no debe excluir los valores atípicos. Porque ya está tratando de estimar cuáles serán los resultados y debería ver las COLAS de los datos. Las colas son realmente importantes, y los valores atípicos son realmente buenos parámetros para descubrirlos.

Por otro lado, si estoy haciendo alguna regresión, serie temporal o clasificación o agrupamiento, eliminaría los valores atípicos con seguridad, porque puede afectar su modelo y sus pesos de manera negativa. Y si no tiene mucha cantidad de datos, puede causarle problemas cada vez más. (Piense en la ley de los grandes números, el teorema del límite central) y finalmente, por supuesto, habrá casos inesperados: valores atípicos en la vida real 🙂

Yo diría que siempre depende de la tarea en cuestión. Si está creando un clasificador de detección de anomalías, obviamente no desea eliminar los valores atípicos porque podrían ser sus anomalías y, por lo tanto, no puede entrenar a su clasificador sin él.

Por otro lado, si está analizando ventas y ganancias y desea realizar una clasificación basada en la regresión, entonces podría ser razonable y útil eliminar los valores atípicos o reemplazarlos con un valor medio o umbral.

Por ejemplo, uno de los primeros valores atípicos que descubrí al tratar ese problema posterior es que una de las compañías con las que tratamos nos da un monto de venta “falso” en su informe de ventas. (¡Nos pagan con una comisión fija con ellos, así que no te preocupes!)

Pero cuando quiere analizar su cesta de clientes y se topa con ella, dice: “1000000 €” ¿qué están comprando? (Larga historia corta) ¡Eso es obviamente un caso atípico!

Por lo tanto, desearía eliminar ese valor atípico y reemplazarlo con la media, digamos, de las ventas para la categoría en la que se ajustan las ventas. En este caso, es obviamente razonable sacar su valor atípico del conjunto de datos de entrenamiento antes de alimentarlo a cualquier algoritmo.

Será mejor que los conserve y haga el análisis preliminar antes de tomar cualquier decisión.

Si los valores atípicos son dos pocos a los que les importa, mantenerlos no importa. De lo contrario, simplemente pertenecen a otra clase.

More Interesting

¿Qué clases de modelos se pueden usar para predecir distribuciones de series de tiempo?

¿Cuáles son las ventajas y desventajas de utilizar PMML como formato de intercambio para modelos de análisis predictivo?

¿Qué áreas específicas de las matemáticas son útiles en neurociencia?

¿Hay escasez de científicos de datos?

¿Podemos usar variador automático para aprender una representación como el autoencoder de vainilla?

¿Puede proporcionar las tareas que se le han asignado mientras buscaba una maestría en el campo CS?

¿Por qué el clasificador Bayes Network funciona tan bien como SVM con menos funciones que las que se usan con SVM?

¿Es necesario aprender Python para seguir la especialización en cursos de Machine Learning, de Coursera?

¿Por qué el código de paralelo de GPU es más complicado que el código de paralelo de CPU?

¿Por qué la pérdida logística es una mejor métrica para la clasificación probabilística que RMSD?

En un juego de billar, ¿puede el mejor robot (diseñado específicamente para esta tarea) derrotar al campeón mundial humano?

¿Tiene sentido tener un conjunto de validación y realizar una validación cruzada al construir modelos?

¿De qué sirve el aprendizaje automático en la predicción de resultados de cricket?

¿Me pueden ayudar a encontrar e identificar mi idea de doctorado? (¿Aprendizaje profundo y análisis de Big Data Twitter Sentiment?)

¿Cuál es el mejor instituto en Bangalore para aprendizaje automático, inteligencia artificial y aprendizaje profundo (necesita práctica)?