ML/ML-Kaggle, 데이콘19 Voting Classifier 여러개의 모델을 결합하여 더 좋은 예측 결과를 도출하는 앙상블 기법이다. 간단하다. 다양한 모델의 결과들을 모아서 투표하는 것이다. 아주 간단한 예로 모델이 총 3개로 1번 모델, 2번 모델의 결과가 사과로 나왔다. 3번 모델의 결과는 배로 나왔으면 사과가 2표, 배가 1표이므로 이 것의 결과는 사과가 된다. Voting Classifier 는 Hard voting과 soft voting으로 나뉘어진다. Hard voting. - Majority voting이라고도 하며, 각 모델의 예측한 결과들을 모아 다수결 투표로 최종 예측 결과를 선정하는 방식이다. 방금 위에서 표현한 예가 hard voting이다. Soft Voting - Probability Voting이라고도 하며, 각 모델들이 예측한 결과값.. 2021. 12. 30. LGBM(Light Gradient Boosting Model) LGBM을 알기전에 XGB, GBM을 알아야 한다. https://lucian-blog.tistory.com/100 LGBM은 XGB의 업그레이드 버전이라 보면 된다. XGB는 높은 성능을 내고 GBM보다 빠르지만 여전히 level-wise 트리 확장 구조를 사용하므로 느리다! 즉 트리 구조가 수평적으로 예쁘게 확장되는 것이 level-wise 확장 구조이다. 반면에 LGBM(Light GBM)은 leaf-wise 트리 확장 구조로 변경하여 속도와 메모리를 비약적으로 향상시켰다. 즉 트리의 어느 레벨에서 모든 노드를 확장시키는 것이 아닌 최종 노드 하나만 분할하는 방식을 사용한 것이다. =수직 트리 구조 이렇게 하면 loss가 가장 큰 부분을 쪼개고 쪼개서 결국 최대한으로 줄여지는 것이 가능하다. 이렇게.. 2021. 12. 30. XGB(Extreme Gradient Boosting) 먼저 XGB를 알기전에 GBM부터 알아야한다. https://lucian-blog.tistory.com/51?category=1002577 XGB는 GBM의 속도와 성능을 향상시킨 업그레이드 버전이라고 보면 된다. 앙상블 기법 중 Boosting 기법은 틀린 답 즉 오류(또는 오답)에 가중치를 부여하여, 순차적으로 다음 학습모델에 반영하여 강한 예측모형을 만드는 기법이다. 그 중 GBM은 이 가중치에 경사하강법을 도입하여 만든 모델이다. 그런데 이 부스팅 모델은 모델들을 순차적으로 학습하기 때문에 속도가 매우 느리다... 데이터가 많아질수록 더 많이 느려진다. 이를 업그레이드 한 것이 XGB이다. XGB는 GBM의 학습하는 모델을 병렬처리하여 학습하게 만든다. 즉 순차적으로 진행이 아닌 동시에 각각의 모.. 2021. 12. 30. 차원 축소 차원축소 - 많은 feature 즉 속성(열)들로 구성된 다차원 데이터의 차원을 축소시켜(속성을 줄인다 = 열을 줄인다) 새로운 속성을 만드는 방법. 일반적으로 차원이 크면 -> 희소한(sparse) 구조를 가지게 된다. = 대부분의 값이 0인 것 이러면 작은 차원에서 학습된 모델보다 신뢰도가 떨어지고 각 속성별 상관관계가 높을 가능성이 크다. 선형회귀(선형모델)의 경우 독립변수간 상관관계가 높으면 다중공산성이 높다.(vif가 10 이상) -> 이러면 예측의 성능이 저하된다. 또한 변수들이 많다보니 시각적으로 표현하기도 어려워서 어떤 특성을 가지고 있는 데이터인지 파악하기가 어렵다. 이렇기에 차원을 축소하는 것. 차원 축소에는 feature selection(속성 선택) 과 feature extracti.. 2021. 12. 29. 다중공산성 해결 방법 전 포스트에서 다중공산성을 확인하는 3가지 방법에 대해 설명했다. scatterplot, heatmap, VIF 이렇게 총 3가지가 있다. 이번엔 다중공산성 해결 방법을 알아본다. 크게 3가지로 나뉘는데, 변수 정규화 변수 제거 PCA(주성분 분석) 먼저 변수 정규화 변수 정규화는 이전 수치형 데이터 정규화 포스트에서 다루었다. https://lucian-blog.tistory.com/48?category=1002577 보통 의사결정나무, 랜덤포레스트와 같이 트리기반 모델은 대소 비교를 통해 구분한다. 그렇기에 숫자와 단위에 크게 영향을 받지 않는다. 하지만 로지스틱 회귀, Lasso 등 평활함수모델(평활=smooth) 선형?함수같은 느낌인 것 같다. 여튼 이 모델들에는 숫자의 크기와 단위에 영향을 많이.. 2021. 12. 29. 다중공산성 다중공산성 상관관계가 높은 독립변수들이 다중으로 모델에 들어가 있을 때 발생한다. 즉 독립변수들이 강한 선형관계가 있을 때 발생하는 것이다. 다중공산성이 높다=같은 변수를 두번 넣은 것과 같다. 보통 다중 회귀방정식에서 다중공산성 문제가 발생한다. 다중회귀방정식을 변동성으로 표현한 그림이다. y=a1x1+a2x2+a3x3+c y : 종속변수 x1, x2, x3 : 독립변수 매출(Y)를 설명하는 독립변수들의 변동성들이 겹쳐지는 것을 볼 수 있는데, 다중공산성이 낮을 때는 이렇게 겹쳐져 있지 않고 매출(Y)의 변동성 안에서 고루게 분포되어 있다. 하지만 이처럼 변동성들이 겹쳐지면 이 종속변수를 설명하는 부분이 겹쳐지게 되므로 같은 변수를 두번 쓴 것과 같은 현상이 발생한다는 것이다. 이러면 모델의 신뢰도가 .. 2021. 12. 17. Bayesian Optimization 한글로 베이지안 최적화 이다. 어렵다... 기본틀만 이해하자. 하이퍼 파라미터의 다양한 튜닝 방법 중 grid optimization, random optimization 다음으로 bayesian optimization이다. 저번 포스트인 랜덤포레스트에서 그리드 최적화로 적절한 하이퍼 파라미터를 찾은적이 있다. https://lucian-blog.tistory.com/44?category=1002577 랜덤포레스트(RandomForestRegressor) 앙상블 기법 - 배깅, 부스팅, 랜덤포레스트 등의 기법 중 랜덤포레스트에 대해 알아보자. 랜덤포레스트는 의사결정나무를 여러개를 모아다 합쳐놓은 것이다. 일종의 배깅인데, 각 의사결정나무 lucian-blog.tistory.com 그리드 최적화는 내가 설.. 2021. 12. 16. Hold-out, 교차검증(K-Flod), Stratified K-fold 먼저 Hold out에 대해 알아보자. Hold-out 전체(train) 데이터를 훈련과 검증 데이터로 나뉘는 것을 말한다.(여기서 전체 데이터셋은 train과 test 데이터 중 train만 말함. - 즉 데이터가 train=(훈련, 검증), test=(테스트)로 나뉜다는 뜻) 기본적으로 8:2, 7:3으로 나눠 훈련(train)데이터는 모델을 훈련 시킬 때, 검증(valid) 데이터는 모델이 얼마나 잘 훈련되었는지 확인할 때 쓴다. 이렇게 하면 모델의 예측성능을 측정할 수 있다.이 모델이 과대적합이 일어났는지 제대로 훈련되고 좋은 성과를 냈는지 test 데이터를 넣기 전에 알 수 있기 때문에 나뉜다. 하지만 이 Hold-out방식은 데이터 자원을 낭비한다는 문제가 있다. 왜냐면 검증으로 쓸 데이터는 .. 2021. 12. 9. GBM(Gradient Boosting Model) GBM은 Gradient Boosting Model로 머신러닝 앙상블 기법 중 하나인 부스팅에서 나온 것이다. 다른 배깅과 랜덤포레스트 같은 경우, 모든 데이터가 순차적이지 않고 병렬적으로 뽑아서 예측하는 것에 반해 부스팅은 순차적으로 모델이 데이터에서 학습한 결과를 가지고 다른 모델이 input으로 쓴다. 즉 모델의 output을 다른 모델이 input으로 받아 진행하는 앙상블 기법이다. 보통 회귀문제에선 loss function은 MSE로 사용한다. MSE로 나온 잔차(residual)를 이용해서 다음 모델을 순차적으로 만들어 나간다는 뜻이다. 즉 negative gradient를 이용해서 다음 모델을 만든다는 것을 의미한다. 그렇기 때문에 gradient로 부스팅을 해서 Gradient Boosti.. 2021. 10. 8. 이전 1 2 3 다음