DATOR


분석 알고리즘과 모형 개발...(주)엔코아 김옥기 데이터 사이언티스트 커버 스토리


coverstory.jpg


분석 알고리즘과 모형 개발에 관한 설명에 앞서 분석 관련 도구에 대한 이야기를 해보고자 한다. 지난 연재에서 설명했듯이 BI와 데이터 과학은 영역이 구분되어 있어 사용하는 도구도 조금 다르다. 여기에서는 데이터 과학의 분석 관련 도구에 대해서만 다루어 본다.

2014년 케이디너켓(KDDnuggets)의 설문 조사에 의하면 분석 프로그램을 위한 도구로써 R이 49%, 파이썬이 35%, SAS가 36.4%로 나타났다. R과 파이썬을 동시에 사용하는 분석가도 20%로 적지 않다.

이 3가지 언어 중 하나만이라도 고급 수준으로 사용한다면 분석을 위한 도구 사용 능력은 충분하다고 본다. 물론 오픈 소스 도구와 상용 도구를 함께 사용 할 줄 안다면 더 할 나위 없겠지만 말이다.   



001.png


분석 알고리즘


분석 주제 관련 자료 검증과 데이터 전처리 과정을 마치게 되면 모형에 쓰여질 후보 변수와 후보 알고리즘을 대략 파악하게 된다. 기초 통계, 데이터 품질 보강, 데이터 정제 등 데이터 변환 과정을 거치면 후보 변수는 전처리 과정에서 주로 선정된다.

분석 모형은 크게 분류, 예측, 추천 등의 예측 분석과 시뮬레이션과 제한된 환경 최적화를 모색하는 예측 최적화로 나누어진다.

여기에서는 알고리즘에 대해 좀더 자세히 알아보고자 한다.
 
특정 알고리즘을 사용해야 하는 문제는 비즈니스 환경 여건이나 종속 변수의 유무에 따라 달라지기 때문에 종속 변수가 있는지, 없는지를 가장 먼저 살펴 보아야 한다. 왜냐하면 종속 변수의 유무에 따라 사용할 알고리즘이 제한을 받기 때문이다.

예를 들어 종속 변수가 없으면 사용할 수 있는 알고리즘이 군집과 원인 분석, 이상치(異常値)(Anomaly/Deviation detection), 연관 법칙(Association rules) 등 몇 가지로 제한된다. 그리고 변수의 속성에 따라서도 알고리즘의 선택이 달라진다.

변수의 값들이 연속적 형태를 띨 경우 예측 분석이 가능하고 이산(離散)(discrete)적 형태를 띨 경우에는 판별(분류) 분석이 가능하기 때문에 상황에 맞게 알고리즘을 선택한다.

텍스트 마이닝(text mining)이나 웹 로그 분석은 분석 소프트웨어가 잘 개발되었고, 상용화되어 분석하기가 수월해졌다.

현업의 경우, 비즈니스 상황에 따라 사용하는 알고리즘이 다르기는 하지만, 현업의 기술과 데이터 크기, 종류 등의 여건을 반영하여 주로 사용하는 알고리즘들이 있다.

다음 표는 일반 기업에서 많이 사용하는 알고리즘들이다.


tb1.jpg


업리프트 모델링(Uplift modeling)은 마케팅 캠페인에서 많이 사용하는 기법인데, 실제로는 추정 모델을 단계별로 적용하는 기법이며, A/B테스트와 같이 환경이나 조건을 달리한 후에 적당한 그룹을 선택하여 마케팅이나 신용 관리, 채널, 가격 선택, 고객 이탈 관리 등 다양한 분야에 사용한다.

회귀(Regression) 분석은 예측이나 분류에 사용하는 너무나 유명한 알고리즘이다. 특히 로지스틱 회귀 분석(Logistic Regression)은 신용 평점(Credit Score)에 많이 사용했고, 추정 모델에 흔히 사용한다.

요즘은 원인과 관계 파악을 위해 시각화(Visualization)도 많이 사용하는데, GIS로 위치 분석할 때 특히 많이 사용한다. 구글이나 야후, 아마존에서는 개인화 서비스를 위해 군집 분석(Clustering, k-mean)을 사용했다. 그리고 넷플릭스(Netflix) 분석 경쟁 대회에서는 앙상블 기법(Ensemble methods)을 사용했는데, 여러 개의 예측 모형들을 만든 후에 이들을 결합하여 하나의 최종 예측 모형을 만들어 사용한 사례는 너무나 유명하다.

