본문 바로가기

데이터 다루기/머신러닝 이론

(43)
[Machine Learning] Boosting (부스팅) 부스팅은 배깅이랑 비슷하면서도 약간 다릅니다. 배깅은 Raw data을 random sampling하여 bootstrap 표본을 만들고, 이 표본을 통해 모델을 각각 Train 하였습니다. 반면에 부스팅은, 우선 Input data는 고정을 하고, 모델을 Train 합니다. 그러면, 첫 모델에 대해서 맞춘 관측치와 틀린 관측치가 있을거잖아요? 다음 모델을 만들 때, 틀린 관측치를 더 잘맞추게 하기 위해서, 오차에 더 큰 가중치를 부여합니다. 이러한 과정을 N번 반복한 후, N개의 모델을 선형 조합하여 최종 예측 값을 출력합니다. 위의 그림을 보면 학습된 모델들이 Weak Classifier로 정의가 됩니다. 이는 Boosting을 할 때, 학습할 모델을 복잡한 모델을 사용하지 않고, 매우 단순한 모델을 ..
[Machine Learning] Bagging (배깅) 배깅(bagging)은 bootstrap aggregating의 줄임말입니다. ​ 배깅의 알고리즘에 대해서 먼저 배워보도록 하겠습니다. 배깅을 이해하기 쉽게 하기 위해서, 그림을 하나 그려보았습니다. 배깅을 크게 3개의 단계로 구성됩니다. ​ (1) Random Sampling 우선 Raw Data로 부터 동일한 크기의 표본 자료를 N번 Random sampling 합니다. 그러면 N개의 Train dataset을 만들 수 있습니다. 이를 붓스트랩 (bootstrap) 자료를 생성한다고 정의합니다. ​ (2) Training 위 절차에서 생성된 N개의 붓스트랩 자료들을 활용해서, N개의 모델을 학습합니다. ​ (3) Prediction N개의 모델을 모두 활용하여, Prediction 값을 얻습니다. R..
[Machine Learning] Elastic Net 녕하세요. 이번 포스팅에서는 Elastic Net에 대해서 배워보도록 할게요. Elastic Net은 Ridge Regression 과 Lasso Regression을 알면 굉장히 쉬운 개념입니다. Elastic Net Regression 은 Residual에 Ridge 와 Lasso의 패널티항을 모두 추가한 게 전부 입니다. 대표사진 삭제 사진 설명을 입력하세요. 정말 쉽죠?? 람다들을 바꿔가면서 Cross Validation 방법을 사용해, 최적의 람다들을 찾아주시면 됩니다. 대표사진 삭제 사진 설명을 입력하세요.
[Machine Learning] ROC 곡선 및 AUC 안녕하세요. 이번 포스팅에서는 ROC Curve (ROC 곡선)과 AUC 에 대해서 배워볼거에요. 이 두 가지는 실제로 Classification model 에서 굉장히 자주 쓰이는 데, 무엇을 의미하는 지를 모르고 쓰는 분들이 많은 것 같아요. 오늘은 핵심 개념을 잡아보고자 합니다. ​ ROC 곡선은 Classification model 에서 예측 threshold와 밀접한 관계가 있어요. Binary Classification이라 가정할 때, Logistic Regression을 하면 각 관측치에 대해서 1의 값을 가질 확률이 예측이 됩니다. 보통 0.5를 Threshold로 정하고, 0.5보다 크면 1, 작으면 0의 값을 Return 하게 되는거지요. ROC Curve는 이 Threshold를 바꿔..
[Machine Learning] Confusion Matrix 안녕하세요. 이번 포스팅에서는 Classification 머신러닝 모델의 성능 평가 지표로 많이 사용되는 Confusion Matrix (혼동 행렬) 에 대해서 배워보고자 합니다. ​ 혼동 행렬에서 사용되는 Accuracy (정확도), Sensitivity (민감도), Specifitify (특이도) 모두 굉장히 쉬운 내용이긴 하지만, 계속 까먹게 되는 점이 있더라구요. 아무래도 정의들이 다 비슷해서 그런 것 같아요. ​ 그래도 계속 외우다보면 성공하는 날이 올 거에요!! Classification Model 이 심장병 여부를 예측한다고 가정해볼게요. Confusion Matrix는 위와 같이 정의가 됩니다. 그리고 Accuracy (정확도), Sensitivity (민감도), Specifitify (특..
[머신러닝] Odds vs Odds Ratio 안녕하세요. 저번 포스팅에서 Odds (오즈) 에 대해서 배워보았어요. 많은 사람들이 Odds 와 Odds Ratio를 같은 개념으로 알고 계시더라구요. 하지만 이 둘은 엄연히 다른 개념입니다. ​ Odds에 대해서 복습해볼게요. Odds는 위와 깉이 어떤 일이 발생할 확률과 발생하지 않을 확률 사이의 비율을 의미해요. Odds ratio는 Odds 사이의 비율이라 생각하면 됩니다. 그렇다면 Odds ratio로 어떠한 정보를 얻을 수 있을까요?? Mutated gene을 보유한 환자가 없는 환자보다 암에 걸릴 확률이 더 높을지에 대해서 Odds ratio를 계산하면, 6.88배 더 높다는 정보를 얻을 수 있습니다. 즉, Odds ratio는 일반적으로 두 변수 사이의 관계를 나태내며, 큰 값을 가질수록..
[머신러닝] Odds (오즈) 란? [참조] StatQuest 안녕하세요. 이번 포스팅에서는 머신러닝 알고리즘에서 자주 쓰이는 Odds (오즈) 가 무엇인지에 대해서 배워볼게요. ​ A라는 사람이 8번의 경기를 치뤘다고 해보겠습니다. 그리고 A는 5번을 이기고 3번을 졌습니다. 경기를 승리하는 것에 대한 Odds는 A가 지는 것에 비해서 얼마나 이기는 가에 대한 값으로 5/3으로 쉽게 계산이 됩니다. 하지만, 알아두셔야 점이 바로 Odds 는 확률을 나타내는 것이 아니라는 것입니다. 위의 Case에서 A가 게임에서 이길 확률 p=5/8 입니다. 이 때, Odds는 p에 의해서 계산 되기도 합니다. Odds 는 (A가 게임에서 이길 확률 / A가 게임에서 질 확률) = p/(1-p)로 계산될 수 있습니다. 즉, 이를 다시 말하자면 Odds를..
[머신러닝] Gaussian Process Regression 안녕하세요. 이번 포스팅에서는 Gaussian Process Regression에 대해서 배워보도록 하겠습니다. 우선, Gaussian Process는 분포위의 함수라고 할 수 있습니다. 따라서 Gaussian Process또한 분포의 형태를 가집니다. 이 때, 중요한 것은 k(x1,x2)를 어떻게 정의하는 가 입니다. GPR은 정규분포를 따르는 두 개 x의 Covariance를 가까울수록 크게 만듭니다. 이 때, k(x1,x2)는 아래와 같이 정의되는데 이를 Squared exponential (SE) kernel이라 부릅니다. 이 때, 시그마 제곱과 l 값은 하이퍼파라미터입니다. 시그마 제곱이 크거나, l이 작아지면, K값이 커지기 때문에, 예측의 분산이 커집니다. 그 이유는 지금부터 살펴보겠습니다...