사이킷런을 함축해서 표현할 수 있는 표 (Cheat-Sheet)이다.
크게 4가지로 구분할 수 있다.
1) Classification (분류)
2) Regression (회귀)
3) clustering (군집화)
4) Dimensionality Reduction (차원 축소)
1) Classification은 분류하는 것으로써
시험에서 (합격 / 불합격) 혹은
점심을 (먹음 / 먹지 않음)
(학생이다 / 학생이 아니다) 등을 측정하며 이용한다.
2) Regression은 회귀로써, x와 y값 선형관계를 파악하는 것이다.
독립변수(x값)데이터에 따라서 종속변수(y값)가 얼마나 변하는지에 대한 예측에 이용한다.
이 부스트코스 - 캐글 실습 캐글 실습으로 배우는 데이터 사이언스에서 실습하고있는
자전거 데이터 이용량 분석은 Regression 모델에 해당한다.
왜냐하면 시계열 데이터( x값)에 따른 이용량의 변화를 통한 예측을 하기 때문이다.
3) 클러스티랑과 4) 차원축소는 다음에 소개하도록 하겠습니다!
이번 실습에서는 지도학습을 사용한다고 하셨습니다!
bike Sharing Demand의 경우에 train data와 test data가 있는데,
이 train data에 count데이터가 존재하기때문에 어떤 날짜, 어떤 기후에 얼마나 자전거를 대여했는지 알 수 있다.
따라서 이 train data와 lable데이터를 모델로 만들어서 학습시키고
test 데이터에서 얼마나 대여할지를 예측하는 문제의 지도학습이다.
다음의 그림의 과정으로 실습의 step을 알 수 있다.
(지도학습과 비지도학습의 가장 큰 차이점은 Lable된 데이터가 있느냐 없느냐에 따라 차이가 있다.)
크게 4개의 코드로 구현이 가능하게 된다고 설명하셨다.
이제
RandomForest를 제대로 알기위해서는 먼저 Decision Trees를 알아야한다.
Decision Trees는 T/F를 판단하며 깊은 depth로 이동해서 최적화된 값을 찾는다.
이 decision tree(결정트리 )는 속도가 빠르고, 시각화해서 설명하기 좋다는 장점을 가지고있다.
왼쪽에서처럼 하나의 결정트리를 만들고 이를 통해 여러가지 결정트리를 만들어 비교한다.
각 트리는 각자 구한 depth를 나타낼 수 있다.
이 결정트리를 가지고 투표를해서 결과를 예측하는 알고리즘이다.
피쳐를 만들어 얼마나 정확한지(Accuracy) 평가하는데 있어서 과소적합과 과대적합을 피해야한다.
과소적합은 너무 간단한 모델이 선택되어 데이터의 특징과 다양성을 잡아내지 못하는 모형이고
과대적합은 너무 복잡한 모델을 만들어 일반화 하기 어려운 모형이다.
여기 바이크 쉐어링 디맨드에서 평가방법은 RMSLE를 따른다고한다.
오차들의 값들을 평균한 값의 제곱근으로, 확통- 회귀에서 배우고 있는 MSE와 비슷한 개념이라고 판단이 되었다.
따라서 오차가 작을 수록 정확도가 높다라고 평가가 된다!
이때 pi = 예측값, ai = 실제값이다.
따라서 오차(잔차)에 대한 평균에 로그(RMSLE)는
과대평가 된 항목보다 과소 평가 된 항목에 패널티를 주기위한것이라고 한다.
log( (pi+1)/(ai+1) ) 가 되므로 log 함수의 성질에따라
pi가 ai보다 작게되는 경우 ( pi < ai ) , 다시말해서 로그 안의 수가 1보다 작아지는 경우에는
기하 급수적으로 음의 무한대로 수렴하게 된다.
따라서 이를 통해 과소 평가 된 항목에
패널티를 주기 위한 것이라고 이해를 했다.
반대로
pi가 ai보다 큰 경우( pi > ai) ,
다시말해서 로그 안의 수가 1보다 커지는 경우에는
0과 1사이에서 log값 보다는 조금 더 완만한 증가폭을 이루기때문에
패널티가 과소평가 된 항목의 패널티보다 상대적으로 작아보인다.
RMSLE방법을 통해서 예측 값에대한 측정을 하고 이 측정한 예측값에 대해서 평가를해야한다.
이 평가를 통해 파라미터를 최적화한다.
이러한 평가를 위해 교차검증(Cross-Validation)이 이용된다.
이때, 이 문제에서는 Cross Validation 교차검증을 하는데, K-Fold 교차검증을 사용한다.
KFold 교차검증은 K개의 부분집합으로 나누어 1개의 Test집합과 나머지 K-1개의 훈련 집합으로 1개씩 K번 반복한다.
이를 통해 각 부분집합의 정확도를 측정하여 모두 더한 후 K로 나누어 평균을 구한다.
이때 그 평균 값이 K-Fold를 통환 정확도이다.
이렇게 보니 데이터사이언스개론 수업에서 3가지 측정 모형사용 : SVM, Logistic Regression, Random Forest 을 사용해
4가지 값 [accuracy, precision, Recall, F1-점수] 를 구하고 이 값에 따라 얼마나 잘 측정되는지 평가했던게 생각이난다.
제 깃헙입니당..!
(github.com/heonsooo/DataScience_Introduction/blob/master/completion/%5B6%EC%A3%BC%EC%B0%A8%5DBinary_classification.pyBinary_classification.py)
이 과제를 통해 Classification의 바이너리, 멀티클래스를 측정하는데 상당히 많은 애를 썼던게 기억이난다.
하지만, 이때의 학습을 통해 지금 더 수월하게 이해할 수 있어 너무 기분이 좋았고, 어려움 없이 부스트코스 수업도 들을 수 있어 기쁘다.
이제 랜덤포레스트로 자전거 수요량 회귀 예측 실습을 진행해야겠다!
'Make the Learning Curve > 부스트코스' 카테고리의 다른 글
[부스트코스] 캐글 실습으로 배우는 데이터 사이언스 (0) | 2020.12.24 |
---|---|
[Kaggle] 캐글 첫 Commit (0) | 2020.12.23 |
[부스트코스] 캐글 실습으로 배우는 데이터 사이언스 - 자전거 수요량 예측 (0) | 2020.11.03 |
[부스트코스] 캐글 실습으로 배우는 데이터 사이언스 (0) | 2020.11.03 |
[부스트코스] 네이버 부스트코스 시작 (0) | 2020.11.03 |
댓글