CDS

Machine Learning Overview

juju824 2021. 11. 15. 11:30

👉 간단히 말하는 머신러닝의 프로세스

1. 첫단추는 "비즈니스 이해"

비즈니스 이해하고 목표를 설정하게 되면 Data를 targeting하게 된다 

2. Data 전처리 

3. Data 탐색 

4. 머신러닝 -> 학습 -> 결과 (결과가 안 좋으면 다시 한번 머신러닝 돌리기)

 

 

📌Machine Learning Pipeline 

Process Description Output
Business Understand
(비즈니스 이해)
비즈니스 이해 후 목표 설정  
1) Data Loading DataSet 불러오기 (csv, excel, sql...)
- train set (학습용, 레이블 O)
- test set (평가용, 레이블 X)
DataSets (All, Train, Test)
2) Data Preprocessing
(전처리)
결측치 처리, 이상치 처리, 데이터 보정 데이터 정리
3) Feature Engineering
4) Feature Selection/Extraction 

(데이터 탐색)
Feature Engineering
- 기존 데이터 활용하여 신규 데이터 열 생성
- 카테고리 데이터 변형 (ex. 계정, 년도/월/일 등)

Feature Selection/Extraction
- 중요 데이터 선정
- 필요 없는 데이터 삭제 (relation 적은 data)
데이터 정리
5) Data Splitting Train Datasets을 학습과 학습 평가용으로 분할
- 학습 평가용 (20%), 학습용 (80%)로 분할
x_train, y_train
x_valid, y_valid
6) Modeling 학습할 모델 생성
- 회귀 : 연속형 레이블 (LR, Ridge, Lasso RF, GB)
- 분류 : 범주형 레이블 (LR, DT, RF, GB)
MODEL
7) Training 학습데이터 이용하여 생성된 모델 학습
- 학습데이터를 넣어 예측값 출력 > pred_train
- 학습 평가 데이터 넣어 예측값 출력 > pred_test
pred_train
pred_valid
8) Evaluation 
(-> Hyper Parameter Tuning
-> 다시 Modeling)
예측값과 실제값을 비교하여 성능 평가
if) 학습 데이터와 학습 평가 데이터의 차이가 크다면 문제 
train score
test score
9) Inferencing 학습된 모델에 예측하고자 하는 데이터 넣어 예측
-Test Set or 미래에 발생할 데이터
pred_test
10) Submission 예측 결과 제출 RANK

 

1) 데이터 가져오기 

✔️ CSV, Excel, SQL의 경우 Pandas 함수 이용 

-read_csv / read_excel / read_sql

✔️ scikig-learn의 Datasets 함수 이용 

 

 

2) 데이터 전처리 

✔️ 결측치 처리 : fillna, dropna

✔️ 이상치 처리 : IQR, Sigma Rule

✔️ 데이터 보정

✔️ Data Encoding

One Hot (A, B, C) > (1,0,0)(0,1,0)(0,0,1)

Label (A, B, C) > (1,2,3)

 

 

3) Feature Engineering

✔️ Model 학습에 도움이 되는 방향으로 전처리 

ex. 날짜 데이터 활용하여 Model이 학습에 유용한 데이터로 바꿔줌 (요일/주차)

 

 

4) Feature Selection/Extraction

✔️ 모두 값이 같다? -> 의미 없는 특성이므로 제거 

✔️ y값과 상관관계가 낮은 특성? -> 제거 

✔️ Model에 영향이 낮은 특성? -> Feature Importance 활용하여 제거 

 

 

5) Data Splitting

✔️ 학습을 위한 데이터를 분리, (x1, x2, x3, x4) 와 (y) 따로

 

 

6) Modeling

[ 레이블에 따른 모델 선정 ]

✔️ 범주형 레이블 (분류, Classification) : 레이블별 데이터의 차이를 찾아서 분류

ex. Logistic Regression, Decision Tree, Random Forest, Gradient Boosting...

✔️ 연속형 레이블 (회귀, Regression) : 예측된 모형 이용하여 향후 나올 값 예측 

ex. Linear Regression, Ridge, Lasso, Random Forest, Gradient Boosting...

 

 

7) Training

✔️ 학습 데이터 세트를 이용하여 모델 학습 

 

 

8) Evaluation 

✔️ 학습 및 학습 평가 데이터 세트를 이용하여 모델 평가 

 

 

9) Inferencing 10) Submission 

