🔹 1. 파이프라인이란? 초보자도 쉽게 이해하는 개념
✅ 파이프라인(Pipeline)이란?
파이프라인(Pipeline)은 데이터를 여러 단계로 나눠 자동으로 처리하는 기술입니다.
예를 들어, 보험 청구 금액을 예측하는 모델을 만든다고 할 때, 다음과 같은 과정이 필요합니다.
1️⃣ 데이터 수집: CSV 파일에서 데이터를 불러옴
2️⃣ 데이터 전처리: 결측값 처리, 불필요한 컬럼 삭제
3️⃣ 특징 엔지니어링: 데이터 변환, 스케일링, 원-핫 인코딩
4️⃣ 머신러닝 모델 학습: Random Forest, XGBoost 등 모델 훈련
5️⃣ 예측 및 평가: 모델을 테스트하고 정확도 평가
🔥 이 모든 단계를 자동으로 수행하는 것이 "파이프라인"입니다!
반복적인 작업을 줄이고, 실수를 방지하며, 쉽게 모델을 개선할 수 있도록 도와줍니다.
🔹 2. Python을 활용한 데이터 분석 (보험 데이터 다뤄보기)
실제 Python 코드로 보험 데이터를 분석하고 파이프라인을 만들어 보겠습니다.
우선, 필요한 라이브러리를 설치하고 데이터를 불러옵니다.
# 필요한 라이브러리 불러오기
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
# 데이터 불러오기
df = pd.read_csv('data/healthcare.csv')
# 데이터 미리보기
df.head()
![](https://blog.kakaocdn.net/dn/ccWNz7/btsMbtCcd9B/Arf66da8Mm9M8Nx4aBX9i0/img.png)
✅ 데이터 설명
- age: 가입자의 나이
- Gender : 성별 (남성, 여성)
- bmi: 체질량 지수 (비만 여부)
- Region : 거주 지역
- smoker: 흡연 여부 (Yes/No)
- NumVisits : 방문 횟수
- InsuranceClaim : 보험 청구 금액 (예측 대상)
🔹 3. 머신러닝 파이프라인 만들기 (자동화)
데이터 분석을 쉽게 하기 위해 scikit-learn의 파이프라인 기능을 사용합니다.
아래 과정이 한 번에 실행되도록 설정할 것입니다.
✅ 1) 데이터 전처리 (누락값, 인코딩, 스케일링)
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler, OneHotEncoder
from sklearn.compose import ColumnTransformer
# 특성과 타겟 데이터 나누기
X = df.drop(columns=['InsuranceClaim']) # 독립 변수
y = df['InsuranceClaim'] # 종속 변수
# NaN 파일 드랍
X=X.dropna()
# 카테고리컬 데이터와 수치형 데이터 처리
# 컬럼이름을 분리해서 저장
# 수치형, 범주형 변수 구분
num_features = ['age', 'bmi', 'NumVisits']
cat_features = ['Gender', 'smoker', 'region']
# 전처리 파이프라인 (수치형: 스케일링, 범주형: 원-핫 인코딩)
preprocessor = ColumnTransformer([
('num', StandardScaler(), num_features),
('cat', OneHotEncoder(), cat_features)
])
# 데이터 분할 (훈련용 80%, 테스트용 20%)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
![](https://blog.kakaocdn.net/dn/b5qIZ2/btsMbaJuBFk/X4u0kkK1ftLSRvFwAmPLZK/img.png)
✅ 2) 머신러닝 모델 적용 (랜덤 포레스트)
from sklearn.pipeline import Pipeline
from sklearn.ensemble import RandomForestRegressor
from sklearn.metrics import mean_absolute_error
# 파이프라인 생성 (전처리 + 모델)
pipeline = Pipeline([
('preprocessing', preprocessor),
('model', RandomForestRegressor(n_estimators=100, random_state=42))
])
# 모델 학습
pipeline.fit(X_train, y_train)
# 예측 수행
y_pred = pipeline.predict(X_test)
# 모델 평가 (MAE: 평균 절대 오차)
mean_squared_error(y_test, y_pred)
r2_score( y_test, y_pred)
🔹 4. 결과 분석 & 예측 시각화
모델이 예측한 보험 청구 금액과 실제 값을 비교해봅시다.
# 예측값과 실제값 비교 시각화
plt.figure(figsize=(8, 5))
sns.scatterplot(x=y_test, y=y_pred, alpha=0.5)
plt.xlabel("실제 청구 금액")
plt.ylabel("예측 청구 금액")
plt.title("보험 청구 금액 예측 비교")
plt.show()
![](https://blog.kakaocdn.net/dn/oUDlH/btsMcejWgf4/XBaGS5derJPi8wIYhlkmkk/img.png)
![](https://blog.kakaocdn.net/dn/tsGQf/btsMaQdyb3s/Aade1MHKgYhVKaTkZ2cYik/img.png)
✅ 예측값이 실제 값과 가까울수록 좋은 모델입니다.
✅ 파이프라인을 활용하면 한 번의 실행으로 데이터 전처리부터 모델 훈련까지 자동화할 수 있습니다!
🔹 5. 결론: 파이프라인을 활용하면 이런 점이 좋다!
✅ 1) 데이터 전처리부터 모델 학습까지 한 번에 가능!
✅ 2) 자동화로 반복적인 작업을 줄이고, 실수를 방지할 수 있음
✅ 3) 파이프라인을 사용하면 향후 모델 변경 및 개선이 쉬움!
📌 파이프라인을 활용하면 데이터 분석과 머신러닝이 훨씬 더 쉬워집니다.
📌 초보자도 쉽게 따라 할 수 있도록 Python 코드와 함께 실습해 보세요! 🚀
💬 마무리 : 다음에는 이런 내용을 추가할 수도 있어요!
- 다른 머신러닝 알고리즘(XGBoost, LightGBM) 적용하기
- 하이퍼파라미터 튜닝을 활용해 모델 성능 개선하기
- 딥러닝(인공신경망, TensorFlow) 적용해서 성능 비교하기
🔥 "반복적인 데이터 분석이 지겹다면, 파이프라인을 활용해 자동화하세요!"
이 글이 도움이 되셨다면, 댓글이나 공유 부탁드립니다! 😊
'🐍 Python' 카테고리의 다른 글
범주형 데이터를 숫자로 변환하는 방법: One-Hot Encoding 완벽 가이드 (0) | 2025.02.09 |
---|---|
LabelEncoder란? 머신러닝에서 범주형 데이터를 숫자로 변환하는 방법 (0) | 2025.02.09 |
Streamlit 배포 가이드 (1) | 2025.02.04 |
비주얼 스튜디오 코드에서 Streamlit 문법 배우기: 출력 함수 실습과 실행 결과 (0) | 2025.02.03 |
🎈 완전 초보도 할 수 있는 VS Code(비주얼 스튜디오 코드)에서 Streamlit 시작하기! (0) | 2025.02.03 |