카테고리 없음

QA/QC 스파르타클럽 42일차 - 심화 프로젝트

penguin 2026. 7. 13. 20:25

반도체 제조 공정 센서 데이터를 활용한 공정 최적화 프로젝트 회고

이번 프로젝트에서는 반도체 제조 공정에서 수집된 센서 데이터를 활용하여 불량을 예측하는 머신러닝 모델을 구축하고, 불량에 영향을 주는 핵심 공정 변수를 찾아 실제 관리기준까지 제안하는 프로젝트를 진행하였다.

기존의 단순한 예측 모델 제작에서 끝나는 것이 아니라 왜 불량이 발생하는지 설명할 수 있는 모델을 만들고, 실제 공정에서 활용 가능한 관리기준을 제시하는 것을 목표로 프로젝트를 수행하였다.


프로젝트 목표

이번 프로젝트에서 설정한 목표는 크게 네 가지였다.

  • 머신러닝 기반 불량 예측 모델 제작
  • 불량에 영향을 미치는 핵심 공정 변수 선정
  • SHAP 기반 관리기준 도출
  • SPC 관리도를 활용한 공정 개선 방안 제안

즉, 단순히 높은 정확도를 가진 모델을 만드는 것이 아니라 실제 현장에서 사용할 수 있는 데이터 기반 의사결정 도구를 만드는 것이 최종 목표였다.


프로젝트 진행 과정

프로젝트는 다음과 같은 순서로 진행하였다.

① 데이터 이해

  • 데이터 구조 파악
  • 변수 특성 분석
  • 결측치 및 이상치 확인

② 데이터 전처리

  • 중복 데이터 확인
  • 결측치 처리 방법 비교
  • 스케일링 및 KNN Imputer 적용
  • 이상치 제거 여부 검토

③ 통계 분석

  • 상관분석
  • T-test
  • 변수별 영향도 확인

④ 머신러닝 모델 구축

  • Logistic Regression
  • Decision Tree
  • Random Forest
  • XGBoost
  • LightGBM

⑤ 모델 성능 개선

  • Cross Validation
  • Hyperparameter Tuning
  • Threshold Optimization
  • FLAML
  • AutoGluon 비교

⑥ 모델 해석

  • Feature Importance
  • SHAP Value 분석

⑦ 관리기준 작성

  • SHAP 변화량 기반 기준 설정
  • 불량률 분석
  • SPC 관리도 작성

프로젝트에서 가장 많이 고민했던 부분

이번 프로젝트에서 가장 많은 시간을 사용했던 부분은 데이터 전처리였다.

처음에는 단순히 평균이나 중앙값으로 결측치를 대체하려고 했지만, KDE 그래프를 확인해 보니 원래 데이터 분포와 상당한 차이가 발생하였다.

그래서

  • 평균
  • 중앙값
  • KNN Imputer
  • MICE

를 모두 비교하였고,

원본 데이터의 분포를 가장 잘 유지하는 KNN Imputer를 최종적으로 선택하였다. 또한 KNN Imputer는 거리 기반 알고리즘이기 때문에 StandardScaler를 적용한 후 결측치를 대체하고, 다시 원래 스케일로 복원하는 과정도 함께 적용하였다.

이 과정을 통해 단순히 "결측치를 채웠다"가 아니라 왜 해당 방법을 선택했는지 근거를 제시할 수 있었다는 점이 의미 있었다.


머신러닝 모델 비교

이번 프로젝트에서는 다양한 머신러닝 모델을 비교하였다.

  • Logistic Regression
  • Decision Tree
  • Random Forest
  • XGBoost
  • LightGBM

먼저 Logistic Regression을 Base Model로 사용하여 기준 성능을 확인한 뒤, 다양한 트리 기반 모델과 비교하였다.

이후 5-Fold Stratified Cross Validation을 수행하여 모델의 일반화 성능을 비교하였으며, XGBoost가 가장 우수한 성능을 보여 최종 모델로 선정하였다.


성능 향상을 위한 다양한 시도

