'분류 전체보기' 카테고리의 글 목록 (26 Page)
Data Analyst
300x250
300x250

분류 전체보기 366

XGBoost 튜닝 - 2

XGBoost 파라미터중 과적합을 방지하는 gamma, max_depth, subsample 3가지 파라미터를 튜닝 해보도록 하겠습니다. # X에 학습할 데이터를, y에 목표 변수를 저장해주세요 X = train.drop(columns=['index','quality']) y = train['quality'] # XGBoost의 하이퍼 파라미터의 범위를 dictionary 형태로 지정해주세요 ## Key는 XGBoost hyperparameter이름이고, value는 탐색할 범위 입니다. xgb_parameter_bounds = { 'gamma':(0,10), 'max_depth':(1,3), 'subsample':(0.5,1) } # 함수를 만들어주겠습니다. # 함수의 구성은 다음과 같습니다. # 1...

XGBoost 튜닝

이번 시간에는 Bayesian Optimization을 이영헤 XGBoost 모델을 튜닝해보도록 하겠다. 튜닝에 앞서 XGBoost의 하이퍼 파라미터를 알아보겠다. learning rate 기본값:0.3 - learning reate가 높을 수록 과적합하기 쉽다. subsample 기본값:1 - weak learner가 학습에 사용하는 데이터 샘플링 비율이다. - 보통 0.5 ~ 1 사용된다. - 값이 낮을수록 과적합이 방지된다. n_estimator 기본값:100 - 생성할 weak learner 수 - learning rate가 낮을 때, n_estimator를 높여야 과적합이 방지된다. max_depth 기본값:6 - 트리의 maximum depth이다 - 적정한 값이 제시되어야 하고 보통 3~10..

머신러닝 데이터 분석 5회차

UNIT 5-1 분류 및 군집화 문제 분류 vs 군집화 분류 - 지도학습 - 각 데이터 개체별로 class/label이 뭔지, 어떤 그룹에 속하는지 예측하는 문제 - 학습 데이터에 label정보가 필요함 군집화 - 비지도학습 - 데이터 유사도를 기반으로 군집을 형성하는 문제 - 학습 데이터에 특별한 amotation이 필요하지 않음 UNIT 5-2 Logistic Regression(Revision) LSE: 최소제곱법, error의 제곱의 합을 구해 그 합이 최소가 되도록 하는 것 MLE: 최대우도법, 원하는 결과가 나올 가능성을 최대로 만들도록 하는 것 Multiclass Logistic Regression Logistic Regression은 BInary Classification을 하기 위해 사용..

태블로 이해하기 - 2. 태블로 이해 및 설치하기

(1) 태블로란? '태블로' 는 데이터를 분석 및 시각화하는 Business Intelligence(이하 BI) 솔루션입니다. 이것은 비즈니스를 운영하면서 얻은 데이터를 수집, 저장, 분석하여 성과를 최적화하는 프로세스와 방법을 망라하는 포괄적인 용어입니다. 다시 말해 데이터를 활용해 최선의 의사결정을 내리고, 결과적으로 비즈니스 목표를 달성하게 만드는 모든 과정과 방법을 의미한다. '태블로'는 이러한 과정과 방법을 위한 솔루션으로써 '사람들이 데이터를 보고 이해할 수 있도록 돕고 있습니다. 태블로는 스스로 데이터를 이해하는 셀프 서비스 분석영역에서 조직과 조직 구성원이 데이터를 활용하는데 도움을 줍니다. 현재 태블로는 '데이터 분석 분야의 신뢰받는 리더' 로서 사람과 조직이 한층 더 데이터 기반의 의사..

태블로 이해하기 - 1. 디지털로 전환

(1) Digital Transformation 코로나 팬더믹 이후로 사회는 불확실성이 늘어나고 있습니다. 불확실하다는 것은 눈에 보이지 않아 결정하기 어렵다는 뜻으로 해석할 수 있습니다. 이 와중에도 확실한 것들은 있습니다. 비즈니스 과정에서 중요한 의사결정들을 데이터 기반으로 하는 것입니다. 데이터는 20세기의 원유와 같은 존재 정보 생성 및 처리 속도 급격하게 변화하였다. 우리가 사용하는 디바이스도 휴대성 + 이동성 => 24시간 끊임없이 데이터를 생성 => 데이터 활용 고객 맞춤 추천 서비스 (2) Data Literacy = 데이터를 보고 활용할 수 있는 능력 데이터를 보는 것이 아니라 탐색을 통해 자신이 이해하고, 이를 다른 사람과 대화와 협업을 통해 찾은 통찰을 공유하는 능력 태블로를 도입하..

