본문 바로가기

AI14

[CatBoost] 알아보기 KT AIVLE School에서 미니 프로젝트 2차 때 저에게 현자타임을 안겨준 엄청난 분류 성능을 가진 CatBoost를 정리합니다. Pool 사용하기 train_pool = Pool(x_train, y_train) eval_pool = Pool(x_val, y_val) test_pool = Pool(x_test) model = CBC(iterations=100, # depth=2, # learning_rate=1, loss_function='Logloss', random_seed=1, task_type="GPU", verbose=True) model.fit( train_pool, # cat_features=cat_features, eval_set=eval_pool, plot=True ) y_pred .. 2023. 3. 9.
[HyperOpt] 베이지안 최적화 알아보기 모듈 설치 !pip install hyperopt 모듈 가져오기 import hyperopt from hyperopt import hp from hyperopt import STATUS_OK from hyperopt import fmin, tpe, Trials from sklearn.metrics import accuracy_score as accuracy 검색 공간 설정 search_space = { 'max_depth': hp.quniform('max_depth', 3, 15, 1), 'min_child_weight': hp.quniform('min_child_weight', 1, 3, 1), 'learning_rate': hp.uniform('learning_rate', 0.005, 0.2), 'c.. 2023. 3. 9.
[Scikit-learn] pipeline 이해하기 인터넷에서 코드를 뒤져가며 공부를 하다보니 어떻게하면 효율적인 코드를 짤 지, 직관적이며 유지관리보수가 편한 코드가 무엇일 지 궁금증에 찾아봤습니다. 이걸 찾아본 이유는 KT AIVLE School 에서는 변수선택, 스케일링, 원핫인코딩, 전처리 등의 과정을 계속해서 반복하는 것이 학습에는 매우 좋았으나 코드를 유지보수하는 측면에서는 너무 답답했습니다.. ㅠㅠ 그래서 Pipeline에 대해서 공부를 했습니다! PipeLine 사용해보기 from sklearn.pipeline import Pipeline from lightgbm import LGBMClassifier as LGBMC pipe = Pipeline([ ('Feature_Selection', SelectKBest(f_classif, k=2)),.. 2023. 3. 9.
[scikit-learn] KFold 와 StratifiedKFold 의 차이 크게 중요하지는 않지만 알아두면 좋을 것 같아서 글을 적어둡니다! 인터넷에 널린 코드들을 보다보니 StratifiedKFold 라는 함수가 보여서 AIVLE School 에서 배우지 않았던 개념이었습니다! KFold 회귀 문제(회귀의 결정값은 연속된 숫자값이기 때문에 결정값 별로 분포를 정하는 의미가 없기 때문 StratifedKFold 레이블 데이터가 왜곡됬을 경우 반드시. 일반적으로 분류에서의 교차 검증 참고: https://velog.io/@ohxhxs/%ED%8C%8C%EC%9D%B4%EC%8D%AC-%EB%A8%B8%EC%8B%A0%EB%9F%AC%EB%8B%9D-%EA%B5%90%EC%B0%A8%EA%B2%80%EC%A6%9D-KFold-StratifiedKFold-crossvalscoreGr.. 2023. 3. 9.
[Pandas] index 활용 정리 멀티 컬럼, 멀티 인덱스 등 바로 사용하기엔 괴이한? 인구 데이터를 보기도 했었고, 에이블스쿨에서 실습했었던 데이터에도 index를 활용해서 전처리를 하는 예제가 있어서 정리를 해보려한다! 인덱스의 컬럼명 설정 df.set_index('인덱스컬럼명', inplace=True) 인덱스 변경 df.set_index('기존에 있는 컬럼명', inplace=True, append=False, drop=True) drop: 기존 인덱스 값들을 제거할지 말지 설정 append: 기존 인덱스를 유지하고 인덱스를 추가할지 말지 설정 멀티 인덱스를 하려면 리스트로 감쌀 것 인덱스 초기화 df.reset_index(drop=False, inplace=False) 전처리 과정에서 행을 제거한 경우 다시 index를 설정 d.. 2023. 3. 6.
[lightGBM] 파라미터, 메소드, 어트리뷰트 파헤치기 lightgbm.LGBMClassifier( boosting_type='gbdt', num_leaves=31, max_depth=-1, learning_rate=0.1, n_estimators=100, subsample_for_bin=200000, objective=None, class_weight=None, min_split_gain=0.0, min_child_weight=0.001, min_child_samples=20, subsample=1.0, subsample_freq=0, colsample_bytree=1.0, reg_alpha=0.0, reg_lambda=0.0, random_state=None, n_jobs=None, importance_type='split', **kwargs ) skle.. 2023. 3. 3.