Cómo detectar y eliminar valores atípicos de ese conjunto de datos

Yo haría lo siguiente en su caso:

  • dividir los datos según el tipo de tarjeta y luego:
  • busque valores atípicos univariados o multivariados en los Momentos Hu dentro de cada grupo.

Vi que los Momentos Hu en sus datos están fuertemente interrelacionados (al menos en sus datos de entrenamiento). Las correlaciones son de tal magnitud ( es decir, cerca de 1) que no se necesitan técnicas de detección de valores atípicos multivariantes; simplemente podemos ver los valores atípicos en uno de estos momentos. Esto simplifica el problema considerablemente, ya que detectar valores atípicos multivariados es difícil.


Consulte el siguiente código R en sus datos:

# Borrar el entorno de trabajo R
rm (lista = ls (todo = VERDADERO))

# Ir al directorio de trabajo donde están los archivos
setwd (“../ 2016-11-01-QuoraR”)

# Cargar los datos
train <- read.csv ("train.csv", encabezado = F)

# Explore los datos; el redondeo se realiza para hacer la salida
# más fácil de leer.
redondo (cor (tren), 3)

# La salida muestra claramente fuertes correlaciones entre V2-V8:

# V1 V2 V3 V4 V5 V6 V7 V8
# V1 1.000 0.003 0.010 0.010 0.010 0.010 0.010 0.010
# V2 0.003 1.000 0.997 0.997 0.997 0.997 0.997 0.997
# V3 0.010 0.997 1.000 1.000 1.000 1.000 1.000 1.000
# V4 0.010 0.997 1.000 1.000 1.000 1.000 1.000 1.000
# V5 0.010 0.997 1.000 1.000 1.000 1.000 1.000 1.000
# V6 0.010 0.997 1.000 1.000 1.000 1.000 1.000 1.000
# V7 0.010 0.997 1.000 1.000 1.000 1.000 1.000 1.000
# V8 0.010 0.997 1.000 1.000 1.000 1.000 1.000 1.000

# Para fines prácticos, ignoro V3-V8; estas variables
# no contiene información adicional real.

# Hacer un diagrama de caja:
diagrama de caja (V2 ~ V1,
datos = tren,
nombres = c (“Clubes”, “Picas”, “Diamantes”, “Corazones”),
xlab = “Tipo”,
ylab = “Hu Momento 1”)

# Ver el resultado a continuación:

# El diagrama de caja mencionado anteriormente no contiene etiquetas.

# Podemos usar la función “Boxplot” para etiquetar valores atípicos.
# Esta función proviene de la biblioteca “car”.
biblioteca (“auto”)

# Use la función Boxplot para etiquetar valores atípicos.
Diagrama de caja (train $ V2 ~ train $ V1, id.method = “y”,
nombres = c (“Clubes”, “Picas”, “Diamantes”, “Corazones”),
xlab = “Type”, ylab = “Hu Moment 1”)

Convenientemente, la función Boxplot también imprime las ID de los valores atípicos:

# [1] “642” “1406” “558” “935” “938” “943” “946” “947”
# “1389” “1395” “186” “108” “99” “477” “21” “96”
# “98” “103” “105” “109”

El método más fácil y eficiente es utilizar el gráfico Rstudent que normaliza los puntos de datos y los puntos a sus valores Rstudent correspondientes y puede detectar fácilmente los valores atípicos visualmente.

Un enfoque matemático sería utilizar la fórmula estadística de IOR, trazando diagramas de caja

Mediante el uso de la regla IQR.

Es una regla muy simple y eficiente para detectar valores atípicos. Puede encontrar la explicación sobre cómo implementarlo aquí: http://www.unc.edu/~rls/s151-09/

He estado usando esta regla para detectar eventos, es decir, picos en la actividad de datos del teléfono móvil.

Este trabajo fue publicado y puede encontrar el resumen del artículo aquí: fusión de datos para la detección de eventos de la vida en la ciudad

Si necesita una copia, contácteme.

Intente trazar los datos de varias maneras para ver los valores que realmente son atípicos (valores imposibles o extremadamente improbables) en lugar de valores extremos genuinos que todavía son posibles y deben incluirse. Use el diagrama de dispersión del programa o las rutinas gráficas.

  1. Identifique el punto más alejado de la media de los datos.
  2. Determine si ese punto está más allá de 1.5 * IQR de la media.
  3. Si es así, ese punto es un valor atípico y debe eliminarse de los datos, lo que da como resultado un nuevo conjunto de datos.

Para saber más visite Learnvern.

Bueno, hay dos opciones que prefiero para la eliminación de valores atípicos.

1-) Si conoce los datos y su significado, debe evaluar si algún valor particular tendría / no tendría sentido (es decir, si se trata de una columna de edad, debe eliminar después de 85-90 lo que le resulte más cómodo, por supuesto basado en la distribución variable)
La razón por la que menciono la distribución variable es que podría tener los datos de edad de una institución que podría estar atendiendo a personas mayores. En ese caso, si 85 es la edad media / media, por supuesto, debe establecer la barra a un nivel más alto …

2-) Hablar de distribuciones me lleva a mi opción 2. Si no sé mucho sobre el significado de la variable, o si soy flojo para investigar a fondo, miro la distribución de la variable en términos de percentiles y elimino los registros que es tener menos del primer percentil y más alto que el percentil 99. En general, esto da buenos resultados, especialmente en los conjuntos de datos con los que trabajo. Esto podría ayudarlo con su conjunto de datos.

¡Espero eso ayude!

More Interesting

En clasificación, ¿cómo manejas un conjunto de entrenamiento desequilibrado?

¿Podría el aprendizaje profundo vencer a los métodos tradicionales en 3D Vision?

Cómo comenzar una investigación independiente en aprendizaje profundo

¿Cuáles son algunas aplicaciones destacadas de los métodos de máxima verosimilitud?

¿Qué caminos puede tomar un ingeniero mecánico para comenzar a trabajar con robótica, aprendizaje automático e inteligencia artificial?

¿Cómo se encuentran los trabajos de consultoría en machine learning + PNL?

¿Qué debo aprender para el aprendizaje automático, C ++ o Python?

¿Por qué los modelos basados ​​en árboles son robustos para los valores atípicos?

¿Cómo entrenamos un clasificador para el cual solo tenemos datos de entrenamiento positivos (no hay datos negativos o sin etiquetar disponibles)?

¿Por qué no es una buena idea tener el mismo tren y equipo de prueba?

¿Cuáles son las condiciones de Dirichlet en una serie de Fourier? ¿Son necesarias las condiciones de Dirichlet?

¿Qué área de la PNL es más prometedora y gana más tracción en la industria: la PNL sobre los datos de voz frente a texto?

¿Hay algún lugar en la ciencia donde la biblioteca estadística de Python sea pobre o inmadura en comparación con R?

¿Qué tipo de proyectos de aprendizaje automático puedo hacer? ¿Qué libros me recomiendan aprender? Estoy interesado en usar Python.

¿Es un árbol de decisión solo un nombre elegante para una secuencia de declaraciones if-else-if-else -if-else?