Bayesian Optimization 실습

이번 시간에는 Bayesian Optimization 실습을 진행 하도록 하겠다. 실습의 순서는 크게 다음과 같다. 변경할 하이퍼 파라미터의 범위를 설정한다. Bayesian Optimization 에 필요한 함수 생성 Bayesian Optimization를 이용해 하이퍼 파라미터 튜닝 # X에 학습할 데이터를 , y에 목표 변수를 저장해주세요 X = train.drop(columns=['index','quality']) y = train['qualit'] # 랜덤포레스트의 하이퍼 파라미터의 범위를 dictionary 형태로 지정해주세요 # Key는 랜덤포레스트의 hyperparameter 이름이고, value는 탐색할 범위이다. rf_parmeter_bounds={ 'max_depth' : (1,3)..

Bayesian Optimization 복습

튜닝 부분에서 Randomforest, XGBoost, Light GBM 총 3개의 모델을 튜닝하고 Voting Classifier로 만드는 과정을 진행 할 예정이다. 모델을 튜닝 하기전에 우선 진행했던 Bayesian Optimization에 대해 복습하는 시간을 갖도록 하겠습니다. Bayesian Optimization 우리가 흔히 알고 있는 하이퍼 파라미터 튜닝방법은 Grid Search, Random Search 이다. Grid Search란 가능한 하이퍼파라미터 경우의 수를 일정 구간으로 나눠 구간별로 균일하게 대입해보는 방식이다. 간격을 어떻게 잡을지 정하는 것이 문제고, 시간이 너무 오래걸린다는 단점이 있다. Random Search란 가능한 하이퍼파라미터 조합을 random하게 선택해서 대..

Voting Classifier 실습

오늘은 이전 시간에 배운 Voting Classifier실습을 진행 하도록 하겠다. Voting Classifier에는 Hard voting 과 Soft voting 두 개중 Soft Voting을 이용 할 예정으로 VotingClassifier은 sklearn라이브러리에서 제공하겠다. from sklearn.ensemble import VotingClassifier VC = VotingClassifier(estimators=[('rf',RF),('xgb',XGB),('lgbm',LGBM)],voting='soft') from lightgbm import LGBMClassifier from xgboost import XGBClassifier from sklearn.ensemble import Voting..

Voting Classifier 정의

Voting Classifier란 여러개의 모델을 결합하여 더 좋은 예측 결과를 도출하는 앙상블 기법 중 하나이다. Voting Classifier에는 hard voting 방법 과 soft voting 방법이 있다. Hard Voting Hard Voting은 Majority Voting이라고도 하며, 각각의 모델들이 결과를 예측하면 각 모델의 예측을 모아 다수겨 투표로 최종 예측 결과를 선정하는 방식이다. 그림을 보면 첫 번째 분류기는 0.9의 확률로 생존을 선택, 두 번째 분류기는 0.6확률로 사망을 선택, 세번째 분류기는 0.7의 확Voting Classifier 률로 사망을 선택하였다. 생존을 선택한 모델이 1개, 사망을 선택한 모델이 2개이기때문에 Voting Classifier은 최종적으로 ..

stratified k-fold 실습

지난 시간에 Stratified K-fold 개념에 대해 배웠다. Stratified K-fold란, K-fold의 문제점인 target 데이터의 비율을 일정하게 유지하며, 교차 검증을 진행하는 것이다. 이번 시간에는 stratified k-fold와 Light GBM 을 이용해 와인 품질 분류를 실습해보도록 하겠다. # Stratified K-folde라이브러리를 이용해 5개의 fold로 나눔 skt = StrarifiedKFold(n_splits=5) X = tarin_onde.drop('quality',axis=1) y = train['quality'] cnt = 1 acc = 0 for train_idx, valid_idx in skf.split(X,y): train_data = train.ilo..

300x250
300x250