Qué es uno mismo en Python: ejemplos del mundo real
Qué es uno mismo en Python: ejemplos del mundo real
La detección de valores atípicos es una tarea importante en el campo del aprendizaje automático. Se utiliza para identificar observaciones inusuales o puntos de datos que se desvían de la tendencia general del conjunto de datos. Un algoritmo efectivo para la detección de valores atípicos es el algoritmo Isolation Forest .
En el blog de hoy, cubriremos los conceptos básicos del algoritmo Isolation Forest y demostraremos cómo usarlo para detectar valores atípicos en un conjunto de datos usando Python . Puedes ver el video completo de este tutorial en la parte inferior de este blog .
Tabla de contenido
Algoritmo de bosque de aislamiento frente a método de diagrama de caja
A continuación se muestran dos imágenes para la detección de valores atípicos. Observe las diferencias significativas en la representación visual cuando se utiliza el en comparación con cuando se utiliza el modelo de aprendizaje automático de bosque aislado para la detección de valores atípicos.
En el modelo ML de Isolation Forest, el porcentaje de valores atípicos detectados por el algoritmo de detección de anomalías IS es del 32,56 %. Usando el mismo algoritmo, el 67,44 % restante de los datos cae en el rango normal, que es bastante sensible. Nuestro objetivo es afinar esta sensibilidad usando Python .
El método tradicional de detección de valores atípicos
La forma tradicional de encontrar un valor atípico es utilizando un método de diagrama de caja . En este método, usamos el IQR para encontrar lo que está fuera del rango esperado de los datos.
En este ejemplo, este único punto sobre el bigote es nuestro valor atípico.
Si traducimos este gráfico visual a un gráfico circular, obtendremos este valor atípico en particular que equivale al 2,33 % de los datos totales.
En este blog, aprenderemos cómo usar el método ML de Isolation Forest, ajustarlo para que coincida con el método tradicional y aumentar o disminuir su sensibilidad.
El conjunto de datos para el algoritmo del bosque de aislamiento
Abra nuestro conjunto de datos en LuckyTemplates. Luego haga clic en Transformar datos.
Aparecerá nuestro conjunto de datos para este tutorial. Contiene la fecha , el número de usuarios , el índice y el valor atípico del bosque de aislamiento con salida 1 para el rango normal y -1 para valores atípicos .
También tenemos una columna para valores atípicos tradicionales y una columna condicional titulada Detección de anomalías IS que refleja el valor atípico del bosque de aislamiento.
Nuestra segunda consulta muestra nuestro marco de datos en el que aprenderemos cómo poner todo junto.
Los códigos Python
En el panel Propiedades , podemos ver nuestros dos scripts de Python en ejecución. Creamos la salida de Isolation Forest con uno de estos scripts de Python y generamos el valor atípico tradicional con el otro.
Código de Python del algoritmo del bosque de aislamiento
Haga clic en Ejecutar secuencia de comandos de Python para ver el código.
En este código de Python, importamos pandas como pd y usamos algo llamado Isolation Forest.
Un bosque de aislamiento es un modelo basado en árboles que toma decisiones basadas en una estructura de árbol y luego decide si es un valor atípico o no. Lo llamamos modelo de conjunto porque utiliza dos métodos diferentes para encontrar un valor atípico en particular.
También reemplazamos la variable del conjunto de datos , que contiene nuestro conjunto de datos por defecto, como df .
Dado nuestro conjunto de datos, no necesitaremos las dos líneas de códigos resaltadas a continuación, por lo que podemos eliminar esas líneas.
Lo que estamos haciendo es instanciar el modelo.
Guarde el modelo como IsolationForest y deje que el modelo aprenda los datos con los usuarios. Luego, cree una nueva columna llamada Detección de anomalías que revisará todos los datos que aprende y predecirá cuál debería ser un valor atípico o no.
Para esta función, el valor predeterminado de contaminación se establece en 0,5 . Por lo tanto, es súper sensible en este momento y buscará muchos valores atípicos. Es por eso que en nuestro gráfico circular anterior, tenemos un rango muy alto de valores atípicos en 32.56%.
Para hacerlo menos sensible, podemos agregar la contaminación = .1 en la función IsolationForest .
Finalmente, restablezca el índice y haga clic en Aceptar.
El resultado mostrará una tabla resumen. Dirígete al panel Pasos aplicados y haz clic en df.
En el resultado, podemos encontrar los valores atípicos en la columna Detección de anomalías .
También queremos ver cómo se comporta junto al valor atípico tradicional.
Código tradicional de Python para valores atípicos
Ejecutaremos otro script de Python que, en este ejemplo, es Run Python script1.
Este código agrega una función de valor atípico usando el primer y tercer cuartiles. Cuando restamos q1 de q3 , obtenemos el rango intercuartílico (RIC) .
Las siguientes dos líneas establecen las condiciones para los valores atípicos. La primera línea dice que cualquier valor inferior a 1,5 * iqr se considera un valor atípico negativo o inferior. Así es también como encontramos valores atípicos en la forma tradicional.
También sabemos que tenemos un valor atípico como el punto más alto en nuestros datos. Para dar cuenta de eso, la segunda línea establece que los puntos de datos superiores a q3 + 1,5 * iqr también se consideran valores atípicos.
Devuelva ese conjunto de datos y use la función outliers(df, 'Users') . Luego haga clic en Aceptar.
Aparecerá una tabla resumen similar a la que tenemos anteriormente.
Si vamos al panel Pasos aplicados y hacemos clic en Changed Type1 , obtendremos las columnas Tradicionales de valores atípicos y Detección de anomalías una al lado de la otra, y esta última usa 1 y -1 para indicar valores atípicos y no.
Sin embargo, cuando usamos fechas con Python, pueden parecer desordenadas.
Lo que podemos hacer es crear una columna adicional usando el índice de Agregar columna .
Luego, agregue Index a la columna anterior con Merge , para que podamos conservar toda la información en esa columna/conjunto de datos original.
Una vez que tengamos todo junto, podemos ejecutar nuestro código y actualizar nuestras imágenes. Recuerde que cambiamos la contaminación del valor atípico de 0,5 a 0,1, por lo que deberíamos ver que esta parte del gráfico se reduce un poco.
Vuelva a las imágenes y haga clic en Aplicar cambios.
Observe cómo la Detección de anomalías pasó del 32,56 % al 11,63 % de nuestros datos.
Como vemos en nuestros resultados, esta es una buena manera de optimizar nuestra detección de valores atípicos.
Recuerde también que cuando las personas usan el método tradicional, pueden usar valores inferiores a 1.5, pero 1.5 x IQR es la forma tradicional, sin embargo.
Detección y presentación de resultados atípicos en LuckyTemplates
Creación de puntos de activación de valores atípicos dinámicos en LuckyTemplates
Función de detección de anomalías de LuckyTemplates: cómo funciona
Conclusión
Al usar el algoritmo Isolation Forest, podemos identificar y excluir fácilmente cualquier observación inusual de nuestro conjunto de datos, mejorando así la precisión de nuestro análisis. Este tutorial ha proporcionado una guía paso a paso sobre cómo usar el algoritmo Isolation Forest para la detección de valores atípicos usando Python, lo que debería ayudarlo a comenzar a implementarlo en sus propios proyectos.
Lo que hicimos fue una manera muy fácil de usar nuestro código Python para encontrar anomalías. Puede optimizar aún más ese algoritmo modificando la contaminación y una serie de otras variables que puede aprender a través de la página de códigos de Python .
Mis mejores deseos,
Qué es uno mismo en Python: ejemplos del mundo real
Aprenderá a guardar y cargar objetos desde un archivo .rds en R. Este blog también cubrirá cómo importar objetos desde R a LuckyTemplates.
En este tutorial del lenguaje de codificación DAX, aprenda a usar la función GENERAR y a cambiar dinámicamente el título de una medida.
Este tutorial cubrirá cómo usar la técnica de elementos visuales dinámicos de subprocesos múltiples para crear información a partir de visualizaciones de datos dinámicos en sus informes.
En este artículo, repasaré el contexto del filtro. El contexto del filtro es uno de los temas principales que cualquier usuario de LuckyTemplates debería conocer inicialmente.
Quiero mostrar cómo el servicio en línea de LuckyTemplates Apps puede ayudar a administrar diferentes informes e información generada a partir de varias fuentes.
Aprenda a calcular los cambios de su margen de beneficio utilizando técnicas como la bifurcación de medidas y la combinación de fórmulas DAX en LuckyTemplates.
Este tutorial analizará las ideas de materialización de cachés de datos y cómo afectan el rendimiento de DAX al proporcionar resultados.
Si todavía usa Excel hasta ahora, este es el mejor momento para comenzar a usar LuckyTemplates para sus necesidades de informes comerciales.
¿Qué es la puerta de enlace de LuckyTemplates? Todo lo que necesitas saber