본문 바로가기

분류 전체보기126

KT AIVLE School 7주차 정리 - CNN's Layers 정리 강사님께서 연결주의 관점에서 설명해주시면서 함수로 묶어 하나의 레이어 처럼 인식하게 하면서 인간이 이해하기에 직관적인 느낌이 있었습니다. 그런데 이런 레이어들이 꽤 종류가 많아서 한번 정리를 해보고자 했습니다! Convolutional Layer 이미지 구조를 파괴하지 않으면서 데이터의 크기 축소 위치 정보를 보존 Feature Map 생성 Stride 꼭지점 쪽 정보를 반영이 덜되는 문제 발생 Feature Map을 훑는 간격 설정 model.add( Conv2D(filters=32, # feature map 의 수 이후 폭, 혹은 filter의 개수 [(이전 폭 - filtermap 폭) / 스트라이드 크기 + 1] -> 다음 레이어의 깊이 -> 필터의 커널의 개수 kernel_size=(3, 3),.. 2023. 3. 13.
KT AIVLE School 6주차 정리 - FI, PFI, SHAP FI (Feature Importance) 계산되는 방식이 2가지가 존재하기에 중요도 값의 단위를 확인할 필요가 있다. # 반복문을 돌면서 모델에 내장된 feature_importance_ 시각화 # results 는 딕셔너리 형태로 모델을 저장함 for key in results: if key in ['RL', 'KNNR', 'SVR']: continue tmp = pd.DataFrame({'feature_importance': results[key].feature_importances_, 'feature_names': list(x_train)}).sort_values('feature_importance', ascending=False)[:20] plt.figure(figsize=(16, 6)) sns.. 2023. 3. 10.
[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.