Caso de cliente que mejoró radicalmente la tasa de procesos defectuosos (con la biblioteca SHAP)

Caso de cliente de Hashscraper que utiliza un modelo de IA para reducir la tasa de defectos. Se describe detalladamente desde la recopilación de datos hasta el preprocesamiento.

12
Caso de cliente que mejoró radicalmente la tasa de procesos defectuosos (con la biblioteca SHAP)

0. Resumen

Uno de los casos de clientes de Hashscraper utilizó un modelo de IA para reducir la tasa de defectos en la producción. Se escribió este artículo para explicar de manera más profunda y comprensible las predicciones del modelo de aprendizaje automático.

1. Definición del problema

1.1. Establecimiento de objetivos

En resumen, basado en los 128 variables proporcionadas, se observó una diferencia en la tasa de defectos en cada máquina en el proceso de fabricación. El objetivo era predecir los productos defectuosos a través de un modelo de aprendizaje automático, analizar qué variables causaban los defectos y ajustar esas variables para reducir la tasa de defectos.

1.2. Formulación de hipótesis

Se planteó la hipótesis de que al extraer y ajustar las variables clave en el proceso mediante un modelo de aprendizaje automático, se reduciría la tasa de defectos.

2. Recopilación de datos

2.1. Determinación de la fuente de datos

Los datos fueron proporcionados directamente por el cliente desde la fábrica, específicamente los datos de cada máquina. Debido a que estos son datos internos de la empresa, se muestra una captura de pantalla de las carpetas en lugar de hacerlos públicos.

2.2. Recopilación de datos

Se solicitó un mínimo de 10,000 registros de datos, y se recibieron un total de aproximadamente 175,000 datos, incluyendo 3,931 registros de la máquina 1, 16,473 de la máquina 2, 2,072 de la máquina 3, 16,129 de la máquina 4, 57,970 de la máquina 5 y 78,781 de la máquina 6.

3. Preprocesamiento de datos

3.3. Limpieza de datos

La limpieza de datos es crucial para el entrenamiento del modelo. Se realizó una limpieza exhaustiva para garantizar un aprendizaje efectivo del modelo.

3.4. Procedimiento

3.4.1.

Se leyeron los archivos CSV con diferentes codificaciones ('cp949' y 'utf-8').

for file_path in file_paths:
        try:
            df = pd.read_csv(file_path, encoding='cp949', header=None)
        except UnicodeDecodeError:
            df = pd.read_csv(file_path, encoding='utf-8', header=None)

3.4.2.

Se combinaron la fecha y la hora para etiquetar los datos y se vincularon con los datos de la variable y.

for i in range(len(result_df_new) - 1):
    start_time, end_time = result_df_new['Datetime'].iloc[i], result_df_new['Datetime'].iloc[i + 1]
    selected_rows = df_yaxis[(df_yaxis['Datetime'] &gt;= start_time) & (df_yaxis['Datetime'] < end_time)]
    results.append(1 if all(selected_rows['결과'].str.contains('OK')) else 0)
results.append(0)

3.4.3.

Se combinaron los datos preprocesados de cada máquina.

data = pd.concat([df1,df2,df3,df4,df6])
data.reset_index(drop=True,inplace=True)

3.4.4

Se eliminaron los datos duplicados para evitar sesgos en el conjunto de datos y posibles problemas de sobreajuste.

Se realizaron más procesos de preprocesamiento y se realizó un análisis exploratorio de los datos.

4. Tipo de muestreo

4.1. Desbalance de datos

Debido al desbalance en los datos, se aplicó un enfoque de submuestreo para abordar el problema de sobreajuste. Se probaron diferentes técnicas de submuestreo y se decidió que la técnica ENN era la más adecuada.

##### NearMiss 인스턴스 생성
nm = NearMiss()

##### 언더샘플링 수행
X_resampled, y_resampled = nm.fit_resample(data.drop('결과', axis=1), data['결과'])

##### 언더샘플링 결과를 DataFrame으로 변환
data_sample = pd.concat([X_resampled, y_resampled], axis=1)

5. Modelado

5.1. Selección de modelo

Se seleccionó el modelo CatBoost basado en la evaluación de múltiples modelos y la referencia al mejor modelo identificado por la biblioteca PyCaret.

5.2. Entrenamiento del modelo

Se entrenó el modelo con los datos de entrenamiento y se obtuvieron los mejores resultados de AUC y F1-score con CatBoost.

6. Conclusión: Extracción de variables y función adicional para aumentar la intuición

Se implementó un sistema en tiempo real que recopila los datos brutos de las máquinas en la fábrica, realiza predicciones a través del modelo y extrae las variables asociadas con los productos defectuosos utilizando la biblioteca SHAP. Además, se creó un archivo Excel para que los trabajadores de la fábrica puedan ver fácilmente los resultados de las predicciones.

SHAP es una herramienta utilizada para explicar cómo cada característica de un modelo de aprendizaje automático afecta a las predicciones.

Hashscraper está llevando a cabo proyectos basados en modelos de IA como se describió anteriormente.

Comments

Add Comment

Your email won't be published and will only be used for reply notifications.

Sigue leyendo

Get notified of new posts

We'll email you when 해시스크래퍼 기술 블로그 publishes new content.

Your email will only be used for new post notifications.