이외에도 경제나 행정 예산 책정에 자주 사용하는 시계열, 사기 감지나 품질 관리에 사용하는 이상치 감지 기법(Anomaly/Deviation detection)과 소셜 네트워크 분석(Social Network Analysis)이 있다.

소셜 네트워크 분석은 테러리스트 연결 고리 분석으로 자주 사용하며 통신사에서 고객 이탈 분석을 할 때도 활용한다. 마지막으로 제조 분야에서 원인 분석이나 최적화에 주성분 분석(PCA-Principal component analysis)알고리즘도 많이 사용하는 알고리즘 중의 하나이다. PCA는 원인 분석 또는 변수 선정 등 지수 개발에 사용한다.

자료를 찾다보면 통계와 기계 학습의 차이점에 대한 의견들이 참 많다. 통계는 정해진 분포나 가정(假定)을 통해 활용상 엄격하게 규칙이 적용되는 설문 조사나 실험 계획에 많이 사용되는 반면, 기계 학습은 대용량 데이터의 분석이나 패턴을 찾는데 많이 사용한다. 하지만 현업에 사용하는 입장에서 볼 때는 기계학습이든 통계든 직면한 문제 해결에 잘 맞고 적합한 방법론을 찾는 게 중요하다.

기계 학습도 주로 분류, 예측, 차원(변수) 축소, 그룹화 그리고 데이터를 비교할 때 사용할 수 있다. 다음은 다양한 기계 학습 알고리즘이다.


tb2.jpg


기계 학습 또는 분석 알고리즘을 사용할 때 고려해야 할 중요한 요소들은 정확도(예측력), 실행 속도(run time), 변수간 인과 관계에 대한 모델의 설명력, 그리고 간결성이다. 현업에 적용할 때는 늘 정확도와 나머지 요소들 즉 속도, 설명력, 그리고 간결성과 타협을 해야 한다. 모든 것이 좋으면 다 좋겠으나 대부분의 경우가 그렇지 못하다.

예를 들어 마케팅 캠페인에서 분석 모델은 고객 가치를 상대적으로 평가하기 위해 활용하는 경우가 많기 때문에 정확도 보다는 운영 측면에서의 관리와 설득력이 더 필요하다. 그래서 속도, 설명력, 간결성이 더 고려돼야 한다.

기계 학습의 경우, 대부분 예측력은 높지만 속도, 설명력, 간결성이 다소 낮다. 또한, 이상치에 대한 민감성, 실측치(失測値)(Missing Value), Non-Vector Data, Class Imbalance와 고차원(High Dimension)의 효율성 문제들도 고려해야 한다.


002.png


[주요 기계학습의 발전 단계]


분석모형의 개발 절차


분석 모형 개발 절차의 쉬운 설명을 위해 금융회사 고객 이탈 모형의 예를 들어 보고자 한다.

이탈 모형 개발의 목적은 고객이 이탈하려고 적극적 행동을 취하기 전에 은행이 먼저 잠재적인 이탈 가능한 고객을 알아내고 그 가능 지수를 만들어 집단 선정과 경향, 성향, 규칙 등을 알아냄으로써 고객의 이탈을 줄이는 것이다.

개발 절차는 1) 이탈 문제 요건의 정의, 2) 데이터 전처리, 3) 이탈 모형의 개발 및 검증, 마지막으로 4) 현업에 적용하는 프로세스 순으로 진행된다.

이탈 문제 요건의 정의 중, 중요한 작업은 다양한 이탈 고객의 종류를 정의하는 것이다. 어느 정도 신용카드를 사용하다가 이탈하는 고객, 초창기에 신규 고객 서비스만 몇 번 사용하고 이탈하는 고객, 같은 고객이 다른 내부 카드로 이전하는 고객, 고위험 고객 등 다양한 이탈 고객에 대한 비즈니스 규칙을 정의하는 것이 우선시 된다.


tb3.jpg

[이탈 통계 모형 개발 절차 순서]


대부분의 데이터 관련 프로젝트에서 가장 길고 노력이 많이 드는 작업이 데이터 전처리 과정이다. 데이터를 선택하고 정제하고 준비하고 가공하고 정리하는 과정이 데이터 전처리 과정이다. 전처리 과정이 끝이 나면 독립 변수 후보 선정에 들어간다.


