본문 바로가기

Machine Learning/분류(Classification)

(10)
Classification - 모델 평가 : roc_auc_score https://steadiness-193.tistory.com/267 Classification - 모델 평가 : precision_score(정밀도), recall_score(재현율), f1_score [민감도(sensitivity)] 환자를 찾아냄 (양성을 찾음), 질병이 있는 사람을 질병이라 진단 [특이도(specificity)] 정상을 찾아냄 (음성을 찾음), 정상인 사람을 정상으로 진단 민감도와 특이도는 서로 반대 steadiness-193.tistory.com 위 포스팅에서 필요한 내용을 다시 환기하면 아래와 같다. ROC Curve(Receiver-Operating Characteristic curve) 민감도와 특이도의 관계가 보이는 양상을 2차원 평면상에 그려낸 것 민감도를 높이면 특이도..
Classification - 모델 평가 : precision_score(정밀도), recall_score(재현율), f1_score [민감도(sensitivity)] 환자를 찾아냄 (양성을 찾음), 질병이 있는 사람을 질병이라 진단 [특이도(specificity)] 정상을 찾아냄 (음성을 찾음), 정상인 사람을 정상으로 진단 민감도와 특이도는 서로 반대로 움직이는 경향을 보인다. True or False 예측 예측 결과 실제 결과 True Positive, TP + 양성 +양성 양성이 맞음 양성 True Negative, TN + 음성 +음성 음성이 맞음 음성 False Positive, FP - 양성 -양성 양성이 틀림 음성 False Negative, FN - 음성 -음성 음성이 틀림 양성 민감도(sensitivity) 양성으로 예측한 사람 중 실제 양성인 사람 (TP) / 실제 양성인 사람 (TP + FN) 특이도(specifi..
Classification - predict_proba (log_loss) [log_loss] log_loss는 분류 모델의 손실 함수로 사용되며 Cross Entropy라고도 불림 log_loss는 정확한 label값 (0, 1, ..)을 맞히는 것이 아닌, 모델이 그 클래스를 예측할 확률을 이용해서 평가하는 지표 모델의 fit 이후 predict_proba를 이용하면 각 클래스별 예측 확률을 array형태로 리턴함 현재 학습한 확률이 특정 확률에 대한 참값(목표 확률)에 가까울 수록 cross entropy는 낮아짐 from sklearn.metrics import log_loss model.fit(X_train, y_train) y_pred = model.predict_proba(X_valid) log_loss(y_valid, y_pred) log_loss는 손실이므로 값..
Classification - LGBMClassifier Gradient Boosting 알고리즘 기반의 단점을 보완한 xgboost에도 아쉬운 점이 있다. 바로, 여전히 속도가 느리다는 것이다. 이를 다시 보완하기위해 나온 것이 LightGBM이다. [LightGBM] XGboost보다 가볍고 더 나은 성능을 보이며 메모리도 더 적게 사용한다. XGboost의 균형 트리 분할 방식 (level-wise)가 아닌 리프 중심 분할 방식 (leaf-wise)을 사용해 비대칭적 트리를 형성하므로 균형을 잡기 위한 연산을 하지 않는다. lightgbm의 장단점 장점 단점 xgboost의 장점을 차용한다. 데이터의 양이 적다면 과적합될 가능성이 있다. (leaf-wise) xgboost 보다 빠르고 좋은 성능, 더 적은 메모리 https://steadiness-193...
Classification - XGBClassifier [XGBoost] 부트스트래핑(Bootstrapping) 방식의 앙상블 알고리즘 부트스트래핑 : 임의로 샘플 및 변수를 선택하여 학습 부스팅 알고리즘 (Boosting algorithm) 각 트리(이터레이션)가 맞히지 못한 샘플에 대해 가중치를 부여, 추후 학습할 때 가중치를 반영하여 새로운 트리를 생성 XGBoost는 균형 트리 분할 방식(level-wise)으로 모델을 학습하여 대칭적 트리를 만듦 XGBoost의 장점 1. 강력한 병렬 처리로 학습과 처리가 빠름 (Gradient Boosting Model 대비 빠른 것) 2. Greedy-algorithm을 이용, 자동 가지치기(Pruning)가 가능 과적합(Overfitting) 방지 3. 자체 교차검증 알고리즘 탑재 4. 결측치 자체 처리 5. ..
Classification - RandomForestClassifier https://steadiness-193.tistory.com/257 Machine Learning - valid와 test를 train으로 전처리 https://steadiness-193.tistory.com/256 Machine Learning - train_test_split https://steadiness-193.tistory.com/253 Machine Learning - 랜덤으로 train과 test로 나누기 데이터 불러오기 seaborn의 iris 데.. steadiness-193.tistory.com 위 포스팅에서 만든 데이터셋을 이용한다. [RandomForestClassifier] 여러 개의 모델을 합치는 앙상블의 대표적 모델 서로 다른 변수 셋으로 여러 트리를 생성 [파라미터] n_..
Classification - DecisionTreeClassifier [DecisionTreeClassifier] 각 영역의 복잡도가 낮은 기준점으로 잘라(분기) 트리 형태의 구조로 분류하는 모델 Greedy한 알고리즘 : 분기를 한번 하면 최적의 트리 형태가 발견되더라도 되돌려서 재분기하지 않음 최적의 트리 생성을 보장하지 않기에 속도가 빠름 [파라미터] - max_depth : 생성할 DecisionTree의 깊이 (int) - max_features : DT가 사용하는 feature의 수 (float) - min_samples_split : 구간의 데이터 수가 N개 미만이면 더이상 분기하지 않음 (int) 과적합 방지 - max_leaf_nodes : 리프 노드에서 최대로 가지고 있을 수 있는 데이터의 수 (int) - random_state : 난수 (int) 복잡..
Classification - SVM 서포트 벡터 머신 https://steadiness-193.tistory.com/257 Machine Learning - valid와 test를 train으로 전처리 https://steadiness-193.tistory.com/256 Machine Learning - train_test_split https://steadiness-193.tistory.com/253 Machine Learning - 랜덤으로 train과 test로 나누기 데이터 불러오기 seaborn의 iris 데.. steadiness-193.tistory.com 위 포스팅에서 만든 데이터셋을 이용한다. 분류이기 때문에 SVM에서의 SVC를 불러왔다. 아무 파라미터 없이 기본으로 SVC로 예측한 뒤 정확도를 평가했다. [Support Vector Ma..