본문 바로가기

R/R을 이용한 데이터 처리&분석 실무

(39)
클래스 불균형 구분할 각 분류에 해당하는 데이터의 비율이 반반이 아닌 경우 훈련 데이터 내 비율이 높은 분류 쪽으로 결과를 내놓는 모델을 만들게 될 수 있다. 이런 상황을 클래스 불균형(Class Imbalance)이라고 한다. 이 절에서는 클래스 불균형의 예와 해결 방법을 알아본다. 예를 들어, 다음의 유방암 데이터를 보자. > library(mlbench) > data(BreastCancer) > table(BreastCancer$Class) benign malignant 458 241 유방암 데이터의 양성(benign)의 수는 458, 악성(malignant)의 수는 241이다. 이 데이터로 기계 학습 모델을 만들면 주어진 입력에 대해 benign을 결과로 줄 확률이 malignant를 줄 확률에 비해 높아진다...
서포트 벡터 머신 서포트 벡터 머신(SVM, Support Vector Machine)은 서로 다른 분류에 속한 데이터 간에 간격이 최대가 되는 선(또는 평면)을 찾아 이를 기준으로 데이터를 분류하는 모델이다. 서포트 벡터 머신 모델 그림 10-10에 서포트 벡터 머신의 개념을 그림으로 나타냈다. 흰색 원과 검은색 원은 서로 다른 분류를 뜻한다. 서포트 벡터 머신은 각 분류에 속하는 데이터로부터 같은 간격으로, 그리고 최대로 멀리 떨어진 선 또는 평면을 찾는다. 이러한 선 또는 평면을 최대 여백 초평면(Maximum Margin Hyperplane)이라고 하고, 이 평면이 분류를 나누는 기준이 된다. 그림 10-10에서는 대각선 방향의 직선이 최대 여백 초평면에 해당한다. 그리고 이 직선과 가장 가까운 각 분류에 속한 점..
신경망 신경망(Neural Network)은 인간의 뇌를 본 따서 만든 모델이다. 신경망에는 뉴런을 흉내 낸 노드들이 입력층(Input Layer), 은닉층(Hidden Layer), 출력층(Output Layer)으로 구분되어 나열되어 있다. 입력층에 주어진 값은 입력층, 은닉층, 출력층 순서로 전달된다. 신경망은 예측 성능이 우수하다고 알려져 있다. 특히 은닉층에서 입력 값이 조합되므로 비선형적인 문제를 해결할 수 있는 특징이 있다. 그러나 의사 결정 나무 등의 모델과 비교해 만들어진 모델을 직관적으로 이해하기가 어렵고 수작업으로 모델을 수정하기도 어렵다. 신경망 모델 그림 10-7에 신경망 모델의 개념도를 보였다. 신경망에 입력이 주어지면 그 값은 그림 10-7에 보인 화살표를 따라 전달되어 은닉층에 도달..
의사 결정 나무 의사 결정 나무(Tree Models)는 지니 불순도(Gini Impurity) 또는 정보 이득(Information Gain) 등의 기준을 사용하여 노드를 재귀적으로 분할하면서 나무 모델을 만드는 방법이다. 의사 결정 나무는 if-else의 조건문과 같은 형식이어서 이해하기 쉽고 속도가 빠르며, 여러 가지 피처 간의 상호 작용을 잘 표현해주고 다양한 데이터 유형에 사용할 수 있다는 장점이 있다. 특히 나무 모델 중 랜덤 포레스트(Random Forest)는 꽤 괜찮은 성능을 보여주어 기계 학습 대회가 열리는 Kaggle(http://www.kaggle.com/)에서도 가장 기본이 되는 알고리즘으로 자주 제시된다. 이 절에서는 의사 결정 나무의 기본 개념을 살펴보고 rpart, ctree, randomF..
다항 로지스틱 회귀 분석 예측하고자 하는 분류가 두 개가 아니라 여러 개가 될 수 있는 경우 다항 로지스틱 회귀 분석(Multinomial Logistic Regression)을 사용한다. 이 방법의 기본 아이디어는 로지스틱 회귀 분석을 확장하는 것이다. 이 절에서는 위키피디아에 설명된 독립 바이너리 회귀의 집합에 따라 모델을 설명한다. 분류 K를 기준으로 하여 데이터가 각 분류에 속할 확률을 β_(i)X_(i)로 놓는다. 양변을 e의 지수로 하고 정리하면 다음과 같다. 확률의 합은 1이므로 위 식의 좌변과 우변을 모두 합하면 다음과 같다. 이를 정리하면 P(Yi = K를 다음과 같이 구할 수 있다. 최종적으로 i < K인 경우는 P(Yi = i)는 다음과 같다. R에서는 nnet::multinom( )을 사용해 다항 로지스틱 ..
로지스틱 회귀 모델 로지스틱 회귀 모델(Logistic Regression)은 데이터 X의 분류가 Y일 확률을 p, N일 확률을 1-p라 할 때 다음과 같은 선형 모델을 가정한다. log(p / (1-p)) = β_(0) + β_(1)X 이 식에 대한 가장 단순한 설명은 다음과 같다. β_(0) + β_(1)X는 (-∞, ∞) 값을 가질 수 있다. 그러나 우리가 예측하고자 하는 p는 분류가 Y일 확률이므로 (0, 1) 값을 가진다. 따라서 이 둘을 맞춰줄 필요가 있다. 이를 위한 첫 번째 단계는 p를 예측하는 것이 아니라 비(오즈odds)를 예측하도록 하는 것이다. p / (1-p) = β_(0) + β_(1)X (식 10-1) 이 식에서 좌변의 값은 (0, ∞) 값만 가질 수 있다. 반면 우변은 (-∞, ∞)를 가진다. ..
모델 평가 방법 - 2 교차 검증 주어진 데이터 전체를 사용해 모델을 만들 경우, 해당 데이터에는 잘 동작하지만 새로운 데이터에는 좋지 않은 성능을 보이는 모델을 만들 가능성이 있다. 이러한 현상이 발생하는 주요 이유 중 하나가 과적합이다. 과적합 발생 여부를 알아내려면 주어진 데이터 중 일부는 모델을 만드는 훈련 데이터로 사용하고, 나머지 일부는 테스트 데이터로 사용해 모델을 평가해야 한다. 테스트 데이터는 모델의 파라미터를 정하는 데도 필요하다. 예를 들어, k 최근접 이웃 알고리즘을 적용할 때 몇 개의 이웃을 보도록 k를 설정해야 하는지의 문제를 생각해보자. k가 크면 여러 이웃을 볼 것이고, k가 작으면 적은 개수의 이웃을 보게 된다. 그리고 적절한 k 값은 데이터에 따라 다르다. 따라서 어떤 k를 사용해야 하는지는 테..
모델 평가 방법 좋은 모델을 만들려면 먼저 어떤 모델이 좋은 것인가부터 정해야 한다. 이 절에서는 다양한 평가 메트릭, ROC 커브, 교차 검증(Cross Validation)을 통해 모델을 평가하는 방법에 대해 알아본다. 평가 메트릭 분류가 Y, N 두 종류가 있다고 할 때 분류 모델에서의 모델 평가 메트릭(metric)은 모델에서 구한 분류의 예측값과 데이터의 실제 분류인 실제 값의 발생 빈도를 나열한 그림 9-17의 혼동 행렬(Confusion Matrix)로부터 계산한다. 혼동 행렬에서 True Positive에 해당하는 셀은 실제 값이 Y고, 예측도 Y였던 경우의 수, False Positive는 실제 값은 N이었는데 예측이 Y로 된 경우의 수를 기록한다. 같은 방식으로 False Negative와 True N..