고객 이탈(, 종속 변수) = f (고객, 서비스 등 다양한 이탈 원인들 즉 독립 변수들)


고객의 이탈은 종속 변수가 되고 이탈의 원인이 되는 고객이나 서비스 성향들은 독립 변수의 후보가 된다. 독립 변수 선정 과정에서 학자나 연구가들은 주로 이론 위주로 가설을 많이 선정하고, 마케팅이나 비즈니스 전문가들은 비즈니스 목적을 위한 수익 극대화 위주로 가설을 선정한다.

고객 이탈의 경우, 비즈니스 운영상 효율적이고 효과적인 변수들을 주로 독립 변수로 선정한다. 초기 어떤 변수를 선정해야 할지 모를 때, 또는 통계 모형 검증 차원에서, 이론적 논문들을 참고하는 것도 많은 도움이 된다. 데이터가 너무 크면 샘플링하여 사용하고, 샘플링된 데이터는 모형 개발을 위한 데이터 세트(training set)와 검증 데이터 세트(testing set)로 분리하여 최종 모델의 검증 작업에 사용한다.

변수의 유의성, 상관 관계와 같은 테스트를 거쳐 후보 변수의 그룹화 작업을 마치고 기초 통계 현황을 파악 하고 나면 본격적인 모델 개발 작업을 시작한다. 유의성 지표의 하나로 Information Value 주로 사용한다. 이 값은 절대 값 보다는 상대적인 순서가 더 중요하다.

보통의 이탈 모형은 대부분 로지스틱 회귀 모형을 많이 사용한다. 기계학습 알고리즘은 원인과 관계를 설명하기가 쉽지 않으나 로지스틱 회귀 모형은 사용자가 임의로 모델 조정이 가능하고 원인을 설명하기 쉬워 현업에 적용이 용이하다.

알고리즘 선정 요소는 다양한 비즈니스 여건이나 데이터 요건, 기술적인 요건 등에 제한을 받을 수 있기 때문에 상황에 맞게 선정하는 것이 중요하다. 모델 개발 중에는 가능하다면 다른 모형도 함께 수행하여 모델의 성능을 비교해 보아야 한다.

모델의 성능 평가를 위해 K-S 통계, Gini 계수와 수신자 조작 특성(ROC: Receiver Operating Characteristic) 차트, lift 차트 등을 많이 사용한다. 다음 차트는 고객 중 우량의 누적 비율을 Y축에, 고객 중 불량의 누적 비율을 X축으로 나타내는 차트인데 위로 볼록 할수록 즉, 면적이 클수록 좋은 모델이다.

아래에 예시된 차트에서는 의사 결정 트리 모형(Decision Tree)의 성능이 로지스틱 모형보다 좋다고 나타난다(Hanley and McNeil, 1982; Ma and Hall, 1993).



003.png

[모델 성능 비교 예시]


이렇게 산출된 개인별 점수(score)는 등급화하여 실제 테스트 데이터를 이용한 검증 작업까지 마치면 현업에 적용된다. 현업에 적용된 모델은 지속적으로 관찰하여 실제 전체 데이터에 큰 변화가 생기거나 비즈니스 규칙에 변화가 생기게 되면 재개발 작업을 한다.



004.png

[독립 변수 가중치 점수 예시]


이러한 변화를 추적하기 위해 마지막 모니터링 리포트를 주기적으로 생성하면 모든 개발 작업은 완료된다. 비즈니스 상황이나 사용 변수 등이 다를 뿐 대부분의 분석 모형 개발은 이러한 절차를 거쳐 진행된다.

마지막으로 정리를 하자면 Generalized linear regression의 알고리즘과 Bayesian 방법론만 철저히 익혀도 데이터 과학의 많은 분석 부분이 해결 가능하나 최근 개발되거나 발전한 방법들도 지속적으로 숙지할 필요가 있다.


005.png

[분석모형의 가치와 복잡성의 관계]


그러나, 명심해야 할 것은 분석 방법과 알고리즘의 복잡성은 그 가치에 정비례하지 않으니 최적의 조합을 찾아 내는 것 또한 중요 하다는 것이다.






Tag :

Leave Comments