들어가며
모두의 연구소 데이터사이언스 4기 과정의 마지막은 아이펠톤 프로젝트였다.
8주 동안 기업이 제공한 실제 데이터를 다루며 과업을 수행했다.
처음 접하는 도메인이라 데이터를 이해하고 탐색하는 데 많은 시간을 쏟았지만,
피처 엔지니어링을 시도하며 배워가는 과정은 즐거웠다.
또한 기업과의 멘토링을 통해 현업의 관점을 경험할 수 있었던 점이 큰 배움이 되었다.
이번 프로젝트의 목표는 단순한 모델 성능 향상을 넘어, 교정 시점을 객관적으로 판단할 기준을 마련하는 것이었다.
1. 프로젝트 개요

- 프로젝트명: Steel Inspection Data Science Project – Calibration Prediction
- 기간: 2025.07 ~ 09 (8주)
- 목표: 위험 신호를 조기에 포착하여 교정(Calibration) 시점을 예측함으로써, 생산 효율을 높이고 불필요한 비용을 줄이는 것
2. 문제 정의와 데이터 이해

누설자속 장비가 잡아내는 신호는 시간이 지남에 따라 크게 변동했다.
강종의 변화, 온도 차이, 자기장 세기 같은 다양한 요인 때문에 단순히 신호 크기만으로 결함 여부나 교정 필요 여부를 판단하기는 어려웠다.
그래서 Base Noise(기준 잡음)의 대표값을 정의할 필요가 있었다.
- 봉강별로 Base Noise를 정의하면, 시간이 지남에 따라 신호가 기준값을 얼마나 넘어섰는지 객관적으로 판단 가능하다.
- EDA 과정에서, 강종마다 Base Noise 분포가 다르지만 동일 강종 내 채널 센서들은 유사한 분포 패턴을 보인다는 점을 확인했다.
👉 이 과정을 통해 “교정 시점을 데이터로 정의할 수 있다”는 가능성을 확인했다.
3. 내가 맡은 역할
머신러닝 모델링
- Logistic Regression: baseline으로 사용, 빠르고 직관적으로 결과 확인
- Random Forest: 복잡한 데이터 구조도 일정 부분 학습 가능
- XGBoost, LightBGM : 불균형 데이터에서 가장 높은 성능 기대
- 팀원은 XGBoost, LightGBM을 맡아 앙상블 모델 실험을 진행했고, 나는 Logistic/Random Forest 실험을 집중적으로 담당했다.
불균형 데이터 처리
- Calibration 클래스가 희소해 불균형 문제가 컸다.
- 이를 해결하기 위해 class_weight 조정과 SMOTE 오버샘플링을 적용했다.
→ 데이터 불균형 실험 블로그 글 보러가기
성능 지표 분석
- Accuracy는 사용하지 않았다.
→ 다중 클래스에서 불균형이 심하면 다수 클래스만 잘 맞춰도 Accuracy가 높게 나오기 때문에 의미가 없다. - 대신 Macro Recall을 주요 지표로 사용했다.
→ 모든 클래스의 Recall을 평균해 평가하는 방식으로, 특히 Calibration/위험 클래스 탐지를 놓치지 않는 것이 중요했기 때문이다. - Macro F1을 보조 지표로 사용했다.
→ Precision과 Recall의 균형을 반영해 소수 클래스 성능을 보완할 수 있었다.
협업 방식

실험을 역할별로 나누고, 노션에 실험 결과를 실시간 공유했다.
덕분에 서로 다른 모델 실험을 병렬로 진행할 수 있었고, 빠른 피드백을 주고받으며 효율적으로 프로젝트를 진행했다.
보고서와 시각화
실험 결과를 표와 그래프로 정리해 발표 자료를 제작했다.
최종 보고서를 작성해 팀 내외부 공유가 가능하도록 했다.
4. 성과와 인사이트
- 교정 시점은 단순 분류 문제가 아니었다.
→ 모델 성능 수치 자체보다, 교정 기준을 데이터로 정의하고 설명하는 것이 핵심이라는 점을 알게 되었다. - 불균형 데이터의 현실적인 어려움
→ class_weight와 SMOTE를 적용했지만 Calibration 클래스 탐지는 여전히 쉽지 않았다. - 성능이 기대 이하였던 시도: CDP 분석
→ 누적 분포 특성을 활용해보려 했으나 성능이 낮아 최종 모델에는 반영하지 않았다.
→ 하지만 데이터의 분포적 특성과 불균형 문제를 새롭게 이해하는 계기가 되었고, 관련 과정은 별도 블로그 글에 정리했다.
→ CDP 분석 블로그 글 보러 가기
5. 회고 ✨
데이터 불균형으로 인해 모델 성능을 높이는 데 한계가 있었지만, 다양한 시도를 해본 경험 자체가 큰 의미가 있었다. Accuracy 대신 Macro Recall/F1을 주요 지표로 선택하면서, 지표 선택이 모델 해석과 적용성에 얼마나 중요한지 배울 수 있었다.
성능이 좋지 않아 최종 반영하지는 않았지만 CDP와 같은 실험도 탐구심을 보여줄 수 있는 시도였고, 그 과정에서 얻은 배움이 많았다. 협업 면에서는 업무를 병렬적으로 나누고 결과를 실시간으로 공유한 덕분에 프로젝트 생산성을 크게 높일 수 있었다.
문제 정의 → 데이터 이해 → 모델링 → 결과 정리까지 전 과정을 직접 경험하며 데이터사이언티스트로서 성장할 수 있었다. 다만, 결과를 더 다양하게 시각화하고 여러 모델을 적용해보지 못한 점은 아쉬움으로 남았다. 향후 기회가 된다면 이 부분을 보완해보고 싶다.
'데이터 사이언스 > 프로젝트' 카테고리의 다른 글
| [데이터 불균형 실험노트] SMOTE vs SMOTENC vs Class Weight, 최종 승자는 누구일까? (0) | 2025.09.03 |
|---|---|
| [데이터 불균형 실험노트] Class Weight: 가볍게 적용해 본 균형 잡기 승부 (1) | 2025.09.03 |
| [데이터 불균형 실험노트] SMOTENC: 범주형 변수까지 공략하기 (0) | 2025.09.03 |
| [데이터 불균형 실험노트] SMOTE: 합성 데이터로 불균형을 돌파하다 (0) | 2025.09.03 |
| [데이터 불균형 실험노트] 불균형 데이터란? Accuracy의 함정을 격파하기 (0) | 2025.09.03 |