카테고리 없음

[내일배움캠프-본캠프] QA/QC 26/06/10

dudgus4943 2026. 6. 10. 20:39

오늘도 팀별 과제를 중심으로 하루가 지나가버렸습니다.

처음에는 9 to 9으로 하루에 12시간동안 할 수 있을까? 걱정했는데

지금보니 시간이 엄청 너무 빨리가서 부족할 정도에요 ㅜ...

 

잡담은 여기까지 하고, 오늘은 어제 진행한 부분에 대해서 이야기를 하다가 주어진 데이터에 equipment_log에 적혀있는 [-(숫자)] 데이터 값에 집중해보았어요.

 

알아보니 이 데이터셋이 장비의 오류코드을 확률이 높더라구요.

해당 공정의 장비를 진행하면서 무언가 불량이 생겨 컴퓨터가 그것을 기록해두는거에요.

 

그래서 제가 딱 "어? 그럼 여기 오류코드 중에서도 결함이 가장 많이 발생하는 것을 캐치해서 그 오류코드가 발생하지 않게 공정 조건을 조율하고 하면 되지 않을까?" 이 생각이 들어서 해당 내용으로 분석을 실시하였습니다.

 

# 장비에 상관없이 오직 로그 값(log_value)별로 결함수 평균 구하기
log_defect_mean = df.groupby('log_value')['defect_count'].mean().reset_index()

# 평균 결함수가 높은 순서대로 정렬
print(log_defect_mean.sort_values(by='defect_count', ascending=False).head(10))

#출력값
    log_value  defect_count
51         61      1.870968
20         30      1.831579
58         68      1.757895
69         79      1.738318
87         97      1.708738
7          17      1.670000
53         63      1.660194
71         81      1.648649
88         98      1.636364
36         46      1.623853

코드 결과 log_value 61, 30, 68, 79, 97에서 평균 결함이 많이 생기고 발생한다는 사실을 알게 되었습니다.

 

이를 바탕으로 상위 5개의 log_value에서 어떤 변수들로 인해 결함이 생겼는지 산포도를 형성시켜 본 결과,

import matplotlib.pyplot as plt
import seaborn as sns

plt.figure(figsize=(10, 6))
# x축 온도, y축 압력으로 두고, 결함수가 높을수록 점의 색상을 진하게 표현
sns.scatterplot(
    data=df[df['log_value'].isin([61, 30, 68, 79, 97])],
    x='temperature_C',
    y='pressure_mbar',
    hue='defect_count',
    palette='vlag',
    size='defect_count',
    sizes=(40, 400)
)
plt.title("위험 로그들의 온도 vs 압력 복합 인과관계 분석")
plt.show()

해당 그래프를 통해 온도는 대략 170도 이상 압력은 3.0이상에서부터 결함의 개수가 점점 증가하신다는 사실을 아실 수 있습니다.

 

그렇다면 저희는 공정을 170도 3mbar아래로 진행시켜 최적의 공정조건을 찾을 수 있을 것 같습니다.

 

이상 감사합니다.