본문 바로가기

Tech Stack/AICE - Associate

AICE - Associate - 7 머신러닝 모델링

머신러닝 프로세스

데이터 수집 - 데이터 정리 - 테스트 데이터 셋(간직) - 모델 학습 - 모델테스트 - 모델배포

 

 

 

 

 Linear Regression

가설 : 공부를 많이 하면 공부를 잘할 것이다.

 

y=wx+b

 

w가중치 y토익점수 x는 학습시간

 

최적의 직선구하기

예측값 - 실제값 = error, cost

 

y=wx

 (예측값 -실제값)^2/N = cost

포물선 모양이 나옴

 

그래프상에서 비용이 제일 낮은 아래부분을 찾으면 된다.

경사하강법.

 

gradient Descent Algorithm 이용

 

잘 정리된 데이터 확보가 중요!

 

 

지도학습 vs 비지도 학습

 

분류모델

이산적으로 나눠질 수 있는 문제

밥값 많이 남성, 적게 여성

 

예측 모델

레이블 값들이 연속적인 문제

밥값이 많이 나올 수록 팁의 크기도 커짐

 

 

data set

 

train validation test

 

train : 참고서

val : 모의고사

test : 수능

 

공부를 잘 하게 된다면 error율이 떨어짐

test는 조금은 떨어지긴 함

과적합

 

Confusion Matrix

오차행렬을 기반으로 설명

 

예측값

TN FP

FN TP 실제값

 

성능지표

정밀도(스팸메일), 재현율(암환자)

 

F1 score

정밀도와 재현율의 조화

 

 

 

Scikit-learn

인기 있는 머신러닝 패키지

 

Liear Regression

선형회귀

 

 

Logistic Regression

x가 0, 1,2,3,4,5

6,7,8,9,10

이진분류로 사용하기 쉽지 않음

 

로지스틱 함수를 사용하여 로지스특 회귀 곡선으로 변환하여 이진 분류를 할 수 있음

sigmoid나 로지스틱이라고 함

0~1사이 값으로 변함

 

K-Nearest Neighbor

KNN

k=1

k=3

k=5

원을 그었을 때 어떤 카테고리가 더 많이 포함이 되어 있는지

 

 

Decision Tree

랜덤 포레스트, 앙상블

 

붓꽃분류

 

코딩

 

 

Random Forest

일련의 예측기로부터 예측을 수집하면 가장 좋은 모델보다 더 좋은 예측을 얻을 수 있음

 

Ensemble

여러개의 분류기를 생성하고 예측을 결합 함으로써 보다 정확한 예측을 도출하는 기법

약한 모델 여러 개를 조합하여 더 정확한 예측 방식, 적절한 하이퍼파라미터 튜닝이 중요

 

Boosting

이전 학습에 대하여 잘못 예측된 데이터에 가중치를 부여해 오차를 보완

XGBoost, LightGBM

순차적인 학습을 하며 weight를 부여해서 오차를 보완하므로 학습시간이 길 수 있음

 

Stacking

여러 개 모델이 예측한 결과 데이터를 기반으로 final_estimator 모델로 종합하여 예측 수행

과대적합 위험성 있음

 

 

Weighted Blending

각 모델의 예측값에 대하여 weight를 곱하여 최종 output계산

 

XGBoost

 

LightGBM

 

 

get.dumies ==> 원핫인코딩

범주형 데이터를 (ex 남자 여자) 1과 0으로 컴퓨터가 이해하기 쉽게 표현

 

train test 데이터셋 분할

 

 

 

 

 

데이터 정규화

 

값을 0~1사이로 바꾸어야 함

 

 

predict로 예측값 확인

 

오차행렬

 

정밀도 재현율 전부 합치고 확인

 

KNN

 

결정트리

 

앙상블 기법

랜덤포레스트

 

 

XGBoost

 

 

Lightgbm

트리를 늘리거나 하면 성능이 더 좋아질 수있음

 

Stacking

성능을 극으로 끌어올리나, 과대적합을 유발함

 

stack_model 사용할 모델

모은 결과를

rfc - 랜덤포레스트

로 분류를 하겠다.

 

 

 

Weighted Blending