train_pipeline.py

임포트

import pandas as pd
import seaborn as sns
import mlflow
import mlflow.sklearn 
from sklearn.linear_model import LinearRegression     # 선형 회귀 모델
from sklearn.preprocessing import StandardScaler      
from sklearn.pipeline import Pipeline 
from sklearn.model_selection import train_test_split
from sklearn.metrics import mean_squared_error

데이터 불러오기 및 변수 설정

tips = sns.load_dataset('tips')                        # tips dataset 사용
x = tips[['total_bill']]                               # 독립 변수 : 금액
y = tips['tip']                                        # 종속 변수 : 팁

데이터 분리

x_train, x_test, y_train, y_test = train_test_split(x,y, random_state=42)

파이프라인 구성

: 데이터 전처리 + 모델을 자동으로 처리

pipe = Pipeline([
	('scaler', StandardScaler()),                       # total_bill 표준 정규화
	('regressor', LinearRegression())                   # 선형 회귀 모델 적용
])

mlflow 실험 이름 설정

mlflow.set_experiment('Tips_Pipeline_Experiment2')

mlflow 실험 시작

with mlflow.start_run() as run:
	pipe.fit(x_train, y_train)                         # 파이프라인 학습
	preds = pipe.predict(x_test)                       # 예측
	mse = mean_squared_error(y_test, preds)            # 성능 평가
	
	mlflow.log_param('model_type', 'StandardScaler_LinearRegression') # 실험 정보 기록 - 모델 종류
	mlflow.log_metric('mse', mse)                      # 실험 정보 기록 - 성능 지표
	mlflow.sklearn.log_model(pipe, artifact_path = 'pipeline_model')  # 파이프라인 객체 저장
	
	print(f"✅ 파이프라인 저장 완료 (run_id: {run.info.run_id})")