개발/Kaggle 36

ROC curve

데이터 분석을 하다보면 자주 나오는 것 중에 하나가 ROC curve입니다. 이게 뭔지 알아보면 저희는 confusion matrix 라는 애를 알아야하는데 얘가 나타내주는 것이 뭐냐하면 예를 들면 암을 예측하는 모델이 있다고 할 때 실제 데이터가 암인데 모델이 1. 암이 맞다 (TP - true positive) 2. 암이 아니다 (FP - false negative) 라고 2가지로 예측할 수 있습니다. 자, 그렇다면 얘를 그래프로 나타내보면 이런식으로 나타낼 수 있는데, TPR 부분이 1이고, FPR이 0인 부분이 가장 이상적입니다. 이 때문에, 머신러닝 모델의 정확도를 평가할 때 ROC 커브를 사용합니다. 참고 [1] - www.youtube.com/watch?v=nMAtFhamoRY

개발/Kaggle 2020.09.13

SVM

SVM(Support Vector Machine)에 대해서 알아보겠습니다. 이런 데이터셋이 있는데, 이 데이터셋을 구분해보고 싶은 겁니다. 그래서 이렇게 구분선을 긋는데 아래와 같이 구분해주는 항목(빨간색)기준으로 선을 긋습니다. 이 과정에서 빨간 선을 늘릴 수도 있고, 좁힐 수도 있습니다. 이 것을 margin이라고 합니다. 만약에 아래와 같이 좁게 했을 때 엄격하게 데이터를 구분합니다. 하지만, 오버피팅이 일어날 수 있습니다. 하지만 위와 같이 마진을 늘리면, 언더피팅이 일어날 수 있습니다. 그리고 gamma라는 개념이 나오는데, gamma라는 값을 늘리면 아래와 같이 구분선이 구불구불하게 그여집니다. 감마 값을 작게하면 아래와 같이 구불구불하지 않은 형태로 구성됩니다. 구현하면 아래와 같이 할 수 ..

개발/Kaggle 2020.07.20

보팅(Voting)이란

보팅은 앙상블 학습 방법 중에 하나입니다. 이름에서 볼 수 있듯이 다양한 머신러닝 모델을 가져와서 어떤 것이 좋은지 고르는 것 같은 느낌이 듭니다. 단순하게 투표 하는 방법도 있고 조금 다른 방법도 있습니다. 소프트보팅, 하드보팅 으로 나눠져있는데 하드보팅의 경우 각 모델들의 예측 값 중에 가장 많이 나온 값을 결과값으로 예측하고 소프트보팅의 경우 각각의 확률을 더해서 계산합니다. 일반적으로 소프트보팅이 성능이 더 좋습니다. 참조 [1] - http://www.dinnopartners.com/__trashed-4/ [2] - https://m.blog.naver.com/PostView.nhn?blogId=tkrkr1103&logNo=221525876528&proxyReferer=https:%2F%2Fww..

개발/Kaggle 2020.06.07

스택킹 (Stacking ensemble)

앙상블 방법 중에 하나인 Stacking이 있습니다. 기존의 학습 방법과는 조금 다른데 기존 학습 방법의 경우 1. 데이터를 Train, Test로 쪼갠다. 2. Train데이터를 이용해 머신러닝 알고리즘을 이용해서 머신러닝 모델을 학습하고 3. 머신러닝 모델을 가지고 Test데이터를 평가 이런 형태로 동작됩니다. 하지만 스태킹 앙상블의 경우는 약간 다른데 각각의 모델이 예측한 데이터를 다시 Training 데이터로 이용합니다. 1. 데이터를 Train, Test로 쪼갠다. 2. Train데이터를 이용해 머신러닝 알고리즘을 이용해서 머신러닝 모델을 학습하고 stacking은 여기서 각각이 머신러닝이 만들어낸 모델의 데이터를 기반으로 최종 데이터를 생성합니다. 3. 머신러닝 모델을 가지고 Test데이터를 ..

개발/Kaggle 2020.06.07