2026/07 12

Chapter.9 최종 실전 자동화 프로젝트 (17)

TIL(Today I Learned)1️⃣최종 프로젝트(15)피처 선택 파이프라인과 Nested CV오늘은 수천 개의 센서 변수 중 필요한 피처만 선택하고, 하이퍼파라미터 튜닝까지 진행한 뒤 Nested CV로 모델을 평가하는 과정을 배웠다.기존에는 피처 선택과 모델 평가를 각각 따로 생각했는데, 피처를 고르는 과정도 데이터를 보고 결정하는 하나의 학습 과정이라는 점이 중요했다.1. Nested CV를 사용하는 이유전체 데이터를 이용해 피처를 선택한 뒤 같은 데이터로 모델 성능을 평가하면 데이터 누수가 발생할 수 있다.피처를 선택하는 과정에서 이미 전체 데이터의 정보를 확인했기 때문에, 모델 입장에서는 시험 문제를 일부 미리 본 것과 비슷하다.이를 방지하기 위해 교차검증을 두 단계로 나누는 Nested ..

최종 프로젝트 2026.07.27

Chapter.9 최종 실전 자동화 프로젝트 (16)

TIL(Today I Learned)1️⃣최종 프로젝트(14)멘토링 피드백 정리1. 피처 중요도 1위가 정체불명 (가장 큰 문제)모델을 가장 크게 좌우하는 변수가 "기타 아날로그 신호"인데, 이게 뭔지 모름정체를 모르면 원인 분석·해석·보고서가 전부 불가능 → "같은 질문 받으면 논리가 바로 무너진다"2. 처방: 과감하게 제거도메인 담당자에게 물어볼 수 없으면, 식별 가능한 컬럼만으로 다시 모델링정체 모를 변수를 붙들면 오히려 설득력이 떨어짐3. 회귀-분류 성능 불일치회귀는 무너졌는데 분류(F1 macro)는 잘 나오는 게 말이 안 됨 → 재검증 필요4. 우선순위 재조정비정상 정밀 검사·대시보드는 나중에. 지금은 데이터 정리 후 재실행이 먼저"새로운 마음으로 확실히 식별되는 데이터 기준으로만 다시 잡아라..

최종 프로젝트 2026.07.23

Chapter.9 최종 실전 자동화 프로젝트 (15)

TIL(Today I Learned)1️⃣최종 프로젝트(13)통계 검정 (유의수준 α = 0.05)검정목적결론Shapiro–Wilk (정규성)모수 vs 비모수 검정 선택 근거정규성 기각 → 비모수 검정 채택Mann–Whitney U제품군 A vs TO 품질 차이수준(중앙값) 차이는 유의하지 않음Kruskal–Wallis생산라인 간 품질 차이라인 효과 유의 (공정 관리 인자)Spearman + FDR 보정센서–타깃 상관 유의성다중검정 거짓양성을 q-value로 통제Kruskal–Wallis센서의 등급 판별력막두께·습도·온도·압력 계열이 핵심제품군 A와 TO는 중앙값 차이는 없지만, 분산(A가 약 2배로 넓음)과 센서 구성이 크게 달라 분리 모델링이 타당상관 구조 · 덴드로그램거리 = 1 − |상관| 로 센..

최종 프로젝트 2026.07.22

Chapter.9 최종 실전 자동화 프로젝트 (14)

TIL(Today I Learned)1️⃣최종 프로젝트(12)피드백 개선 내역Nested fold 내부에서 모델링 성적 비교불균형 데이터 가중치 추가통계검정 추가Nested 내부 베이스라인 모델링 성적 비교 가중치 추가 후 fold 내부의 모델링 성적 비교Nested를 통해 피처선택한 뒤 적용한 모델링에 비해 성적이 다소 하락하였지만,데이터 누수가 없는 정직한 성능으로 적용되었다. 가중치 적용후 최적 피처 개수 및 성능가중치를 설정한 뒤 모델링 성능과 선택되는 피처의 최적 개수가 달라졌다.선택된 피처 간의 중요도와 상관관계를 분석할 필요성을 느꼈다. 통계검정 추가 제품군 A와 T/O 분리 정당화 및 T/O 결합 정당화회귀 모델의 잔차 분석 A/TO 제품군 분리의 정당성Mann-Whitney U: p =..

최종 프로젝트 2026.07.21

Chapter.9 최종 실전 자동화 프로젝트 (13)

TIL(Today I Learned)1️⃣최종 프로젝트(11)중간 발표 및 멘토링 피드백1. EDA · 전처리잘한 점가설 3개(제품군별 센서 구성 · 라인별 활성 센서 · 제품군별 핵심 인자)를 먼저 세우고 교차표 · 유사도 · t-SNE로 검증한 뒤 전처리를 결정한 구조가 핵심을 잘 꿰뚫음.결측을 오류가 아닌 구조로 읽어 전역 대치를 배제, A군 · T-O군 공통 센서 0개를 근거로 독립 모델을 택한 판단이 특히 좋음.보완 & 대응① “60% 이하 남은 결측은 뭘로 채웠나?” → 이미 답 있음, 명시만 하면 됨.답: 안 채웠음. LightGBM · XGBoost는 결측을 native로 학습, RandomForest만 중앙값 대치(베이스라인 4종 슬라이드에 이미 기재).할 일: 슬라이드/각주로 명시 — ..

