본문 바로가기

R-PAGO 노트

데이터보다 설명변수가 많을 때 어떻게 예측하는가? 유전자 정보로 암을 예측하는 법: Classifying Microarray Sample 암은 유전적인 이유가 큰 질병이다. 만약 암 환자의 증상과 유전자의 관계를 찾을 수 있다면 특정 유전자를 가진 사람의 암 발생 여부를 예측할 수 있을 것이다. 그러나 문제가 단순치 않다. 유전자 수가 너무 많다는 것(조사 가능한 암 환자대비) 때문이다. 암 환자수를 데이터수, 유전자를 설명변수라 한다면 많은 설명변수들 간에는 분명 공분산을 가지는 설명변수가 존재할 확률이 높을 것이다. 다시 말해 공분산을 최소화하기 위해 설명변수를 제거하는 수고 또한 필요하다. DMWR의 마지막 케이스인 “Microarray 샘플 분류하기”는 이런 문제점을 포함해 다음과 같이 요약된다. 데이터보다 설명변수의 수가 많다. (128개 vs.. 더보기
Entropy Based Discretization: 어떻게 연속변수를 구분 짓는가? Discretization: 연속변수를 구분 짓는 방법 인사팀 직원이 찾아와 현재 회사의 기준인 Toeic Specking 7단계 점수를 EPC 사업수행능력을 가장 잘 반영할 수 있는 우리 회사만의 영어 등급으로 재구분할 수 있는지를 문의해 왔다. 질문을 듣는 순간 떠오른 것이 Discretization!!!, 변수를 어떻게 효율적으로 구분하는 가이다. 현재 진행 중인 “아파트 청약 경쟁률 예측”에서 지하철역과 아파트간의 거리를 구분하는 경우가 있었는데 이 글의 주제인 “엔트로피”를 사용해 구분하지 않고 “부동산 상식”에 근거해 구분하였다. 구분하는 기준이 아무리 옳더라도 범용성과 간편성이 떨어지면 의미가 없기 때문이다. (아파트와 지하철역 거리를 351m를 기준으로 역세권과 비역세권을 나눈다 생각해보면.. 더보기
능형(Ridge) 회귀, Lasso 이론 및 예제 검정MSE가 최소가 되는 모델을 찾아라! 그렇다. 우리의 목적은 언제나 검정오차(또는 검정MSE)가 최소인 모델을 찾는 것이다. 능형회귀와 Lasso는 이 목적때문에 탄생했다. 일종의 최적값(Optimization) 찾기이다. 편향(bias)과 분산(variance)사이의 최적점을 찾아 검정MSE가 최소가 되는 모델을 찾아주기 때문이다. 그러고 보면 지금까지의 다중회귀모델의 최적 모델은 검정MSE 관점에서는 좀 더 개선의 여지가 있었다는 말이 된다. 어떻게 만들까?능형회귀 식 Lasso 식 능형회귀와 Lasso는 다중회귀모델이 사용하는 최소제곱(RSS)에 추가 항을 더해 식을 완성한다. 각각의 계수 추정치 과는 상기식 각각을 최소로 하는 값이 된다. 우변의 두번째 항은 수축패널티(shrinkage pen.. 더보기
부스팅(Boosting) 이론과 예제 부스팅(Boosting) 알고리즘 부스팅(Boosting) 알고리즘부터 살펴보자.(상기 그림) 알다시피 배깅은 여러 Boostrap 샘플을 독립적으로 복원추출한 다수의 Boostrap 트리의 평균 또는 다수결을 통해 단일 예측모델을 만든다. 그러나 부스팅은 병렬의 독립된 트리가 아닌 하나의 트리를 순차적으로 업그레이드하여 완성한다. 상세 순서는 아래와 같다. 최초 추정값이며 훈련데이터 각각은 터미널노드 값으로 인식한다. 첫번째 시도(b=1) d개의 분할을 가진 트리를 만들어 상기 훈련데이터에 적합한다. 당연히 터미널도드수는 분할 수보다 1개 많은 d+1가 된다. 추정값 업그레이드: 이전 추정값에 첫번째 추정값에 수축파라미터()를 곱합 값을 더해 추정값을 업그레이드한다. 수축파라미터가 작을 수록 추정값은 .. 더보기
랜덤포리스트(Random Forest) 총정리(배깅 포함) 앙상블(Ensemble) 입문 드디어 앙상블(Ensemble) 모델이다. 앙상블이란 말 그대로 각기 다른 모델을 조합해 예측력을 향상시키는 것을 말한다. 책, Predictive Ananlytics에는 다양한 예측 사업들이 소개되는데 가장 높은 예측력을 가지는 모델은 단연 앙상블이었다. 어떤 모델이든 장점과 단점을 가지게 되는데 앙상블은 각각의 장점은 취하면서 단점은 보완할 수 있다. 때문에 앙상블은 최적의 단일 모델을 뛰어 넘는 새로운 예측 모델을 제시한다. 높은 예측력은 분명 훌륭한 모델의 가장 중요한 조건중 하나이다. 그러나 이 기준 역시 분명히 단점이 있다. 예를 들어, 1. 앙상블과 같이 예측력이 높은 모델은 해석에 어려움을 가진다. 또한 2. 다른 단일 모델에 비해 예측 시간이 많이 걸린다. .. 더보기
검정오차(test error)가 중요한 이유 Key Questions 예측모델을 빌딩하다 보면 다음의 Key Questions에 직면하게 된다. 1. 참값(f)이 선형적이지 않는데 예측은 선형회귀로 추정한다면 예측에 한계가 있지 않을까? 2. 가지고 있는 데이터를 잘 설명하는 모델을 찾았다고 해서 이 모델이 현재 미확보 데이터나 미래의 데이터도 잘 설명한다 어떻게 말할 수 있을까? 3. 보유한 데이터의 샘플에 따라 추정값의 변동이 크다면 어떤 모델을 사용해야 변동폭과 상관없이 사용할 수 있을까? 이 3 가지 질문은 이전 글 다중선형회귀 모델의 변수 선택을 위한 최종 Guideline에서 설명했고 그 해결책으로 교차검증을 제시했다. 그러나 상기 의문의 답의 이론적 배경을 이해한다면 향후 여러가지 예측 모델을 마스터한 후 모델 선택의 기로에 섰을 때 .. 더보기
회귀트리(regression tree)와 분류트리(classification tree) 예측 회귀트리(regression tree) 만드는 법(기본) 회귀트리 빌딩의 기본은 설명변수 X1, X2…Xp 기준의 값들로 J개의 다르고 겹치지 않은 집합 R1,R2…RJ로 분할하는 것이다. 수행 과정은 다음과 같다. 분할은 모든 Rj내 각각의 데이터와 예측값 Rj간의 RSS를 최소화하는 Rj를 구함으로써 수행된다. 이때 예측값 Rj란 j번째 Group 데이터들의 평균 반응변수 값이다. RSS를 최소화하는 각각의 Rj를 구하기 위해, 모든 경우의 수를 고려하는것은 불가능하다. 때문에 다중회귀 변수 선택법 중 전진 선택법과 같이 특정 단계에서 가장 좋은 분할(RSS 최소)을 선택 후 다음 단계로 넘어가는 방법을 취한다. 이를 재귀이진분할(recursive binary splitting)이라 한다. 말로 설명.. 더보기
다중선형회귀 모델의 변수 선택을 위한 최종 Guideline 기존 변수 선택 방법의 한계 나는 이 글을 통해 다중회귀모델의 변수 선택의 최종적인 Guideline을 제시하고자 한다. 고백하자면 이 전글 회귀모델의 변수 선택 방법을 통해 표준 Guideline을 제시하고자 했었다. 또한 추가 글 UCLA 대학원 입학을 위한 Spec.을 통해 최적 모델이란 전체 데이터가 아닌 검정(test) 데이터에서의 오차가 최소되어야 함을 설명했다. 그러나 이런 방법들은 여전히 문제점을 가지고 있다. 따라서 이 글을 통해 1. 앞서 소개한 방법의 문제점을 보완하고 2.변수 선택시 우리만의 경쟁 우위를 가지는 Guideline을 제시하고자 한다. 특히, 설명 변수가 많을 경우에 이런 경쟁 우위는 더욱 두드러지게 될 것이다. 또한 앞서 사용된 함수, ‘step’ 대신 3.하나의 함수.. 더보기
Z검정, t검정, 카이제곱 검정 아...정말 누가 "삶은 문제 해결의 연속"이라 했던가. 이 뻔한디 뻔한 카이제곱 검정이 엑셀에서 할 때와 R 프로그램에서 할 때 결과가 서로 달라 헤매고 말았다. 결국 정리가 필요 없다고 생각한 검정(Test)도 간략히 정리해 보고자 한다. Z 검정 검정(test)라는 것은 "특정 분포를 기준으로 했을 때 유의성이 있는가?"를 판별하는 것이다. 분포(distribution)라고하면 정규 분포 또는 표준 정규 분포를 우선 떠올릴 것이다. Z-검정은 이 표준 정규 분포를 기준으로 값의 유의성을 검증하는 것을 말한다. 만약 "두 집단의 차이가 유의한가"를 검증한다면, 두 집단이 모두 표준 정규 분포를 따른다는 전제아래 검증을 하는 것이다. t 검정 데이터가 충분히 있을 경우 데이터가 표준정규분포를 따른다는 .. 더보기
UCLA 대학원 합격을 위한 필요 Spec.은? UCLA 대학원 합격을 위한 Spec.은?(로지스틱 회귀) GRE, GPA, Rank(출신 학부 대학의 명성)로 구성된 UCLA 대학원 입학생 자료 400개를 가져온다. 데이터는 총 400개로 합격자 127명, 불합격자 273명으로 구성되어 있다. 최종 목적인 ROC를 구하기 위해, 훈련 데이터(train)와 테스트 데이터(test)의 구분이 필요하다.UCLA 대학원 Report를 통해 10년간 합격률이 약 25%임을 확인할 수 있다. 따라서 테스트 데이터의 합격과 불합격 비율을 1:3로 하고 훈련 데이터는 1:1로 해야 타당하다. 결론적으로 훈련 데이터는 총 80개, 테스트 데이터는 320개를 구성된다. 이 경우 테스트 데이터의 합격률은 27%가 된다. 그러나 문제는 훈련 데이터 수가 많지 않아(80개.. 더보기