machine learning automation
General Machine Learning Flow
1. Data ingestion
2.ETL > EDA
3.Supervised Learning > EDA
4.Feature Engineering > EDA
5.model building (model ingest)
6.model traing with a scale
7.model tuning
8.evaluation (testing)
총 8가지 정도의 단계로 ML 단계를 나누어 보았다.
이 8가지 단계에 대해서 모든 것을 항상 그때 그때 코딩 해주어야 할까?
라는 관점에서 자동화 될 수 있는 것은 무엇이 있을까 라고 스스로 정리 해보았다.
생각해보면 각 단계마다 라이브러리가 존재하고, 각 단계에서 최대한 자동화를 해주어서,
실제 머신러닝에서 중요한 4/5 번에 집중 할 수 있도록 도움을 줄 수 있지 않을까
- Data ingestion
MQ / DB Connector 등을 통한 data get
- ETL > EDA
Train / Test set 분리
-padding
-drop out
-liminate outlier
-n-fold data seperate
-random noise data generating
-범주형/수치형 변수 분리
-Embedding
-nomarlization
일반적인 방법
RankGauss
-위 과정을 포함/배제 한 EDA
3.Supervised Learning > EDA
-kmeans
-knn
-Auto Encoding
-Hierachical Clustering
-DB scan
-..etc 위과정을 포함 한 EDA
4.Feature Engineering > EDA
**Feature Selection**
-Correlation / AutoCorrelation
**Feature Etraction**
-PCA
-t-sne
-nMF
**Feature adding**
-Target Enconding
-lag data
-Feature combine (파생변수 생성)
5.model building (model ingest)
-기존 학습 모델 가져오기
-새로운 모델 정의하기
-Framework 설정 (모델 설정)
-layer/loss function / Optimizer / Regularziation
6.model traing with a scale
-horonvod
-kuberflow
-자체적인 Multi GPU 학습 (PyTorch,,)
7.model tuning
학습에서 중요한 부분이라 이미 어느정도 자동화가 진행 되어있음
-hyperParameter
-Optimizer
-regularization factor
-drop out factor
-Ensemble model
8.evaluation (testing)
-MAP7
-AB test
-F1 score
-FOC
붉은 색글씨 에 역할을 하는 부분들은 어느정도
form 을 맞추어서 자동화를 진행 해줄 수 있을 것 같다.
특히 2,3,4번을 자동화 해서 EDA 를 해주게되면
머신러닝 모델링을 하는사람은 모델링과 학습률만 생각하여 작업 하면된다.
이 단계들도 모두 서비스전에 자동화 되면 좋지 않을까?
'Machine.Learning' 카테고리의 다른 글
rtx 3080 - ubuntu 20.04 개발환경 설치기 (0) | 2021.01.22 |
---|---|
머신러닝 족보 ! scikit learn algorithm cheat sheet (0) | 2019.09.04 |
ML 환경 구축기 (e gpu 와 각종 드라이버 설치) (2) | 2019.04.16 |
fast cnns (yolo, R-CNN, SSD) (0) | 2019.02.12 |
tensorframes (0) | 2018.11.20 |