목록EDUCATION/DSS Online 6기 (144)
STUDY_SEONMIN
분류문제에서 각 클래스에 속하는 데이터의 수가 비대칭을 이루게 되면 모델의 정확도가 높더라도 재현율이 급격히 작아지는 현상이 발생할 수 있습니다. 희귀병을 진단하는 모델을 만든다고 가정하였을 때 애초에 희귀병에 걸린 사람들의 데이터가 워낙 적기 때문에 "모든 입력 데이터에 대해서 희귀병이 아니다"라고 판단하는 모델일지라도 정확도가 높게 나오게 됩니다. 하지만 희귀병 진단 모델의 목적은 희귀병에 걸린 사람들을 잘 걸러내는 것이므로 재현율 역시 중요한 지표가 되는데, 위와 같은 모델의 경우 재현율은 0이 되어 안 좋은 모델이 됩니다. 비대칭 데이터 문제에서는 이렇게 정확도만 높고 재현율이 낮은 안 좋은 모델로 학습이 될 우려가 있으므로 몇 가지 방법들을 이용해 비대칭 문제를 개선해야 합니다. 언더 샘플링 1..
대규모의 데이터를 기반으로 예측 모형을 만들게 되면 RAM 용량의 문제나 모델 학습 계산량의 문제로 데이터를 줄여야 하는 경우가 있습니다. 이번 포스팅에서는 독립변수의 갯수가 너무 많아 문제가 될 때 중요하다고 생각되는 독립변수들을 선택하는 방법에 대해서 다루도록 하겠습니다. 독립변수를 선택하는 것은 이번 포스팅에서 설명하는 방식 외에도 더 다양한 방식이 있을 수 있고, 해당 분야에 대한 도메인 지식을 바탕으로 선택할 수도 있다는 점 참고 부탁드립니다. 분산에 의한 선택 예측 모형을 만들 때 중요한 변수는 종속변수와 상관관계를 보이는 변수들일 것입니다. 하지만 독립변수 자체의 분산이 워낙에 작다면, 해당 독립변수는 데이터에 따라 거의 달라지지 않는 다는 의미이고 이는 곳 예측 모형에 그닥 도움이 되지 않..

데이터분석에서 적절한 모형을 선택하고 난 뒤에는 하이퍼 파라미터 튜닝을 통해 모형을 최적화 시켜야 합니다. 하이퍼 파라미터 튜닝 with Scikit-learn sklearn 패키지에서는 하이퍼 파라미터 튜닝을 위한 도구를 지원합니다. 1) validation curve 단일 하이퍼 파라미터 튜닝 시 사용할 수 있는 도구 from sklearn.model_selection import validation_curve train_scores, test_scores = validation_curve( base_model, X, y, param_name = , param_range = , cv = , scoring = , n_jobs = ) # base_model : 하이퍼 파라미터 튜닝을 할 모형 # para..

서포트벡터머신은 $w^Tx - w_0$과 같은 선형함수를 이용해서 데이터를 분류합니다. 따라서 데이터가 선형함수로 분류하기 힘든 형태로 분포해있다면 좋은 성능을 보이지 못합니다. 예시 그림을 보면 1사분면과 3사분면에 있는 데이터들이 같은 클래스, 2사분면과 4사분면에 있는 데이터들이 같은 클래스를 갖고 있습니다. 이럴 경우 하나의 선을 기준으로 데이터를 제대로 분류해내는 것은 사실상 불가능한 일입니다. 선형함수로 분류하기 힘든 형태의 데이터도 분류하고자 하는 생각으로 만들어진 것이 커널 서포트벡터머신입니다. 비선형 판별 모형 위와 같이 $x$에 대한 선형함수로 분류가 되지 않는 경우에는 $x$대신 $x$를 어떤 비선형함수에 집어넣은 결과인 $\phi(x)$를 이용하는 방법이 도움이 됩니다. $$ x =..

데이터를 분류하는 선형판별함수를 생각해낸다고 했을 때 데이터를 완벽히 분류하는 단 하나의 선형판별함수가 아닌 여러 개의 선형판별함수가 나올 수 있습니다. 이렇게 여러 선형판별함수가 나올 수 있다고 하였을 때 가장 안정적인 선형판별함수를 만들어 내는 방법이 바로 서포트 벡터 머신입니다. SVM 서포트벡터머신에 대해 설명하기 전에 먼저 "가장 안정적인 선형판별함수"를 찾는 것은 무슨 의미일까요? 안정적이라는 것은 판별함수가 한 쪽의 데이터그룹으로 너무 붙지 않고 양 그룹의 중간 즈음에 적당히 위치하면서도, 판별선과 그룹간의 거리가 최대한 멀리 떨어진 함수를 찾겠다는 의미입니다. 위의 그림에서 만약 판별함수가 O쪽으로 바싹 붙어있게 되면 O근처에 새로운 데이터가 들어오더라도 X라고 분류하게 되는 결과를 야기할..

