2025년 5월 참여한 '2025 MixUP AI Datathon Track 2' 대회의 코드 파일 정리 및 기록 문서입니다.
- 대회명: 2025 MixUP AI Datathon Track 2
- 주최/주관: Prometheus X BITAmin X TOBIG's
- 후원/협찬: upstage, WIZCORE, kpc, 한국생산성본부, 모두의연구소, 유가네닭갈비, MONSTER ENERGY
- 참여 기간: 2025년 5월 12일 (월) 10:00 ~ 5월 18일 (일) 7:00
- 대회 링크: 공식 대회 페이지 (캐글에서 진행) | 공식 노션 페이지
- 문제 유형:
- 과제 1: 철강 공정 생산품의 OK/NG 예측 모델 개발
- 과제 2: 데이터 기반 생산공정 최적화 및 운용 전략 수립
공정 파라미터에 따른 생산품의 품질 여부(OK/NG)를 예측하는 모델 개발 및 생산공정의 최적화 또는 운용 전략을 제시하는 것이 목표입니다.
| 변수 그룹 | 변수명 | 설명 |
|---|---|---|
| 물리적 규격 | 두께, 소재폭, 제품폭 | 코일/강판의 실제 물리적 규격 (품질 및 생산공정에 직접적 영향) |
| 공정 여유 | 마진 | 소재폭-제품폭, 공정상 절단·가공 여유 |
| 그룹화 변수 | 두께그룹, 폭그룹, 마진그룹 | 품질관리, 공정제어, 표준화 목적의 구간화된 그룹 |
| 제품 특성 | 강종, 품명그룹, 품명 | 제품의 등급, 표면처리, 용도 등 품질 특성 |
| 공정 조건 | 장력, 스피드 | 라인 운전 조건 (생산성, 품질에 영향) |
| 표면 처리 | 도유 | 오일링 방식/여부, 표면 품질에 영향 |
| 생산성 지표 | 생산중량, 수율 | 생산성과 효율성 지표 |
| 타겟 변수 | OK, NG | 최종 품질 판정 (train 데이터에만 존재) |
- 파일명:
track2_test_participant.csv - 규모: 461행, 44개 컬럼
- 파일명:
track2_metadata.xlsx - 내용: 생산품 size별 Ampere 표준화에 대한 메타데이터
- F1 Score: 40%
- ROC-AUC Score: 60%
- Pandas Profiling Report 활용하여 데이터 전체적인 특성 파악
- 핵심 발견사항:
- 특정 변수들의 Feature Importance가 매우 높음을 확인
- 기본 데이터만으로도 높은 성능(0.95 이상) 달성 가능(전처리X, 파생변수X)
- 소수의 핵심 변수를 중심으로 한 피처 엔지니어링 전략 수립
- 방법: KNN 알고리즘 활용
- 근거: 동일 공정의 제품들은 유사한 특성 조건을 보일 것이라는 가정
- Unique 값: No., 제품번호 등
- 상수 값: 라인, 작업장, 제품구분 등
다양한 인코딩 방법의 성능을 비교 분석:
- Label Encoding
- Target Encoding
- One-hot Encoding
철강 공정단계에서 불량을 줄이기 위한 장력, 속도 제어를 통한 제어기술 존재 -> 장력/스피드가 철강 공정에 매우 중요한 변수임을 파악
참고 논문: "A Study on Development of Advanced Tension Control Method Using Speed Controller in Wire Rod Mill" (https://oasis.postech.ac.kr/handle/2014.oak/111947)
- AutoML 탐색: PyCaret을 활용한 초기 모델 성능 파악
- 데이터 전처리: 피처 엔지니어링 적용
- 기본 모델 선정: 초기 파라미터 튜닝
- 피처 선택: RFECV를 통한 최적 피처 선택
- 모델 최적화: 선택된 피처로 최종 튜닝
- 앙상블 구축: 스태킹, 보팅 등 다양한 앙상블 기법 적용
- 최종 예측: 최적 모델로 예측 생성
- 도구: Optuna 라이브러리 활용
- 방법: Stratified K-fold (k=5)
- 근거: 타겟 불균형 데이터에 적합한 전략
- 사용 변수: 2개 (
스피드1,초기장력차이(기준장력-장력1)) - 결측치 처리: KNN (k=5)
- 최종 모델: Decision Tree (depth=2)
- 성능: Perfect Score (1.0)
- 여러 모델 실험 결과 모두 완벽한 예측 성능(score = 1.0) 달성
- 가장 간단하면서도 해석이 용이한 Decision Tree 선택
- 실무 적용 시 직관적 이해와 설명 가능성 확보
공정 과정 중 2개 변수(초기장력차이, 스피드1)의 임계값을 기준으로 완벽한 공정불량 예측 가능
장력, 스피드의 초기값이 중기/말기 값에 비해 불량률에 가장 큰 영향을 미침
- 기준장력 대비 장력1 / 스피드1 이 품질 결정의 핵심 요소
- 공정 초기단계에서 철강 불량여부 선제적 파악 가능
- 초기 장력 및 스피드 설정 시스템을 통한 품질 안정화 필수
- 업종: 제조업 분야 데이터 분석, AI 기술 기반 스마트 팩토리 운영
- 적용 전략: 장력 및 속도 실시간 이상 감지 및 제어 시스템 구축
- 목적: 공정 초기단계에서 불량여부를 판단할 수 있는 실시간 제어 시스템
- 기술: Streamlit 활용
- 링크: Steel Process Dashboard
MixUP_._.mp4
- 문제가 공개되자 마자 스코어 1.0인 팀이 등장했기에 해당 문제는 뭔가 잘못됐다고 생각했기에 추후 대회중에 문제가 바뀌거나 데이터가 추가되겠거니 싶었다. 하지만 그대로 진행된 터라 스코어 1.0을 쉽게 달성할 수 있을거라 생각하였고 이에 최대한 간단한 모델로 최대한 좋은 성능 달성을 목표로 하였다(most simple + best performance!)
- 최종적으로 스코어 1.0 달성한 팀은 여럿 있었지만, 활용성 / 해석력 측면에서 당락이 갈린 대회였던 것 같다.
- 스코어 1.0 달성은 제일 빠르진 않았지만(3번째) 운이 좋게도 분석시 세웠던 목표(most simple + best performance!)를 위해 최대한 적은 변수(2개) 사용, 해석이 매우 용이하며 모델이 매우 직관적이고 간단한 깊이(depth = 2)의 DT(Decision Tree) 모델로 스코어 1.0을 달성했던 것과 최종적으로 streamlit을 이용해 실시간으로 데이터 입력시 철강공정 불량 여부를 판단할 수 있도록 대쉬보드를 구성한 것이 좋은 성과를 낼 수 있었던 것 같다.
- 도메인 지식 기반 피처 엔지니어링
- 단순함과 성능의 균형 추구
- 실무 적용 가능성 고려한 솔루션 설계
- 시각화 및 대시보드를 통한 결과 전달력 강화
- 언어: Python
- 시각화: Streamlit
- 협업: Notion, VSCode
- AutoML: PyCaret
- 하이퍼파라미터 튜닝: Optuna
- 데이터 처리: Pandas, NumPy
- 모델링: Scikit-learn
- 시각화: Matplotlib, Seaborn, Plotly
이 프로젝트는 철강 제조 공정의 품질 예측 및 최적화를 위한 AI 솔루션 개발 사례로, 단순하면서도 효과적인 접근 방식을 통해 실무 적용 가능한 결과를 도출했습니다.