251222_BootCamp Day 46_심화 프로젝트 (2)
2025. 12. 22. 20:36ㆍTIL
비즈니스 문제 정의
- 주제
- 다이캐스팅 공정 데이터 기반 품질 예측 및 점검 모델 개발
- 문제 정의
- 다이캐스팅 공정에서 불량 제품이 지속적으로 발생함.
- 발생하는 불량의 원인을 추적하기 어려워, 공정 개선 및 문제 해결이 어려움.
- 육안 검사에만 의존하기 때문에, 판정 기준이 주관적이며 검사 속도가 느려 생산성이 저하됨.
- 분석 목표
- 불량 판별 : 확보 데이터를 기반으로 제품의 불량 여부를 사전 판별하는 모델 개발 (분류)
- 위험도 점수 : 특정 시점에서 공정 컨디션이 어떠한지 나타내는 점수 산출 (분류 + 회귀)
- 모델 평가 지표 : Recall, Precision, R-Square, p-Value, F1-Score, AOC(AUC)
- 비즈니스 목표
- 사전 불량 판별을 통한 공정 효율 증대
- 위험도 점수를 통한 공정 사전 점검 및 불량률 감소
- KPI : 불량률 감소, 불량 예측 시간 단축, 재작업 감소, 품질 안정성 향상
팀 전체 일정
12/19 (금) 데이터 전처리, 파생 변수 공유
| 12/22 (월) | EDA 1차 완료 후 공유 + 통계 분석 계획 수립 |
| 12/23 (화) | EDA 종합 정리 + 통계 분석 + 머신러닝 방향성 회의/분배 |
| 12/24 ~ 25 (수~목) | 머신러닝 완료 |
| 12/26 (금) | 전체 결론 도출 및 발표 준비 시작 |
| 12/28 (일) | 머신러닝 완료 |
| 12/29 (월) | 발표 준비 완료 및 무한 점검 |
| 12/31 (수) | 팀 결과 발표 |
다이캐스팅 공정의 이해
다이캐스팅 (die casting) : 용융금속을 금형에 고압으로 주입해 정밀한 제품을 생산하는 공정
데이터 변수 분석

