목록분류 전체보기 (76)
코딜기
F score란 무엇일까요? F score는 정밀도(precision)와 재현율(recall)의 조화평균으로 계산되는 지표입니다. 가장 많이 쓰이는 지표로는 β = 1인 F1-score가 있습니다. 정밀도(precision)와 재현율(recall), TP, FP, FN에 대한 정보는 여기에서 확인 가능합니다. Fβ - score Fβ-score는 정밀도와 재현율의 조화평균 식에서 계수 β에 따라 재현율에 가중치를 주어 조정한 지표입니다. Python from sklearn.metrics import fbeta_score # 데이터 스플릿으로 y_valid와 모델 예측으로 y_pred를 구한 후 실행 # 모델 검정이 없다면 y_true값으로 y_valid 대체 fbeta = fbeta_score(y_val..
ROC와 AUC란 무엇일까요? ROC Curve(Receiver-Operating Characteristic curve)는 민감도와 특이도가 서로 어떤 관계를 가지며 변하는지를 2차원 평면상에 표현한 Curve입니다. AUC(Area Under Curve)는 ROC Curve의 면적을 뜻하고, 1에 가까울수록 좋은 모델을 의미합니다. FP와 TP에 대한 개념은 여기에서 확인 가능합니다. AUC(Area Under Curve) from sklearn.metrics import roc_auc_score # 데이터 스플릿으로 y_valid와 모델 예측으로 y_pred_proba를 구한 후 실행 # 모델 검정이 없다면 y_true값으로 y_valid 대체 auc = roc_auc_score(y_valid, y_..
혼동 행렬(Confusion Matrix)란 무엇일까요?? 혼동 행렬 또는 오차 행렬이라 불리는 Confusion Matrix는 분류 모델의 평가지표로 많이 쓰입니다. 혼동 행렬은 각 데이터의 실제 클래스와 예측된 클래스의 개수를 조건에 맞게 행렬 성분에 채워 넣은 것입니다. 혼동 행렬에서는 정확도(Accuracy), 정밀도(Precision), 재현율(Recall) 등의 지표를 구할 수 있습니다. from sklearn.metrics import confusion_matrix # 데이터 스플릿으로 y_valid와 모델 예측으로 y_pred를 구한 후 실행 # 모델 검정이 없다면 y_true값으로 y_valid 대체 confusion_matrix = confusion_matrix(y_valid, y_pr..
LightGBM란 무엇일까요? LightGBM은 분류, 회귀 문제에 모두 사용할 수 있는 강력한 모델입니다. 각 이터레이션에서 맞추지 못한 데이터에 가중치를 부여하여 모델을 학습시키는 부스팅(Boosting) 계열의 트리 모델입니다. 강력한 병렬 처리 성능과 자동 가지치기 알고리즘이 적용되어 Gradient Boosting Model 대비 빠른 속도를 갖습니다. 과적합 규제 기능(Regularization)의 이점이 있습니다. 또한 자체 교차 검증 알고리즘과 결측치 처리 기능을 가지고 있습니다. 리프 중심 트리 분할 방식으로 비대칭적인 트리를 형성하여 모델을 학습하고, 예측 오류 손실을 최소화합니다. Early Stopping 기능이 있습니다. 성능이 좋은 XGBoost와 성능은 비슷하지만 속도가 훨씬 ..
모델 앙상블(Model Ensemble)이란 무엇일까요? 각 기법에 맞게 여러 개의 의사결정 나무를 만들고, 이들을 조화롭게 학습시켜 모델의 예측력을 높이는 과정입니다. 앙상블 모델의 핵심은 약한 분류 모델들을 결합하여 강한 분류 모델을 만들어 예측력을 높이는 것입니다. 앙상블 기법은 대표적으로 배깅(Bagging)과 부스팅(Boosting)이 있습니다. 배깅 (Bagging) 배깅(Bagging)은 Bootstrap Aggregation의 약자로 데이터 샘플을 여러 번 뽑아 모델을 학습시키는 기법입니다. 배깅은 학습 데이터의 부분집합을 랜덤 하게 만들어 의사결정 나무를 만듭니다. 학습 데이터에 총 1000개의 행이 있을 때 랜덤으로 100개씩 행을 선택해서 의사결정 나무를 만듭니다. 배깅은 예측 모델의..
이진 분류(Binary Classification)란 무엇일까요? 머신러닝과 통계학에서의 분류는 새로 관측된 데이터가 어떤 범주 집합에 속하는지 식별하는 것을 말합니다. 모델이 데이터에 의해 학습이 되면 모델은 결정 경계(Decision Boundary)라는 데이터를 분류하는 선을 만듭니다. 이후 새로 관측된 데이터는 결정 경계에 의해 소속 범주가 정해지게 됩니다. 이진 분류에서는 결정 경계로 인해 데이터가 2개의 범주로 나뉩니다.
XGBoost란 무엇일까요? XGBoost는 분류, 회귀 문제에 모두 사용할 수 있는 강력한 모델입니다. 각 이터레이션에서 맞추지 못한 데이터에 가중치를 부여하여 모델을 학습시키는 부스팅(Boosting) 계열의 트리 모델입니다. 강력한 병렬 처리 성능과 자동 가지치기 알고리즘이 적용되어 Gradient Boosting Model 대비 빠른 속도를 갖습니다. 과적합 규제 기능(Regularization)의 이점이 있습니다. 또한 자체 교차 검증 알고리즘과 결측치 처리 기능을 가지고 있습니다. 균형 트리 분할 방식으로 모델을 학습하여 대칭적인 트리를 형성합니다. Early Stopping 기능이 있습니다. XGBoost의 대표적인 파라미터 다룰 수 있는 파라미터가 많기 때문에 Customizing이 용이합..
랜덤 포레스트 (Random Forest)란 무엇일까요? 랜덤 포레스트는 분류, 회귀 문제에 모두 사용할 수 있는 강력한 모델입니다. 이전 포스팅에서 다뤘던 의사결정 나무를 여러개 사용하여 문제를 해결하는 방식으로 작동합니다. 랜덤 포레스트는 의사결정 나무가 여러개 모인 숲입니다. (의사결정 나무의 앙상블 모델) Decision Tree는 나무 하나로 예측을 했다면 Random Forest는 여러 나무를 통해 종합된 결과를 바탕으로 예측합니다. 과적합이 될 가능성이 높은 의사결정 나무의 단점을 보완한 모델입니다. 학습 데이터의 부분집합을 랜덤하게 만들어 의사결정 나무를 구축하는 배깅(Bagging) 계열의 트리 모델입니다. 분류 모델에서는 각 트리의 결과값의 다수결로 최종 분류가 이루어집니다. 회귀 모델..
의사결정 나무(Decision Tree)란 무엇일까요? 의사결정 나무(Decision Tree)는 분류, 회귀 문제에 모두 사용할 수 있는 강력한 모델입니다. 의사결정 나무는 입력 변수를 특정한 기준으로 분기해 트리 형태의 구조로 분류하는 모델입니다. 불순도 (Impurity, Entropy) 불순도란 정보 이론에서 말하는 얻을 수 있는 정보량의 정도를 뜻하고, 이는 분기된 하나의 범주안에 서로 다른 데이터가 얼마나 섞여있는지를 의미합니다. 하나의 범주에 여러 종류의 데이터가 속해있으면 불순도는 높아집니다. 데이터를 분기할 때 현재 노드보다 자식 노드의 불순도가 감소되도록 분기해야 합니다. 불순도를 수치적으로 나타낼 수 있는 함수가 불순도 함수이고, 지니계수와 엔트로피 계수가 있습니다. 1. 지니 계수 ..
서포트 벡터 머신(Support Vector Machine)이란 무엇일까요? 서포트 벡터 머신(이하 svm)은 분류, 회귀 문제에 모두 사용할 수 있는 강력한 모델입니다. 데이터를 구분 짓는 가장 올바른 결정 경계는 무엇일까요? 사실 '올바르다'라는 기준은 각 모델마다 다르겠지만 계속해서 새로운 데이터가 입력이 되었을 때 모두 비슷한 예측력을 갖게 하는 결정 경계가 올바른 결정 경계라고 할 수 있습니다. 바로 이 올바른 결정 경계를 정의하고, 만들어 주는 모델이 서포트 벡터 머신입니다. 그렇다면 최적의 결정 경계는 어떻게 만들 수 있을까요? 학습용 데이터를 통해 각 클래스 사이의 가장 근접한 벡터를 찾아내고, 이 두 벡터를 지나는 각각의 직선을 그립니다. 그려진 두 개의 직선이 평행하도록 만들어준 후 정..