이번 포스팅에서는 앙상블 모델을 만드는 방법 중 "부스팅"에 대해 알아보겠습니다. 부스팅 취합방법론에서는 미리 정해진 갯수의 개별 모형들을 사용했다면 부스팅 방법에서는 하나의 모형에서 시작하여 결합할 모형을 하나씩 추가하는 방법입니다. 부스팅 방법에서는 사용한 개별 모형들의 집합을 "위원회($C$)"라고 하며 $m$개의 모형을 포함하고 있는 위원회는 $C_m$으로 표시합니다. 그리고 위원회에 들어가 있는 개별 모형을 약 분류기(weak classifier)라고 하며 $k$로 표시합니다. $$ C_1 = \{k_1\} $$ $$ C_2 = C_1 \cup k_2 = \{k_1, k_2\} $$ $$ C_3 = C_2 \cup k_3 = \{k_1, k_2, k_3\} $$ $$ \vdots $$ $$ C_..

분류 문제를 해결하는 방법 중 앙상블 모델을 사용하는 방법이 있습니다. 앙상블 모델 앙상블 모델은 분류 문제를 해결하기 위한 여러 모델들을 결합한 모델입니다. 모델을 결합하는 방법에는 "취합 방법론"과 "부스팅 방법론"이 있습니다. 일반적으로 앙상블 모델을 사용하게 되면 과최적화 문제를 방지할 수 있고, 개별 모델의 성능이 엄청 뛰어난 것이 아닌 이상 앙상블 모델이 더 좋은 성능을 보이는 경우가 많습니다. 이번 포스팅에서는 앙상블 모델을 만드는 방법 중 취합방법론에 대해 알아보겠습니다. 취합 방법론 취합 방법론은 미리 어떤 모델들을 결합할 지를 정해놓고 모델을 결합하는 방법입니다. 대표적으로 1) 다수결, 2) 배깅, 3) 랜덤포스레트 가 있습니다. 1) 다수결 방법 모델을 결합할 때 다수결 투표방식으로..

의사결정나무는 분류문제에서 주로 사용되긴하지만, 회귀문제에서도 사용할 수 있어 "CART"(Classification And Regression Tree)라고 불립니다. 이번 포스팅에서는 의사결정나무를 이용해 분류문제를 해결하는 과정에 대해 알아보겠습니다. 의사결정나무 의사결정나무는 마치 스무고개와 같은 방식으로 여러 질문들을 계속해서 던지며 데이터를 분류해나가는 분류 모형입니다. 위의 사진에서 우리는 1) 집에 머무르기, 2) 해변에 가기, 3) 런닝하기, 4) 영화 보기 중 하나를 선택(분류)하기 위해서 몇 가지 질문을 던지게 됩니다. 첫 번째 질문으로는 "해야할 일이 있는지?"를 물어 대답이 Yes라면 1)집에 머무르기를 선택하게 됩니다. 대답이 No 라면 이번에는 "날씨가 어떤지?"를 물어 해가 ..

나이브 베이즈 분류모형은 독립변수들끼리 조건부 독립이라는 가정하에 가능도를 계산하여 $x$가 어떤 클래스에 속할지를 판단하는 모형입니다. 조건부 독립 - 조건부독립이란 어떤 조건하에서 두 확률변수가 서로 독립인 것을 의미합니다. $$ P(A, B \mid C) = P(A \mid C) P(B \mid C) $$ - 만약 두 확률변수가 서로 조건부독립이라면 다음과 같은 성질을 만족시킵니다. $$ P(A \mid B,C) = P(A\mid C) \\ P(B \mid A,C) = P(B \mid C) $$ - 조건부독립은 무조건부독립과($P(A,B) = P(A)P(B)$)는 아무런 관계가 없습니다. 나이브 가정 - 독립변수들끼리 서로 조건부독립이라는 가정입니다. - 이러한 가정을 이용하는 분류 모형을 나이브 ..

판별분석법은 확률론적 생성모형의 한 종류입니다. 확률론적 생성모형은 베이즈정리를 사용하여 주어진 $x$에 대한 $y$의 확률분포를 찾아내는 방법입니다. $$ P(y=k \mid x) = \frac{P(x \mid y=k) P(y=k)}{P(x)} $$ 각각의 클래스에 대해서 확률을 계산한 후 가장 확률이 큰 클래스를 $x$의 클래스라고 이야기합니다. 다만 여기서 $P(x)$의 값은 클래스에 따라서 달라지지 않으므로, 클래스에 따른 확률값을 비교하는 데에는 $P(x)$가 의미가 없으므로 보통 $P(x \mid y=k)P(y=k)$ 값을 비교하여 $x$의 클래스를 결정합니다. 판별분석법의 종류 - 이차판별분석법(QDA) - 선형판별분석법(LDA) 이차판별분석법(QDA) - 독립변수가 $x$가 실수로 이루어진..