목록머신러닝 (48)
안 쓰던 블로그
문제 www.kaggle.com/c/santander-customer-satisfaction Santander Customer Satisfaction Which customers are happy customers? www.kaggle.com 고객 만족도는 기업에게 중요한 수치이다. 불만족스러운 고객이 있다면 그런 불만족한 점을 해결하도록 노력해야 한다. 산탄데르 은행은 불만족스러운 고객을 초기에 식별할 수 있도록 도와달라고 요청했다. 너무 늦기 전에 고객의 불만족을 개선하기 위한 사전 조치를 취할 수 있도록 해야 한다. 수백 개의 익명 피처가 주어질 때 고객이 은행 업무 경험에 만족하는지 또는 불만족하는지 예측한다. 성능 평가는 area under the ROC curve 로 한다. 풀이-xgboost..
Collecting package metadata (current_repodata.json): done Solving environment: failed with initial frozen solve. Retrying with flexible solve Solving environment: failed with repodata from current_repodata.json, will retry with next repodata source conda install -c anaconda py-xgboost 로 설치했는데 뜨는 문제 방법 1. 업데이트 후 재설치 conda update --all 방법 2. pip으로 설치 pip install xgboost pip으로 설치해도 정상 동작했다
XGBoost eXtra Gradient Boost의 약자 GBM대비 빠른 수행 시간(CPU 병렬 처리, GPU 지원) 다양한 성능 향상-규제, Tree Pruning 다양한 편의 기능-조기 중단, 자체 내장 교차 검증, 결손값 자체 처리 XGBoost 파이썬 래퍼(Wrapper)와 사이킷런 래퍼가 있는데, 둘이 좀 차이가 있다 학습 API 함수(train()이냐 XGBClassifier.fit()이냐)나 학습/테스트 데이터 세트(파이썬 객체 별도 생성, 사이킷런 넘파이나 판다스 이용) 등에서.. 아나콘다 프롬포트-> 명령어 conda install -c anaconda py-xgboost 로 설치 LightGBM XGBoost에서 단점 개선-더 빠른 학습, 적은 메모리 사용량 -리프 중심 트리 분할 방..
부스팅Boosting 여러 개의 약한 학습기weak learner를 순차적으로 학습, 예측하면서 잘못 예측한 데이터에 가중치 부여를 통해 오류를 개선해 나가는 학습 방식 대표적으로 아래와 같은 알고리즘들이 있다 -AdaBoost(Adaptive boosting) -Gradient Booting Machine(GBM) -XGBoost -LightGBM -CatBoost AdaBoost 1. 피처 데이터 셋에서 +와 -를 기준의 왼쪽 오른쪽으로 나누려고 한다 2. 처음에 왼쪽에 두 +를 잡을 수 있게 분류 기준을 나눔. 그랬더니 오른쪽에 +가 세 개가 빠져나오게 되었다(오류) 3. 다음 라운드에서 전에 오류였던 +세 개에 가중치를 주어 다시 기준을 나누었더니 +세 개에 +두 개까지 전부 잡아서 기준을 잡음...
배깅Bagging -Bootstrap Aggregating의 약자 1) 동일한 알고리즘을 사용하는 일정 수의 분류기를 생성 2) 각각의 분류기에 부트스트래핑Bootstrapping 분할 방식으로 생성된 샘플데이터를 학습 3) 최종적으로 각각의 결과를 보팅을 통해 예측 결정한다 랜덤 포레스트 -배깅의 대표적인 알고리즘은 랜덤 포레스트Random Forest -여러 개의 결정 트리 분류기가 전체 데이터에서 배깅 방식으로 각자의 데이터를 샘플링하여 개별적으로 학습 수행, 최종적으로 모든 분류기가 보팅을 통해 예측 결정을 한다 -개별 분류기의 기반 알고리즘은 결정 트리, 개별 트리가 학습하는 데이터 세트는 부트스트래핑 분할 방식이 적용된 데이터 세트 -부트스트래핑 분할 방식: 전체 데이터에서 여러 개의 데이터 ..
앙상블 학습 -여러 개의 분류기Classifier를 생성, 그 예측을 결합하므로써 보다 정확한 최종 예측을 도출하는 기법(집단지성처럼) -넓은 의미로는 서로 다른 모델을 결합한 것을 지칭 -단일 모델의 약점을 다수의 모델들을 결합하여 보안하기 때문에, 성능이 떨어지더라도 서로 다른 유형의 모델을 섞는 것이 전체 성능에 도움될 수 있음 -보팅(Voting), 배깅(Bagging), 부스팅(Boosting), 스태킹(Stacking) 등의 기법이 있음 -대표적인 배깅-랜덤 포레스트 -대표적인 부스팅-에이다 부스팅, 그래디언트 부스팅, XGBoost, LightGBM 등 -보팅, 배깅: 아래에 자세한 설명 -부스팅: 여러 개의 알고리즘이 순차적으로 학습을 하되, 앞에 학습한 알고리즘 예측이 틀린 데이터에 대해..
결정 트리 과적합 from sklearn.datasets import make_classification import matplotlib.pyplot as plt %matplotlib inline plt.title("3 Class values with 2 Features Sample data creation") # 2차원 시각화를 위해서 feature는 2개, 결정값 클래스는 3가지 유형의 classification 샘플 데이터 생성. X_features, y_labels = make_classification(n_features=2, n_redundant=0, n_informative=2, n_classes=3, n_clusters_per_class=1,random_state=0) # plot 형태로 ..