프로젝트를 진행하면서 단순히 모델 하나만 학습한 것이 아니라 성능을 높이기 위해 다양한 방법을 적용하였다.

  • RandomizedSearchCV를 이용한 하이퍼파라미터 튜닝
  • Optuna를 이용한 Threshold 최적화
  • FLAML 적용
  • AutoGluon 적용

특히 Threshold를 0.5로 고정하지 않고 최적 Threshold를 탐색하면서 Precision과 Recall의 균형을 맞추는 과정이 매우 인상 깊었다.

또한 최근 많이 활용되는 AutoML 도구도 직접 사용해 보면서 기존 머신러닝 모델과 비교해 볼 수 있었다.


가장 흥미로웠던 부분 : SHAP 분석

개인적으로 가장 재미있었던 부분은 SHAP 분석이었다.

기존에는 Feature Importance만 사용하면 어떤 변수가 중요한지는 알 수 있었지만, 어느 값부터 불량 위험이 증가하는지는 알기 어려웠다.

SHAP를 적용하면서

  • 변수 중요도
  • SHAP 변화량
  • 실제 불량률

을 함께 비교할 수 있었고,

이를 이용하여

  • 주의 구간
  • 경고 구간
  • 위험 구간

이라는 실제 관리기준을 설정할 수 있었다.

즉, 단순히 "중요한 변수"를 찾는 수준에서 끝나지 않고 실제 현장에서 활용 가능한 관리기준을 제안할 수 있었다는 점이 가장 큰 성과라고 생각한다.


프로젝트 결과

최종적으로 선정된 관리기준을 적용하여 공정을 관리한 결과,

기존 약 20.22%였던 불량률을 14.40% 수준까지 감소시킬 수 있었다.

물론 실제 생산현장 데이터가 아니기 때문에 절대적인 수치로 해석하기는 어렵지만,

데이터 기반 관리기준만으로도 충분한 개선 효과를 확인할 수 있다는 점에서 의미 있는 결과라고 생각한다.


프로젝트를 진행하며 새롭게 배운 점

이번 프로젝트를 통해 단순히 머신러닝 모델을 만드는 것보다 분석 과정 전체를 설계하는 능력이 훨씬 중요하다는 것을 느꼈다.

특히 다음과 같은 내용을 깊이 있게 학습할 수 있었다.

  • 데이터 전처리 방법에 따라 모델 성능이 크게 달라질 수 있다는 점
  • 교차검증을 통해 모델의 일반화 성능을 평가하는 방법
  • 하이퍼파라미터와 Threshold의 차이
  • SHAP를 이용한 모델 해석 방법
  • AutoML을 활용한 모델 자동 최적화
  • 머신러닝 결과를 실제 공정 관리기준으로 연결하는 방법

무엇보다도 "예측"에서 끝나는 것이 아니라 설명 가능한 AI(Explainable AI)를 활용하여 실제 공정 개선까지 연결하는 과정을 경험했다는 점이 가장 큰 수확이었다.


프로젝트를 마치며

이번 프로젝트는 지금까지 진행했던 데이터 분석 프로젝트 중 가장 많은 고민과 시행착오가 있었던 프로젝트였다.

결측치 처리 방법부터 모델 선정, 하이퍼파라미터 튜닝, Threshold 최적화, SHAP 해석, 관리기준 도출까지 하나하나 직접 검토하며 분석을 진행하면서 머신러닝을 단순히 사용하는 수준을 넘어 왜 이러한 결과가 나왔는지 설명할 수 있는 분석을 경험할 수 있었다.

또한 품질관리 관점에서 데이터를 바라보는 시각도 많이 넓어졌다. 이전에는 높은 예측 성능 자체에 집중했다면, 이번 프로젝트를 통해서는 불량의 원인을 설명하고, 관리 가능한 기준을 제시하며, 실제 개선 효과를 검증하는 과정이 더 중요하다는 것을 깨달았다.

앞으로도 다양한 제조 데이터를 분석하며 데이터 기반 품질 개선 역량을 더욱 발전시켜 나가고 싶다.