오늘도 팀별 과제를 중심으로 하루가 지나가버렸습니다.
처음에는 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아래로 진행시켜 최적의 공정조건을 찾을 수 있을 것 같습니다.
이상 감사합니다.