목록ML & DL (19)
코딜기
선형 회귀 분석(Linear Regression)이란 무엇일까요? 회귀 분석은 독립 변수(x)가 종속 변수(y)에 어떤 영향을 미치는지 알아보고자 할 때 실시하는 분석방법입니다. 선형 회귀는 데이터가 분포되어 있는 공간에서 데이터를 가장 잘 표현하는 선을 하나 긋는다고 생각할 수 있습니다. 다른 모델들 보다 모델 성능이 상대적으로 낮기 때문에 앙상블에서 하나의 모델이나 스태킹의 최종 계층에 적용하는 식의 용도로 주로 쓰이며, 과적합이 이루어지기 쉬운 데이터에서만 종종 사용합니다. 독립 변수(x)의 개수에 따라 단순(1개), 다중(2개 이상) 모델이 있습니다. 종속 변수(y)의 개수에 따라 단변량(1개), 다변량(2개 이상) 모델이 있습니다. 선형 회귀 분석의 비용 함수 최소 제곱법 : 실제 값과 회귀 모..
다중 분류의 로그 손실(logloss)이란 무엇일까요? logloss는 분류 문제의 대표적인 평가지표이며 교차 엔트로피(cross-entropy)라 부르기도 합니다. 실제 값을 예측하는 확률에 로그를 취하여 부호를 반전시킨 값입니다. 즉, 분류 모델 자체의 잘못 분류된 수치적인 손실값(loss)을 계산합니다. logloss는 낮을수록 좋은 지표입니다. 예측 값은 행 데이터 수 X 클래스 수의 행렬로 계산되고, 행 데이터가 속한 클래스의 확률을 낮게 예측하면 패널티가 크게 주어집니다. 또한 각 행 데이터에 대한 예측 확률의 합계는 1이 되어야 하므로 그렇지 않을 경우는 평가지표 계산에서 자동 조정됩니다. Python (다중 분류) from sklearn.metrics import log_loss # 데이터..
이진 분류의 로그 손실(logloss)이란 무엇일까요? logloss는 분류 문제의 대표적인 평가지표이며 교차 엔트로피(cross-entropy)라 부르기도 합니다. 실제 값을 예측하는 확률에 로그를 취하여 부호를 반전시킨 값입니다. 즉, 분류 모델 자체의 잘못 분류된 수치적인 손실값(loss)을 계산합니다. logloss는 낮을수록 좋은 지표입니다. 위 예시처럼 각 행 데이터가 양성일 확률을 낮게 예측했음에도 양성(1)일 경우나, 양성일 확률을 높게 예측했음에도 음성(0)일 경우에는 패널티가 크게 주어집니다. 위 그래프처럼 예측값이 1이 될 확률을 1로 정확하게 예측할 때 로그 손실의 값은 최소가 됩니다. Python (이진 분류) from sklearn.metrics import log_loss # ..
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이 용이합..