7 votos

¿Cómo rápidamente puedo detectar variables de engaño en datos de gran tamaño?

Supongamos que Tenemos un conjunto de datos con millones de filas y miles de columnas y la tarea de clasificación binaria. Cuando ejecutamos un modelo de regresión logística, el rendimiento mucho mejor de lo esperado, e.g, casi de clasificación perfecta.

Tenemos la sospecha de que hay un poco de trampa variables en los datos, ¿cómo puedo detectar rápidamente?

Aquí la trampa variables significa una variable que es muy indicativo de la respuesta y no debemos usar. Por ejemplo, podemos utilizar si una persona hacer llamadas de servicio al cliente para predecir si una persona compró un producto o no.

11voto

Josh Pearce Puntos 2288

Esto se refiere a veces como "la Fuga de Datos." Hay un buen papel sobre esto aquí:

Fuga en la Minería de Datos: Formulación, Detección y Evitación

El documento mencionado tiene un montón de divertidas (y horrible) ejemplos de fuga de datos, por ejemplo, un cáncer de predicción de la competición, en la que resultó que la IDENTIFICACIÓN del paciente, el número se había casi perfecta predicción del futuro de cáncer, sin querer, porque de cómo se formaron los grupos a lo largo del estudio.

Yo no creo que haya una clara manera de identificar la fuga de datos. El documento mencionado, tiene algunas sugerencias, pero en general es muy problema específico. Como un ejemplo, usted podría mirar sólo las correlaciones entre sus características y destino. Sin embargo, a veces vas a perder las cosas. Por ejemplo, imagina que estás haciendo un bot de spam detector para un sitio web como stackexchange, donde además de la colección de características como la longitud del mensaje, el contenido, etc., potencialmente puede recolectar información acerca de si un mensaje fue señalado por otro usuario. Sin embargo, si desea que su robot detector de ser tan rápido como sea posible, usted no debería tener que confiar en el usuario genera un mensaje de alerta. Naturalmente, los robots de spam podría acumular un montón de usuario generada por los indicadores de mensajes, por lo que su clasificador podría empezar a depender de estas banderas, y menos en el contenido de los mensajes. De esta manera, se debe considerar la eliminación de las banderas como una característica de modo que usted puede tag robots más rápido que el de multitud de fuentes esfuerzo por parte del usuario, es decir, antes de que una amplia audiencia ha sido expuesto a sus mensajes.

Otras veces, usted tendrá una muy estúpida que sea la causa de su detección. Hay una bonita anécdota aquí acerca de una historia sobre cómo el Ejército trató de hacer un tanque detector, que había cerca de una precisión perfecta pero, terminó la detección de días nublados en su lugar, porque todos los imágenes de entrenamiento, con los tanques fueron tomadas en un día nublado, y la formación de la imagen sin tanques fue tomada en un día claro. Un papel muy relevante en esto es: "¿por Qué Debería confiar en ti?": Explicar las Predicciones de Cualquier Clasificador - Ribeiro, et. al.

2voto

David Puntos 41

Una forma de detectar variables de engaño está construyendo un modelo de árbol y mira primero algunas fracturas. Aquí hay un ejemplo simulado.

cheating_variable=runif(1e3)
x=matrix(runif(1e5),nrow = 1e3)
y=rbinom(1e3,1,cheating_variable)

d=data.frame(x=cbind(x,cheating_variable),y=y)

library(rpart)
library(partykit)
tree_fit=rpart(y~.,d)
plot(as.party(tree_fit))

enter image description here

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X