Logotipo de Zephyrnet

Manejo de valores atípicos usando el método IQR

Fecha:

Encontrar el IQR

Entonces, de los pasos anteriores, tenemos la columna en la que aplicaremos el método que mejor se adapte a las parcelas que son normalmente no distribuido o aquellos cuya trama no tiene la estructura de curva de campana. Luego, después de mirar el diagrama de caja de la misma columna, descubrimos que hay valores atípicos que deben eliminarse, y para eso, aquí está el comienzo de la sección donde comenzaremos por encontrar el IQR, es decir, rango intercuartílico.

percentil25 = df['placement_exam_marks'].quantile(0.25) percentile75 = df['placement_exam_marks'].quantile(0.75)

Inferencia: entonces IQR = (cuartil/percentil 75 – cuartil/percentil 25). Por lo tanto, a partir de las dos líneas de código anteriores, primero estamos calculando el cuartil 75 y 25 usando el predefinido cuantil función.

imprimir("cuartil 75: ",percentil75) imprimir("cuartil 25: ",percentil25)

Salida:

Cuartil 75: 44.0 Cuartil 25: 17.0

Inferencia: Así que tenemos el el cuartil 75 como 44, es decir, uno con 44 puntos está justo detrás del 25% de los candidatos de manera similar, por el cuartil 25, tenemos 17 marcas es decir, el que tiene 17 puntos está por delante de sólo el 25% de los candidatos.

iqr = percentil75 - percentil25 print ("IQR: ",iqr)

Salida:

RIC: 27.0

Inferencia: Como se discutió anteriormente, para calcular el IQR, necesitamos el percentil 75 y el percentil 25, donde IQR es la diferencia entre el cuartil 75 y 25. ¿Por qué necesitamos IQR? La respuesta es simple: para calcular el límite superior e inferior, también debemos tener el IQR, ya que es parte de las fórmulas. El valor que obtuvimos es 27.

límite_superior = percentil75 + 1.5 * iqr límite_inferior = percentil25 - 1.5 * iqr print("Límite superior",límite_superior) print("Límite inferior",límite_inferior)

Salida:

Límite superior 84.5 Límite inferior -23.5

Inferencia: Para calcular el límite superior de los puntos de datos, tenemos fórmulas como percentil 75 + 1.5 * Rango intercuartílico, y de manera similar, para foro de límite inferior, la cerveza es como percentil 25 – 1.5 * IQR.

Mientras discutíamos el diagrama de caja, no vimos valores atípicos en la región inferior, que podemos ver aquí y el límite inferior corresponde a un valor negativo.

Encontrar valores atípicos

Así que, con mucho, hemos diseñado la plantilla para tratar con los valores atípicos y establecer el valor umbral para detectar los valores atípicos del conjunto de datos. Ahora usaremos condiciones de filtrado encima de los límites superior e inferior para que obtengamos las filas/tuplas que se consideran malos puntos de datos.

df[df['placement_exam_marks'] > límite_superior]

Salida:

df[df['placement_exam_marks'] > límite_superior].count()

Salida:

cgpa 15 colocación_examen_marcas 15 colocado 15 dtype: int64

Inferencia: En primer lugar, devolvimos las filas de los valores atípicos; entonces, con la ayuda de la función de conteo, aprendimos que el número total de filas era 15.

Guarnición

Esta es la primera forma en que podemos eliminar valores atípicos en el significado correcto, ya que no les damos otros valores determinados ni los tratamos de otra manera. Recortar elimina todos los datos incorrectos del conjunto de datos solo para garantizar la cantidad de datos no es mucha; de lo contrario, para el análisis, no tendremos muchos datos para el desarrollo del modelo ML.

new_df = df[df['placement_exam_marks'] <límite_superior] new_df.shape

Salida:

(985, 3)

Comparando

plt.figure(figsize=(16,8)) plt.subplot(2,2,1) sns.histplot(df['placement_exam_marks'], kde=True) plt.subplot(2,2,2) sns.boxplot (data = df['placement_exam_marks']) plt.subplot(2,2,3) sns.histplot(new_df['placement_exam_marks'], kde=True) plt.subplot(2,2,4) sns.boxplot(data = new_df['placement_exam_marks']) plt.show()

Salida:

Método IQR

Inferencia: Es hora de una comparación visual donde podemos ver en las parcelas 3 y 4 que en la parcela de distribución, podemos ver un ligero aumento en el segmento 60-80 de los datos en comparación con la trama anterior guarnición.

El gráfico principal, que nos permite saber si el valor atípico se elimina o no, es un diagrama de caja. En el gráfico, cuando comparamos, es visible a simple vista que casi el 99% de los se eliminan los valores atípicos.

Tapado

El tapado es una segunda forma de imputar los valores atípicos con algunos otros valores. Puede haber media, mediana o moda o cualquier valor constante también (lo que haremos aquí) conduce a la condición en la que no habrá valores atípicos en el conjunto de datos.

new_df_cap = df.copy() new_df_cap['placement_exam_marks'] = np.where( new_df_cap['placement_exam_marks'] > límite_superior, límite_superior, np.where( new_df_cap['placement_exam_marks'] < límite_inferior, límite_inferior, new_df_cap['placement_exam_marks'] ) )

Inferencia: Aquí lo primero que estamos haciendo es tener un copia del conjunto de datos original para que podamos usarlo para otro análisis también. Entonces estamos usando el notario público. dónde() nos ayudará a imputar los valores límite superior e inferior a ambas regiones de valores atípicos, como se puede observar en el código.

nuevo_df_cap.forma

Salida:

(1000, 3)

Inferencia: No se pierde ningún dato ya que no hemos eliminado el valor atípico por completo. En su lugar, imputamos los valores válidos a permanecer en el rango del límite superior e inferior que fijamos mediante la técnica IQR.

# Comparando plt.figure(figsize=(16,8)) plt.subplot(2,2,1) sns.histplot(df['placement_exam_marks'], kde=True) plt.subplot(2,2,2) sns .boxplot(data = df['placement_exam_marks']) plt.subplot(2,2,3) sns.histplot(new_df_cap['placement_exam_marks'], kde=True) plt.subplot(2,2,4) sns.boxplot (datos = new_df_cap['placement_exam_marks']) plt.show()

Salida:

Método IQR

Los medios que se muestran en este artículo no son propiedad de Analytics Vidhya y se utilizan a discreción del autor.

punto_img

Información más reciente

punto_img