✔️ 예측 데이터 추론과 결과 제출 

미래의 데이터 또는 제출용 데이터를 Model에 입력하여 평가 (학습 데이터와 동일한 특성의 순서 및 개수 사용)

 

 

 

 

📌Machine Learning

. 인공지능의 한 분야로 컴퓨터가 학습할 수 있도록 하는 algorithm과 tech를 개발하는 분야 

. 컴퓨팅 성능의 향상과 빅데이터로 인해 비즈니스 가치를 창출할 수 있음 

 

 이런 문제 유형에 이용한다

- algorithm의 부재로 명시적 문제 해결이 불가능할 때 

- 프로그래밍이 어려울 때 (음석 인식)

- 지속적으로 변화할 때 (자율 주행)

 

❓ 기존 Programming VS Machine Learning

기존 프로그래밍은..

-> 사람이 직접 프로그램을 만들고 컴퓨터에 처리 방법을 넘겨주고 지시하면 컴퓨터가 처리 후 처리 결과를 전달 

머신 러닝은..

-> 컴퓨터에게 처리 방법을 주는 것이 아니라 원하는 결과를 줌으로써 컴퓨터가 처리 방법을 생성하고 처리 결과를 건네줌 

 

 

📌학습방법

a) 지도 학습(Supervised Learning) -> 타겟하는 Y데이터가 있다

- 데이터를 이용하여 주어진 데이터 해석할 수 있는 모델 만들고, 이를 바탕으로 새로운 데이터 추정

- 좋은 학습 결과 얻기 위해 양질의 많은 데이터 확보 필요 

- Classification, Predict 문제에서 이용

 

b) 비지도 학습(Unsupervised Learning) -> Y데이터가 있다

- 주어진 데이터에 대한 결과가 없는 데이터를 이용해 주어진 데이터에 내재된 패턴, 특성, 구조를 찾아서 학습 

- 지도학습과 다른 점 -> 학습 데이터 넣어주면 '스스로' 학습.. 편리하지만 지도 학습에 비해 결과는 좋지 않음 

- Clustering 문제에서 이용 

 

c) 준지도 학습(Semi Supervised Learning)

- 레이블이 표시된 데이터와 표시되지 않은 데이터를 모두 훈련에 사용 (지도 학습과 반지도 학습 중간)

- 대개의 경우 준지도 학습에 사용되는 훈련 데이터는 레이블이 표시된 데이터가 적고 표시되지 않은 데이터를 많이 갖고 있는 상황에서 주로 이용 (이상 감지)

 

d) 강화 학습(Reinforcement Learning)

- stage를 진행하는 중간중간에 가상의 에이전트가 stage를 판단해 나가는 학습 

- 에이전트가 특정 환경에서 현재의 상태를 인식하여 보상이 최대화되는 행동을 수행하도록 학습하는 방법

 

 

 

📌Machine Learning 유형 분류 

Method Type ML Model
라벨이 있는 지도학습
Supervised Learning
예측 Prediction Linear Regression
Regression Tree
Ridge 
Lasso
Ensemble Model
...
분류 Classification K-Nearest Neighbor
Logistic Regression
Random Forest
Decision Tree
...
라벨이 없는 비지도 학습 
UnSupervised Learning
군집 Clustering K-Means Clustering
DBSCAN
Hierarchical Custering
...
차원 축소 Dimension, Reduction Principal Component Analysis (PCA)
t-Stochastic Neighbor Embedding
...

 

 

 

📌과소적합 & 과대적합

 

✔️ 과소적합 (Under Fitting)

정보를 충분히 학습하지 못해 설명력이 떨어지는 상태

발생한 경우 'High Bias 하다' 표현

 

✔️ 과대적합 (Over-Fitting)

정보 과도하게 학습하여 일반화된 설명력이 떨어지는 상태 

발생한 경우 'High Variance 하다' 표현 

 

👉 ML 기법 또는 Parameter Tuning 같은 작업을 통해 문제 해결 필요

'CDS' 카테고리의 다른 글

Machine Learning [K-NN]  (0) 2021.11.15
Machine Learning [Scikit-Learn]  (0) 2021.11.15
Data Visulization : Seaborn(데이터 시각화)  (0) 2021.11.12
Data Visulization : Matplotlib(데이터 시각화)  (0) 2021.11.12
EDA (Exploratory Data Analysis)  (0) 2021.11.12