데이콘8 df.select_dtypes() - 데이터프레임에서 타입별로 불러오기 df안에는 다양한 타입들이 존재한다. int, float, object, bool 등 다양하다. 거기서 내가 원하는 타입만 불러오고 싶을 때 이 함수를 쓰면된다. 먼저 df안에있는 col들의 타입을 알아봐야된다. df.dtypes 이것은 내가 지금 데이콘에서 수행하고 있는 데이터셋이다. 여기서 보면 다양한 type들이 나온다. 이제 타입별로 불러와보자. # int형 col만 불러온다. df.select_dtypes(int) # bool형만 불러온다. df.select_dtypes(bool) # object형만 불러온다. df.select_dtypes(object) 2022. 2. 4. 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. 다중공산성 해결 방법 전 포스트에서 다중공산성을 확인하는 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. 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 다음