반응형
feast와 mlflow를 활용한 머신러닝프로젝트3
DriverRankingTrainModel 클래스 생성
import pandas as pd
from pprint import pprint
from sklearn.linear_model import ElasticNet
import feast
class DriverRankingTrainModel:
def __init__(self, repo_path: str, f_service_name: str, tuning_params={}) -> None:
self._repo_path = repo_path
self._params = tuning_params
self._feature_service_name = f_service_name
def get_training_data(self) -> pd.DataFrame:
orders = pd.read_csv("/home/jovyan/jupyter/ml_project_1/data/driver_orders.csv", sep="\t")
orders["event_timestamp"] = pd.to_datetime(orders["event_timestamp"])
store = feast.FeatureStore(repo_path=self._repo_path)
feature_service = store.get_feature_service(self._feature_service_name )
training_df = store.get_historical_features(
entity_df=orders,
features=feature_service
).to_df()
return training_df
def train_model(self) -> str:
model = ElasticNet(**self._params)
target = "trip_completed"
training_df = self.get_training_data()
train_X = training_df[training_df.columns.drop(target).drop("event_timestamp")]
train_y = training_df.loc[:, target]
model.fit(train_X[sorted(train_X)], train_y)
return model.coef_
- 전역 변수 : _repo_path / _params / _feature_service_name
- get_training_data
- Feast FeatureStore 객체 생성
- get_feature_service 로 서비스 객체 생성
feast feature-services list 활용
get_historical_features 에 Query data 와 서비스를 기준으로 훈련 데이터 추출
- train_model
- ElasticNet 모델 생성
- 학습/추론 데이터 분할
- 모델 fitting
실행 메인코드 작성
if __name__ == '__main__':
REPO_PATH = "/home/jovyan/feature_repo"
FEATURE_SERVICE_NAME = "driver_ranking_fv_svc"
params_list = [{"alpha": 0.5, "l1_ratio": 0.15},
{"alpha": 0.75, "l1_ratio": 0.25},
{"alpha": 1.0, "l1_ratio": 0.5}]
for params in params_list:
model_cls = DriverRankingTrainModel(REPO_PATH, FEATURE_SERVICE_NAME, params)
model_coef_ = model_cls.train_model()
pprint(f"ElasticNet params: {params}")
print(f"Model coefficients: {model_coef_}")
#직장인인강 #직장인자기계발 #패스트캠퍼스후기#온라인패키지:머신러닝서비스구축을위한실전MLOps#머신러닝서비스구축을위한실전MLOps온라인패키지Online.
https://bit.ly/37BpXiC
패스트캠퍼스 [직장인 실무교육]
프로그래밍, 영상편집, UX/UI, 마케팅, 데이터 분석, 엑셀강의, The RED, 국비지원, 기업교육, 서비스 제공.
fastcampus.co.kr
본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다.
반응형
'MLops' 카테고리의 다른 글
패스트캠퍼스 챌린지 45일차 (0) | 2022.03.09 |
---|---|
패스트캠퍼스 챌린지 44일차 (0) | 2022.03.08 |
패스트캠퍼스 챌린지 42일차 (0) | 2022.03.06 |
패스트캠퍼스 챌린지 41일차 (0) | 2022.03.05 |
패스트캠퍼스 챌린지 40일차 (0) | 2022.03.04 |