최종 프로젝트 2026.07.20

Chapter.9 최종 실전 자동화 프로젝트 (12)

TIL(Today I Learned)1️⃣최종 프로젝트(10)908 샘플 × 2,881 컬럼짜리 초고차원 제조 데이터를 누수 없이 2,876 → 549/334개 피처로 줄이고, 최종적으로 18~75개 피처만으로 성능의 99%를 확보한 과정을 정리한다.1. 왜 전처리가 필요했나 데이터는 908 샘플 × 2,881 컬럼(센서 피처 2,876개 + 제품 코드 T·A·O). 타깃(Y_Class)은 정상 640 vs 불량 124/144로 편중된 3-클래스다.전처리가 필수였던 이유는 다섯 가지다.고차원 — 피처(2,876) ≫ 샘플(908)이라 과적합 위험이 구조적으로 크다.위장 결측 — 999, -9999 같은 placeholder가 실제 결측을 숫자로 은폐하고 있다. 이를 NaN으로 통일하는 작업을 최우선으로 ..

최종 프로젝트 2026.07.13

Chapter.9 최종 실전 자동화 프로젝트 (11)

TIL(Today I Learned)1️⃣CSTS 자격증 공부CSTS 일반등급 9~10장 학습오늘은 CSTS 일반등급에서 가장 중요한 파트인 9장(구조 기반 테스트)과 10장(명세 기반 테스트)를 집중적으로 학습했다. 단순히 교재를 읽는 것이 아니라 각 테스트 기법이 왜 필요한지, 언제 사용하는지, 그리고 시험에서 어떤 형태로 출제되는지를 이해하는 데 초점을 맞췄다.9장 구조 기반 테스트구조 기반 테스트는 프로그램의 내부 코드 구조를 기준으로 테스트를 설계하는 화이트박스 테스트 기법이다. 특히 다양한 커버리지 개념을 명확하게 구분하는 것이 중요했다.학습한 주요 내용은 다음과 같다.문장(Statement) 커버리지결정(Decision) 커버리지조건(Condition) 커버리지조건/결정 커버리지MC/DC다중..

최종 프로젝트 2026.07.10

Chapter.9 최종 실전 자동화 프로젝트 (10)

TIL(Today I Learned)1️⃣실전 자동화 프로젝트 (9)오늘 한 것제조 품질 데이터(A_31 / TO_31 두 제품군)의 피처 선택 파이프라인을 새로 구현했다.핵심은 테스트를 봉인한 채, 훈련 데이터 안에서만 피처를 고르고, 봉인했던 테스트로 딱 한 번 평가하는구조를 7단계로 정리한 것이다.테스트 봉인 — 평가용 데이터를 선택 과정에서 완전히 격리 (Nested CV로 5번 회전)타깃 섞기 — 피처를 무작위로 섞은 가짜(shadow) 피처를 만들어 노이즈 기준선으로 사용반복 확인 — 50회 반복해 shadow를 꾸준히 이기는지 FDR 보정 이항검정으로 판정쌍둥이 정리 — 상관 높은 피처는 덴드로그램으로 묶어 군집당 대표 1개만성능 곡선 — 피처를 하나씩 늘리며 성능을 재고, 더 넣어도 안 오..

최종 프로젝트 2026.07.09

Chapter.9 최종 실전 자동화 프로젝트 (9)

TIL(Today I Learned)1️⃣실전 자동화 프로젝트 (7)문제 설정과제: 품질을 3등급(Y_Class = 0/1/2)으로 분류, 제품군 2개(A_31 316×551, TO_31 592×334)를 독립 처리클래스 불균형: A_31은 24/48/29%로 비교적 균형, TO_31은 8/83/9%로 극심(소수 클래스 각 48·54건)결측 처리: 트리 모델의 native 결측 처리를 살리려 NaN을 일부러 그대로 둔다피처 선택 파이프라인상관 덴드로그램 클러스터링 — 강상관 컬럼을 묶어 클러스터당 분산 최대 1개만 남김. 상관은 pairwise-complete로 계산하되 모델 입력 데이터의 NaN은 건드리지 않는다.native feature_importances_ 사전 필터 — 학습 시 나오는 중요도로 ..

최종 프로젝트 2026.07.08

Chapter.9 최종 실전 자동화 프로젝트 (8)

TIL(Today I Learned)1️⃣실전 자동화 프로젝트 (7)리키지 발견부터 Boruta 도입까지문제 발견피처 선택에 쓴 RepeatedStratifiedKFold(seed=42)의 첫 5-fold가, 성능 평가에 쓴 StratifiedKFold(seed=42)와 100% 동일했다.→ 피처를 고를 때 본 데이터를 성능 평가에도 그대로 재사용 (데이터 누수)정직하게 재측정 (Nested CV)outer-test를 피처 선택에서 완전히 배제하고 재평가:제품기존(리키지)정직(Nested CV)차이A_310.79900.6536-14.5%pTO_310.69720.6305-6.7%p(계산 비용 문제로 3모델 Union 대신 LGBM 단일모델로 검증)근본 원인리키지 외에도 피처 채택 기준(positive_ra..

최종 프로젝트 2026.07.07