변수 단위 설명
| Velocity_1 | m/s | 저속 : 용융금속이 밖으로 튀는 것을 방지 |
| Velocity_2 | m/s | 저속 : 공기가 용융금속 flow에 들어가는 것을 방지 |
| Velocity_3 | m/s | 저속 : 공기가 용융금속 flow에 들어가는 것을 방지 |
| Velocity 1~3의 속도 증가 : 층류 (lanimar flow)를 유지하고 난류 (turbulence) 형성을 최소화해 공기가 용융금속 내부로 들어가는 것을 방지한다. | ||
| High_Velocity | m/s | 고속 : 저속이동을 통해 융융금속과 sleeve 내의 공기를 제거했다면, 고속이동을 통해 용융금속이 굳기 전에 틀 (die) 내부를 atomize 방식으로 채운다. |
| Atomize : 용융금속을 고압 비활성기체(아르곤, 질소 등) 가스 흐름에 주입해 금속의 산화를 방지하고, 작은 물방울 형태로 분사하는 것. 이를 통해 일관된 입자 크기와 형태를 확보한다. | ||
| Cylinder_Pressure | bar | 용융금속이 die 내부로 이동한 후 실린더가 die 내부에 있는 용융금속에 가하는 압력 |
| Rapid_Rise_Time | s | 용융금속이 die 내부로 이동한 후 실린더가 die 내부에 있는 용융금속에 가하는 압력이 증가하는 시간 |
| Biscuit_Thickness | cm | 비스킷 (shot 후 sleeve에 남아 있는 과잉 금속)의 두께. |
| Clamping_Force | kN(?) | Die의 절반을 닫힌 상태로 유지하기 위해 가해지는 힘. (실린더가 있는 쪽과 반대 방향) |
| Cycle_Time | s | 각 shot의 전체 소요 시간. (Cold chamber 방식이 hot chamber 방식보다 소요 시간이 길다.) |
| 일반적으로 금속의 pouring 시간, 기계 작동 시간, 굳히는 시간 (solidification)까지 포함한다. | ||
| Pressure_Rise_Time | s | 실제 die 내부의 압력이 증가하는 시간. (Die 내부의 용융금속이 완전히 압축되는 데 걸리는 시간) |
| Casting_Pressure | bar | 실제 die 내부의 압력. (Cylinder_Pressure로 인해 결정되는 변수) |
| Spray_Time | s | 하나의 shot이 끝나고, 주조물이 die에서 떨어지고 난 후 die 내부의 열을 식히고 윤활(lubrication)을 위해 기름이나 농축액을 뿌리는 과정 |
| Spray_1_Time | s | Die의 부분 1에서 측정한 스프레이를 뿌리는 시간 |
| Spray_2_Time | s | Die의 부분 2에서 측정한 스프레이를 뿌리는 시간 |
변수 단위 설명
| Melting_Furnace_Temp | ℃ | 알루미늄 용융금속이 녹아 있는 용광로(furnace)의 온도 |
| Air_Pressure | bar | 에어압력(?) 측정값 |
| Coolant_Temp | ℃ | 냉각수 온도 |
| Coolant_Pressure | bar | 냉각수 압력 |
| Factory_Temp | ℃ | 공장 내부 온도 |
| Factory_Humidity | % | 공장 내부 습도 |
변수 설명
| Short_Shot | 미성형 (용융금속이 덜 들어간 경우) |
| Bubble | 기공 (기포가 들어가 구멍이 발생한 경우) |
| Exfoliation | 박리 (표면이 벗겨지는 현상) |
| Blow_Hole | 기공 (기포가 들어가 구멍이 발생한 경우) |
| Stain | 얼룩 (표면에 얼룩이 발생하는 경우) |
| Dent | 파인 자국 (제품의 ejection, 이동 과정에서 충돌이 발생해 파이는 경우) |
| Deformation | 평탄 (내부 구조 변형) |
| Contamination | 오염 (내부에 다른 물질이 섞인 경우) |
| Impurity | 불순도 (용융금속의 순도가 낮을 경우) |
| Crack | 크랙 (균열이 발생하는 경우) |
| Scratch | 스크래치 (제품의 ejection, 이동 과정에서 긁히는 경우) |
| Buring_Mark | 그을음 (높은 온도로 인해 탄 자국이 있는 경우) |
| Inclusions | 개재물 (불순물이 섞인 경우) |
불량 카테고리 해당 항목 설명
| Filling & Surface Defects | ||
| (충진 및 표면 불량) | Short Shot | 용탕 온도 부족, 속도 문제로 형상이 불완전한 상태 |
| Bubble | 표면 아래 갇힌 가스가 팽창해 부풀어 오른 것 | |
| Exfoliation | 용탕의 두 흐름이 완전히 융합되지 않아 층이 생기는 현상 | |
| Burning Mark | 용탕이 금형 표면에 눌어붙거나 타서 생긴 자국 | |
| Internal & Metallurgical Defects | ||
| (내부 및 금속학적 불량) | Blow Hole | 기계/화학적 요인으로 내부에 형성된 큰 가스 구멍 |
| Inclusions | 외부 물질의 혼입 | |
| Impurity | 합금 성분이 표준을 벗어남 | |
| Contamination | 설비나 환경에서 유입된 이물질 | |
| Geometric & Mechanical Defects | ||
| (기하학적 및 기계적 결함) | Deformation | 냉각 불균형, 이젝팅 시 발생하는 휨 |
| Crack | 열응력, 기계적 충격에 의한 갈라짐 | |
| Dent | 이송, 이젝팅, 핸들링 과정에서 발생하는 물리적 손상 | |
| Scratch | ||
| Stain | 냉각수, 이형제 잔류물, 산화로 인한 변색 |
핵심 질문
- 공정, 센서 데이터로 불량을 사전에 예측할 수 있는가
- 불량에 가장 큰 영향을 주는 공정 조건은 무엇인가
세부 질문
- 공정 변수의 안정적 작동 범위는 어디까지인가
- 불량 유형별 주요 원인 변수는 어떻게 달라지는가
- Shot 수 증가에 따라 불량률이 증가하는 패턴이 존재하는가
모델링 전략
- 불량 분류 : 로지스틱 회귀, Random Forest, XGBoost
- 위험도 점수 : 로지스틱 회귀
- SHAP를 이용해 불량에 영향을 미치는 주요 변수 파
변수 핸들링
- 공정 변수는 물리적 의미 기반 해석을 원칙으로 접근
- 모델 성능보다 논리적 설명력, 비즈니스 연결성을 우선한다.
- 변수 스케일링, 변수 카테고리화, 변수 선택 등은 추후 논의 후 결정
- 무엇을 맞췄는가보다는 왜 이런 결과가 나왔는지를 중심으로 설명
데이터 전처리 관련 논의
- 데이터 양을 줄이는 것보다는 데이터의 구조를 재정의할 필요가 있다.
- 독립변수의 경우 수식상 상관관계가 있거나 분석 기여도가 낮을 수 있음
- Process_id는 고유값이지만 의미가 불분명
- Min, Max 관련 컬럼은 데이터 분석에 불필요
- 불량 판별 기준도 카테고리를 축소할 필요가 있음
- 시간과 관련된 변수를 넣을 것인지, 넣는다면 어떻게 구분할 것인지?
분석 방향
- 전체 데이터 기준 분류 1회 + 제품 타입별 분류 2회, 총 3개의 분류 수행
- 전체 데이터 분석은 다중공선성이 매우 심하기 때문에, 이에 대한 주의가 필요함
- 데이터에서 불량 수가 적기 때문에, oversampling을 고려해야 할지?
- 불량 변수에서 복합 데이터 (불량 유형이 2개 이상 1인 경우)는 어떻게 처리할 것인지?
- 로지스틱 회귀를 통해 나오는 위험도 점수는 확률이 아닌 공정에 위험이 생길 가능성을 나타내는 지표로 해석 → 사업상 관계자들에게 slack/메일 등 알림 프로그램으로 만드는 방향
- 이 데이터는 실측치이기도 하고, 이상치가 불량과 관련이 있을 수 있기 때문에 이상치 제거는 수행하지 않는 것이 좋을 것 같음
- 표준화 등 스케일링은 효과가 제한적일 수 있지만 변수마다 범위가 다르기 때문에 ML에 적용할 때는 반드시 표준화, 정규화 등 스케일링을 진행해야 한다. (특히 우리는 분류 모델을 다루므로)
'TIL' 카테고리의 다른 글
| 251224_BootCamp Day 48_심화 프로젝트 (4) (1) | 2025.12.24 |
|---|---|
| 251223_BootCamp Day 47_심화 프로젝트 (3) (0) | 2025.12.23 |
| 251218_BootCamp Day 44_심화 프로젝트 (1) (0) | 2025.12.18 |
| 251217_BootCamp Day 43_앞으로의 방향성 (1) | 2025.12.17 |
| 251216_BootCamp Day 42_클러스터링(Clustering) (3) | 2025.12.16 |