![[머신러닝 실전 6편] 전체 파이프라인 완성 — CSV 한 장에서 예측 모델까지](/_next/image?url=%2Fblog%2Fml-prac-6-pipeline%2Fimg05.webp&w=1920&q=75&dpl=dpl_BRnctFgdYHKz892NuAvKy6UqDMmN)
[머신러닝 실전 6편] 전체 파이프라인 완성 — CSV 한 장에서 예측 모델까지
1편 EDA부터 5편 튜닝까지, 코드가 흩어져 있었습니다. 전처리 따로, 모델 따로, 튜닝 따로 — 실수하기 딱 좋은 구조였습니다. sklearn Pipeline과 ColumnTransformer로 전부 하나로 묶었습니다. 전처리부터 튜닝까지 fit 한 번이면 끝나는, 재현 가능한 워크플로우를 완성합니다.
레오파드게코 브리딩에 데이터 분석과 AI 기술을 접목합니다. Python, NumPy를 활용한 체중 관리, 성장 추이 분석, 환경 데이터 시각화 등 실무에서 직접 사용하는 기술을 일반인도 이해하기 쉽게 설명합니다.
AI와 머신러닝을 활용한 레오파드게코 브리딩 기술과 데이터 분석 방법을 공유합니다.
총 28개의 글이 있습니다.
28 posts
![[머신러닝 실전 6편] 전체 파이프라인 완성 — CSV 한 장에서 예측 모델까지](/_next/image?url=%2Fblog%2Fml-prac-6-pipeline%2Fimg05.webp&w=1920&q=75&dpl=dpl_BRnctFgdYHKz892NuAvKy6UqDMmN)
1편 EDA부터 5편 튜닝까지, 코드가 흩어져 있었습니다. 전처리 따로, 모델 따로, 튜닝 따로 — 실수하기 딱 좋은 구조였습니다. sklearn Pipeline과 ColumnTransformer로 전부 하나로 묶었습니다. 전처리부터 튜닝까지 fit 한 번이면 끝나는, 재현 가능한 워크플로우를 완성합니다.
![[머신러닝 실전 5편] 같은 모델인데 셋팅만 바꿨더니 — 하이퍼파라미터 튜닝](/_next/image?url=%2Fblog%2Fml-prac-5-tuning%2Fimg03.webp&w=1920&q=75&dpl=dpl_BRnctFgdYHKz892NuAvKy6UqDMmN)
4편에서 Gradient Boosting이 종합 1위였습니다. 근데 기본 설정 그대로 쓴 거라 '이게 최선인가?' 싶었습니다. 하이퍼파라미터를 바꿔봤더니 — 사실 기본 설정이 이미 꽤 좋았습니다. GridSearchCV, RandomizedSearchCV로 실험한 과정과, '튜닝이 항상 극적 개선을 주지는 않는다'는 현실적인 교훈을 정리했습니다.
![[머신러닝 실전 4편] 이탈 예측, 어떤 모델이 이기나 — 5개 모델 실전 비교](/_next/image?url=%2Fblog%2Fml-prac-4-model-selection%2Fimg01.webp&w=1920&q=75&dpl=dpl_BRnctFgdYHKz892NuAvKy6UqDMmN)
전처리를 끝내고 나니 '어떤 모델을 써야 하지?'가 막막했습니다. 로지스틱 회귀? 랜덤포레스트? 그래디언트 부스팅? 실전에서는 하나만 골라서 올인하는 게 아니라, 여러 개를 빠르게 돌려보고 비교합니다. DummyClassifier로 베이스라인을 세우고, 5개 모델을 교차검증으로 공정 비교한 결과를 정리했습니다.
![[머신러닝 실전 3편] "남자/여자"를 모델은 못 읽는다 — 피처 엔지니어링 실전](/_next/image?url=%2Fblog%2Fml-prac-3-feature-engineering%2Fimg05.webp&w=1920&q=75&dpl=dpl_BRnctFgdYHKz892NuAvKy6UqDMmN)
2편에서 결측치와 이상치를 처리하고 바로 모델에 넣었더니 에러가 났습니다. gender='Male'을 모델이 이해하지 못한 겁니다. 범주형을 숫자로 바꾸는 인코딩, 스케일을 맞추는 스케일링, 새 변수를 만드는 파생변수까지 — 모델이 먹을 수 있는 형태로 데이터를 가공하는 과정을 정리했습니다.
![[머신러닝 실전 2편] 빈 칸과 튀는 값 — 결측치·이상치 실전 처리](/_next/image?url=%2Fblog%2Fml-prac-2-preprocessing%2Fimg05.webp&w=1920&q=75&dpl=dpl_BRnctFgdYHKz892NuAvKy6UqDMmN)
1편에서 EDA를 하다가 TotalCharges에 빈 칸 11개를 발견했습니다. 그냥 삭제할까, 0으로 채울까, 중앙값으로 채울까 — 선택에 따라 모델 결과가 달라졌습니다. 결측치를 직접 파헤쳐보고, 이상치까지 IQR 방법으로 확인하면서 배운 실전 전처리 과정을 공유합니다.
![[머신러닝 실전 1편] 통신사 고객 7천 명, 누가 떠날까 — EDA로 단서 찾기](/_next/image?url=%2Fblog%2Fml-prac-1-eda%2Fcap1_chart.webp&w=1920&q=75&dpl=dpl_BRnctFgdYHKz892NuAvKy6UqDMmN)
처음 데이터를 받았을 때 바로 모델부터 돌렸습니다. 정확도 79%에 좋아했는데.. 자세히 보니 이탈 고객을 거의 못 잡고 있었습니다. 원인을 찾다 보니 데이터 자체에 문제가 있었습니다. 그때 깨달았습니다 — 모델 전에 데이터를 먼저 봐야 한다는 것을. 제가 했던 실수를 여러분은 안 하시도록, Telco Churn 데이터 7,043명을 직접 뜯어보면서 EDA가 왜 필수인지 확인합니다.
![[머신러닝 중급 6편] 주성분 분석(PCA) — 100개 특성을 2개로 줄여도 되는 이유](/_next/image?url=%2Fblog%2Fml-adv-6-pca%2Fimg04_crop.webp&w=1920&q=75&dpl=dpl_BRnctFgdYHKz892NuAvKy6UqDMmN)
처음 PCA를 접했을 때 '특성을 줄이면 정보가 날아가는 거 아닌가?' 싶었습니다. 근데 iris 데이터 4개 특성을 2개로 줄여서 산점도를 그려보니까, 클래스 구분이 여전히 선명하더라고요. 분산 설명 비율, Scree Plot, 차원 축소 전후 비교까지 직접 코드로 확인합니다.
![[머신러닝 중급 5편] 이상치 탐지 — 1000명 중 수상한 1명을 찾아내는 법](/_next/image?url=%2Fblog%2Fml-adv-5-anomaly-detection%2Fimg04_crop.webp&w=1920&q=75&dpl=dpl_BRnctFgdYHKz892NuAvKy6UqDMmN)
이상치 탐지는 처음 접했을 때 '그냥 평균에서 멀면 이상치 아닌가?' 싶었습니다. 근데 실제 데이터에서는 그렇게 단순하지 않더라고요. 레이블도 없고, 정상과 비정상의 경계도 애매하고.. Isolation Forest를 직접 돌려보고 나서야 왜 이 방법이 인기 있는지 이해했습니다.
![[머신러닝 중급 4편] 그래디언트 부스팅 — 약한 모델들이 팀을 이루는 방법](/_next/image?url=%2Fblog%2Fml-adv-4-gradient-boosting%2Fimg04_crop.webp&w=1920&q=75&dpl=dpl_BRnctFgdYHKz892NuAvKy6UqDMmN)
랜덤포레스트랑 뭐가 다른 건지 처음엔 구분이 안 됐습니다. 둘 다 트리를 여러 개 쓰는 건 같은데.. 직접 코드를 돌려보고 나서야 '순차적으로 오차를 보정한다'는 게 무슨 뜻인지 이해했습니다. 그래디언트 부스팅의 원리부터 XGBoost, 특성 중요도 해석까지 정리합니다.
![[머신러닝 중급 3편] 정규화 기법 — 모델에 '벌금'을 매기는 이유](/_next/image?url=%2Fblog%2Fml-adv-3-regularization%2Fimg04_crop.webp&w=1920&q=75&dpl=dpl_BRnctFgdYHKz892NuAvKy6UqDMmN)
1편에서 과적합 해결책 중 하나로 '정규화'를 잠깐 언급했었는데, 솔직히 그때는 이름만 들었지 뭔지 감이 안 왔습니다. L1, L2가 뭐고 왜 가중치에 벌금을 매기는 건지.. Ridge, Lasso 코드를 직접 돌려보고 alpha 값을 이리저리 바꿔본 뒤에야 '아, 이래서 정규화가 필요하구나' 이해했습니다.
![[머신러닝 중급 2편] 서포트 벡터 머신(SVM) — 두 그룹 사이의 가장 넓은 길을 찾는 알고리즘](/_next/image?url=%2Fblog%2Fml-adv-2-svm%2Fimg04_crop.webp&w=1920&q=75&dpl=dpl_BRnctFgdYHKz892NuAvKy6UqDMmN)
SVM을 처음 접했을 때 '경계선을 긋는다'는 설명만 봤는데, 그러면 로지스틱 회귀랑 뭐가 다른 건지 감이 안 왔습니다. 핵심은 경계선이 아니라 '도로 폭'이더라고요. 마진 최대화, 서포트 벡터, 커널 트릭까지 — 직접 그래프를 그려보면서 정리합니다.
![[머신러닝 중급 1편] 과적합과 과소적합 — 모델이 시험 문제만 외우면 생기는 일](/_next/image?url=%2Fblog%2Fml-adv-1-overfitting%2Fimg04_crop.webp&w=1920&q=75&dpl=dpl_BRnctFgdYHKz892NuAvKy6UqDMmN)
처음 머신러닝을 배울 때 '과적합'이 뭔 소린지 감이 안 왔습니다. 잘 맞추면 좋은 거 아닌가? 근데, 직접 코드를 돌려보고 나서야 이해했던 경험이 있습니다. degree 하나 바꿨을 뿐인데 그래프가 미친 듯이 요동치는 걸 보고.. 과적합·과소적합의 차이, 편향-분산 트레이드오프, 학습 곡선까지 직접 실행하면서 정리합니다.
![[머신러닝 기초 6편] 모델 평가 지표 — 정확도만 보면 안 되는 이유](/_next/image?url=%2Fblog%2Fml-6-evaluation%2Fimg02.webp&w=1920&q=75&dpl=dpl_BRnctFgdYHKz892NuAvKy6UqDMmN)
굉장히 민감한 영역입니다. 정확도 99%인데 암 환자를 전부 놓친다면 어떻게 될까요..(상상하기도 싫습니다.) 모델을 제대로 평가하려면 혼동행렬, 정밀도, 재현율, F1 점수를 알아야 합니다. 각 지표가 언제 중요한지, 어떻게 계산하는지 직접 코드로 확인해봅니다.
![[머신러닝 기초 5편] 선형 회귀 — 직선 하나로 미래를 예측한다](/_next/image?url=%2Fblog%2Fml-5-linear-regression%2Fimg01.webp&w=1920&q=75&dpl=dpl_BRnctFgdYHKz892NuAvKy6UqDMmN)
선형 회귀는 데이터 사이의 직선 관계를 찾아내는 가장 기본적인 예측 알고리즘입니다. y=wx+b 수식이 어떻게 집값, 매출, 체중을 예측하는지, 경사 하강법으로 최적의 직선을 어떻게 찾는지 직접 구현해봅니다.
![[머신러닝 기초 4편] 나이브 베이즈 — 확률로 스팸을 잡는다](/_next/image?url=%2Fblog%2Fml-4-naive-bayes%2Fimg02.webp&w=1920&q=75&dpl=dpl_BRnctFgdYHKz892NuAvKy6UqDMmN)
받은 메일이 스팸인지 아닌지 AI는 어떻게 판단할까요? 나이브 베이즈는 단어 등장 확률을 곱해서 분류하는 단순하지만 강력한 알고리즘입니다. 베이즈 정리부터 스팸 필터 직접 구현까지 다뤄봅니다.
![[머신러닝 기초 3편] 로지스틱 회귀 — S자 곡선 하나로 분류를 끝낸다](/_next/image?url=%2Fblog%2Fml-3-logistic-regression%2Fimg01.webp&w=1920&q=75&dpl=dpl_BRnctFgdYHKz892NuAvKy6UqDMmN)
로지스틱 회귀는 시그모이드 함수를 이용해 어떤 숫자든 0~1 사이 확률로 변환하고 분류합니다. 스팸 탐지, 암 진단, 신용 심사에 실제로 쓰이는 이 알고리즘을 유방암 데이터셋으로 직접 구현해봅니다.
![[머신러닝 기초 2편] 결정 트리 — 스무고개처럼 질문을 쪼개서 답을 찾는다](/_next/image?url=%2Fblog%2Fml-2-decision-tree%2Fimg01.webp&w=1920&q=75&dpl=dpl_BRnctFgdYHKz892NuAvKy6UqDMmN)
결정 트리는 데이터를 질문으로 쪼개 분류하는 알고리즘입니다. 지니 불순도와 정보 이득으로 최적 분할 기준을 찾고, 트리 깊이에 따른 과적합 문제까지 — 붓꽃 데이터셋으로 직접 구현해봅니다.
![[머신러닝 기초 1편] k-최근접 이웃(k-NN) — 주변을 보고 판단한다](/_next/image?url=%2Fblog%2Fml-1-knn%2Fimg01.webp&w=1920&q=75&dpl=dpl_BRnctFgdYHKz892NuAvKy6UqDMmN)
가장 직관적인 머신러닝 알고리즘, k-NN. 데이터 포인트 간의 거리를 계산해 가장 가까운 k개의 이웃을 찾고 다수결로 분류합니다. 유클리드 거리 계산부터 k값 선택까지, 붓꽃 데이터셋으로 직접 구현해봅니다.
버블, 삽입, 퀵, 병합 정렬을 직접 구현하고 성능을 비교합니다. O(n²)과 O(n log n)이 실제로 얼마나 차이나는지, 데이터 상황별로 어떤 정렬이 유리한지 숫자로 확인해봅니다.
모든 알고리즘의 기초가 되는 스택·큐·재귀를 Python으로 직접 구현해봅니다. 브라우저 뒤로가기는 스택, 카페 줄서기는 큐, 하노이 탑은 재귀로 — 실생활 예시로 자료구조의 핵심을 잡아봐요.
1편에서 배운 스택·큐가 실제로 어떻게 쓰이는지 알 차례입니다. 스택으로 구현하는 DFS, 큐로 구현하는 BFS — 지하철 최단경로·SNS 추천·게임 AI까지 모두 이 두 알고리즘에서 시작해요. 3편에서는 최대공약수·이진 트리·프린터 스케줄링으로 이어집니다.
AI는 기초가 중요하다고 합니다.. 그 기초가 수학입니다..(저도 사실 수학을 좋아하진 않지만)! 이번 포스팅에서 같이 사과·바나나 가격 구하는 연립방정식을 NumPy로 함께 돌려보면서, AI 신경망의 뿌리가 어디서 오는지 직접 확인해 봅시다.
AI가 데이터를 보는 눈, 평균과 분산으로 시작합니다. 거기에 로그까지 더하면 AI 손실함수의 기초가 완성돼요. 레오파드게코 모프 분류 예시로 직접 돌려봅시다.
AI는 정답을 모릅니다. 대신 가장 확률 높은 답을 고릅니다. 이산 확률부터 정규분포, 조건부 확률, softmax까지 NumPy로 직접 돌려봅시다.
![[벡터#4 데이터 추출] 정규표현식으로 이메일 주소 찾기](/_next/image?url=%2Fblog%2Fregex-email-extraction%2F%EC%9D%B4%EB%AF%B8%EC%A7%801.webp&w=1920&q=75&dpl=dpl_BRnctFgdYHKz892NuAvKy6UqDMmN)
100페이지 문서에서 이메일 빠르게 추출! 엑셀 '찾기'보다 강력한 정규표현식으로 반복 작업을 크게 줄이는 방법을 배웁니다.
사과 2개 + 바나나 3개 = 8,000원? 손으로 풀면 5분, Python으로는 빠르게! 연립방정식을 코드 3줄로 해결하는 방법을 배웁니다.
![[벡터#2 연산] 덧셈, 뺄셈, 곱셈으로 배우는 실전 데이터 계산](/_next/image?url=%2Fblog%2Fvector-operations%2Foperation-1.webp&w=1920&q=75&dpl=dpl_BRnctFgdYHKz892NuAvKy6UqDMmN)
장바구니 계산부터 할인 적용, 매출 분석까지. 벡터 연산으로 엑셀보다 훨씬 빠르게 계산하는 방법을 배웁니다.
![[벡터#1 입문] NumPy로 시작하는 AI 개발의 기초](/_next/image?url=%2Fblog%2Fvector-math-intro%2Fcolab-intro.webp&w=1920&q=75&dpl=dpl_BRnctFgdYHKz892NuAvKy6UqDMmN)
AI 개발의 핵심이 되는 벡터수학을 NumPy로 배워봅니다. 일상생활 속 벡터부터 AI 모델의 핵심 원리까지, 쉽고 실용적으로 시작하는 수학 여행.