머신러닝, 딥러닝, 인공지능, 데이터과학자, 데이터사이언티스트



현존 최고의 데이터 과학자들이 뽑은 머신러닝 알고리즘 개발 베스트 프랙티스! 그 대망의 마지막 시간입니다. 이전 블로그를 통해 다양한 유형의 모델을 결합하는 방법을 소개해드렸다면, 오늘은 다양한 유형의 데이터를 결합하고, 모델의 다양한 변수를 활용하는 방법에 대해 이야기하고자 합니다. 이전 시리즈를 놓치셨나요? 블로그 1탄블로그 2탄을 참고해주세요.


<1> 기본기 다지기

<2> 희귀한 이벤트 탐지하기

<3> 수많은 모델 결합하기

<4> 모델 적용하기

<5> 국소 최적해에 빠지는 것을 방지하기 위해 모델 오토튜닝하기

<6> 시간 효과(temporal effect) 관리하기

<7> '일반화' 이해하기

<8> 학습용 데이터에 피쳐(feature) 추가하기

- 학습용 데이터 세트 구축

- 모델에 ‘고객의 소리’ 불어넣기

- 모델에 ‘구매 데이터’ 불어넣기




Chapter 8-1. 학습용 데이터 세트 구축


학습용 데이터 세트가 반응을 분류하거나 예측하기 위해서는 몇몇 예측 변수의 표본이 필요합니다. 머신러닝 분야에서 예측 변수는 피쳐(feature)라고 반응은 레이블(lable)이라고 부르는데요. 일반적으로 데이터 과학자의 학습용 데이터 세트 구축 작업은 전체 모델링 작업의 85%를 차지합니다. 데이터 과학자들은 트랜잭션 데이터(transactional data)를 평균 잔액, 지출 금액 등과 같은 피쳐로 병합하고, 이 피쳐를 다시 인구 통계, 지리 공간 데이터, 소셜 미디어와 같은 오버레이 데이터(overlay data)와 결합해 학습용 데이터 세트를 구축합니다.


필자는 쉽게 이용 가능한 많은 피쳐를 이용하여 학습 데이터에 생기를 불어 넣고자 합니다. 많은 피처를 가진 학습용 데이터 세트를 이용하면 더 적합한 모델을 얻을 수 있습니다.


머신러닝, 딥러닝, 인공지능, 데이터과학자, 데이터사이언티스트



Chapter 8-2. 모델에 ‘고객의 소리’ 불어넣기


본문학습용 데이터가 가능한 한 많은 피쳐를 갖출수록 더욱 적합한 모델을 만들 수 있습니다. 그 한 가지 방법은 바로 모델에 고객 피드백 데이터를 포함시키는 것인데요! 고객의 소리나 행동은 예측 가능하기 때문에 모델이 고객의 소리에 귀 기울일 수 있도록 하는 것이 중요합니다.


예를 들어, 서비스 비용에 대해 불평하는 고객 그룹이 있다면 이 정보를 고객 이탈 모형에에 반영할 수 있는데요. 설문 조사와 고객 응대와 같은 텍스트 데이터를 학습용 데이터 피쳐 공간에 통합함으로써 가능합니다. 우선 텍스트 분석을 이용하여 텍스트를 파싱해서 ‘term by document’ 빈도 테이블로 전환하십시요. 이제 텍스트 데이터는 숫자 형태로 표시되었습니다. 그 다음 절차는 특이값 차원(singular value dimensions)을 만들어 귀하 모델에 후보 피쳐(candidate features)으로 사용할 수 있습니다.


머신러닝, 딥러닝, 인공지능, 데이터과학자, 데이터사이언티스트



Chapter 8-3. 모델에 ‘구매 데이터’ 불어넣기


또 다른 예시는 모델에 구매 내역 데이터(purchase history data)를 반영하는 것입니다. 고객의 구매 내역은 구매 성향 또는 상품 추천 모델을 구축할 때 매우 중요한 실마리가 될 수 있습니다.


필자는 구매 트랜잭션 데이터를 이용하여 장바구니 규칙(market basket rules) 계산을 선호합니다. 구체적인 예를 들어볼까요? XBOX를 구입한 고객이 닌텐도 스위치(Nintendo Switch)를 구매할 가능성은 80%입니다. 이때 상위 100개 규칙을 출력하고, 이것이 학습용 세트에서 이분항 피쳐로 사용할 수 있도록 피벗(pivot)을 실행합니다. 그리고 이것을 특이값 분해(singular value decomposition)를 포함한 나머지 피쳐로 다시 결합하면, 여러 후보 피쳐(candidate features)를 갖는 꽤 다양한 학습용 데이터 세트를 구축할 수 있습니다.


▲Table 1. 이분항 예측변수로서 피벗한 연관규칙


머신러닝 분야에서는 자주 ‘보이는 것은 곧 믿는 것’입니다. 또 컨벌루션 네트워크(convolutional networks)를 사용해 귀하의 모델에 이미지를 피쳐로서 반영할 수 있습니다. 필자는 이 전체 과정을 통합 머신러닝(integrated machine learning)이라고 부릅니다. 고품질과 저품질의 소스를 계속해서 추가함으로써 궁극적으로 고품질의 머신러닝 학습 모델을 구축할 수 있습니다.


머신러닝, 딥러닝, 인공지능, 데이터과학자, 데이터사이언티스트


그 동안 <머신러닝 알고리즘 개발 베스트 프랙티스> 시리즈와 함께해 주셔서 감사합니다. 머신러닝 기술이 선물한 기회와 도전과제에 대해서는 백서 ‘분석의 진화(The Evolution of Analytics)’를 통해 더욱 자세하게 확인하실 수 있습니다.


다음 블로그를 통해서는 음성이나 이미지 인식에 사용될 때 사람만큼 또는 심지어 사람보다 더 나은 성능을 보이는 ‘딥러닝(deep learning)’에 대해 소개해드리고자 합니다. 많은 기대 부탁드립니다. 




저자

웨인 톰슨(Wayne Thompson) l SAS 최고 데이터 과학자(Chief Data Scientist at SAS)


편집

정윤호 이사 l SAS 코리아 머신러닝 담당




http://blogsaskorea.com/59에서 발췌

Posted by 효진시원파
,

머신러닝, 딥러닝, 인공지능, 데이터과학자, 데이터사이언티스트



현존 최고의 데이터 과학자들이 뽑은 머신러닝 알고리즘 개발 베스트 프랙티스! 그 두 번째 시간입니다. 시리즈를 처음 접하시는 경우 블로그 1탄을 참고해주세요.


<1> 기본기 다지기

<2> 희귀한 이벤트 탐지하기

<3> 수많은 모델 결합하기

<4> 모델 적용하기

<5> 국소 최적해에 빠지는 것을 방지하기 위해 모델 오토튜닝하기

<6> 시간 효과(temporal effect) 관리하기

<7> '일반화' 이해하기




Chapter 5. 국소 최적해에 빠지는 것을 방지하기 위해 모델 오토튜닝하기


하이퍼파라미터는 학습 모델을 구축 할 때 모델을 튜닝하기 위한 알고리즘의 옵션들입니다. 하이퍼파라미터는 알고리즘을 사용하여 학습할 수는 없습니다. 따라서 이러한 파라미터는 모델 을 학습시키기 전에 할당해야 합니다. 기계 학습에서 우리가 개발하고자 하는 모델의 하이퍼파라미터의 최적 조합을 발견하기 위해 많은 수작업 노력이 필요합니다. 시행 착오를 통해 최적 조합을 발견하는 것보다 더 효율적으로 적합한 하이퍼파라미터 조합을 어떻게 찾을 수 있을까요? 다음의 방식을 통해 파라미터를 자동으로 조정함으로써 문제를 해결할 수 있습니다.


1. 그리드 탐색(Grid search): 하이퍼파라미터 공간에서 수동으로 지정한 하위 집합을 단순하게 모든 조합을 다 탐색하는 것을 말합니다. 이러한 작업은 학습용 세트에 대한 교차 검증(cross-validation) 또는 held-out 검증 세트에 대한 평가에 의해 측정된 모델 성능 척도에 따라 진행돼야 합니다. 균등한 공간의 시작 점들로부터 시작해 이 점들의 목적 함수 값(objective functions)을 계산하고, 가장 작은 것을 최적조합으로 선택하면 됩니다. 그렇지만 이 작업은 파라미터 공간이 클 때는 그리 현실적이지 않습니다.


2. 베이지안 최적화(Bayesian optimization): 베이지안 최적화는 노이지 블랙박스(noisy black-box) 함수의 글로벌 최적화를 위한 방법입니다. 하이퍼파라미터 최적화를 적용시 베이지안 최적화는 검증 세트에 평가된 목적에 하이퍼파라미터 값에서 도출한 함수 통계 모델을 개발하는 것으로 구성됩니다.


보다 다양한 오토튠과 하이퍼파라미터 방법은 SAS 블로그와 오토튠 백서를 통해 확인할 수 있습니다.




Chapter 6. 시간 효과(temporal effect) 관리하기


고대 그리스의 철학자 아리스토텔레스는 관찰을 통해 학습함으로써 경험주의(empiricism)를 연구 한 최초의 데이터 과학자 중 한명인 것 같습니다. 대부분의 데이터 과학자들과 마찬가지로 그는 시간이 지남에 따라 현상이 어떻게 변하는지를 살펴봤습니다. 즉, 모델의 통계적 특성은 개념 드리프트(concept drift)라고 알려진 프로세스를 통해 시간에 따라 변합니다.


필자는 한 가지 기능을 변경하거나 새로운 기능을 추가하면 전체 모델이 변할 수 있다는 사실을 인식하면서, ‘change-anything-changes-everything’ 방식을 준수합니다. 기능(특성 및 속성) 또한 변경될 수 있습니다.


머신러닝, 딥러닝, 인공지능, 데이터과학자, 데이터사이언티스트


필자는 이 과정을 점진적 학습(progressive learning)이라고 부르며, 이때 모델은 데이터의 변화에 따라 적응하고 학습할 수 있습니다. 다음은 시간적 효과(temporal effect)를 보상하기 위해 사용하는 몇 가지 트릭입니다.


  • 모집단 안정성 지수와 특성 모니터링 통계를 계산해 빈번한 간격으로 모델 쇠퇴를 측정합니다.

  • 분류 모델(classification models)를 위해 ROC와 리프트를 모니터링합니다.

  • 모델을 운영 환경에 적용시키기에 충분한 수준으로 엄격하게 준수했다면, 모델 쇠퇴를 탐지하도록 모니터링 작업을 설정합니다.

  • 지정한 일정 간격으로 재학습 작업에 대한 일정을 수립합니다.

  • 이벤트 발생을 예측하기 위해 시간 요인을 포함하고 있는 생존 분석(Survival analyses)은 충분히 활용되지 않고 있지만, 포인트 예측(point predictions)을 뛰어 넘습니다. 필자는 이산-시간 로지스틱 모델(discrete-time logistic models)을 사용한 생존 데이터 마이닝(survival data mining)을 권장합니다.

  • 재귀 네트워크(Recurrent networks)는 순차적 데이터(sequence data)를 모델링할 때에도 매우 효과적입니다.



Chapter 7. ‘일반화’ 이해하기


일반화(Generalization)는 학습된 모델이 학습에 사용했던 데이터 대신 새로운 이전에 보지 못했던 데이터에 잘 들어 맞는 능력을 의미합니다. 과적합(Overfitting)은 하단 ‘그림 1’처럼 학습용 데이터와 너무 잘 맞는 모델을 말하는데요. 반면 저적합(Underfitting)은 하단 ‘그림 2’처럼 학습용 데이터와 잘 들어맞지 않고, 새로운 데이터 상에서도 일반화되지 않는 모델을 의미합니다. 만약 모델이 과적합이거나 저적합이라면 쉽게 말해 잘 일반화되지 않는다는 뜻인데요.


일반화는 편향(bias)이 높거나 분산이 큰 모델 사이에서 움직이는 균형 잡힌 활동을 의미합니다. 새로운 데이터에 잘 일반화하는 모델을 선택하기 위해서는 올바른 평가 메트릭(evaluation metric)을 사용하는 것이 필수적입니다.


머신러닝, 딥러닝, 인공지능, 데이터과학자, 데이터사이언티스트

▲그림 1. 분산이 큰 과적합 모델. 녹색 커브는 실제 모델을, 하늘색 원은 학습용 표본을, 붉은색 커브는 학습 모델을 나타냅니다.



▲그림 2. 편향이 큰 저적합 모델.


일반화에 대한 팁을 더 드리자면,

  • 분산 오류가 큰 경우 더 많은 데이터 또는 부분 집합의 피쳐(feature)를 사용하세요.

  • 편향 오류가 높은 경우 더 많은 파쳐(feature)을 사용하세요.


필자는 거의 항상 테스트용 데이터 세트를 사용합니다. 이 데이터 세트를 사용해 모델링을 하진 않지만 내 모델이 얼마나 잘 일반화되는지에 대한 불편 추정치를 얻을 수 있습니다. 학습용, 검증용, 테스트용 데이터 세트로 분할하기에 충분한 데이터가 없는 경우, 모델 일반화를 평가하기 위해 k-폴드(k-fold) 교차 검증(cross validation)을 사용합니다.


과적합을 피하는 또 다른 방법은 모델의 파라미터에 정규화(regularization)를 적용하는 것입니다. L1, L2, L21 등 몇몇 정규화를 선택할 수 있습니다. 정규화에 대한 자세한 내용은 또 다른 블로그 ‘정규화를 이용해 모델 과적합을 방지하는 방법’를 참고해주세요.


이어지는 <머신러닝 알고리즘 개발 베스트 프랙티스 3탄>에서는 학습용 데이터에 피쳐(feature)를 추가하는 방법 등이 소개될 예정입니다. 마지막 3탄에도 많은 관심 부탁드립니다.


머신러닝, 딥러닝, 인공지능, 데이터과학자, 데이터사이언티스트





저자

웨인 톰슨(Wayne Thompson) l SAS 최고 데이터 과학자(Chief Data Scientist at SAS)


편집

정윤호 이사 l SAS코리아 머신러닝 담당




http://blogsaskorea.com/54 에서 발췌

Posted by 효진시원파
,


1980년대 후반에만 해도 머신러닝(machine learning)이나 데이터 과학자와 같은 개념은 없었습니다. 대신 통계, 분석, 데이터 마이닝, 데이터 모델링과 같은 단어가 사용됐는데요.


이후 글로벌 기업들은 30년 이상 머신러닝 모델을 연구해 왔으며, 페이스북의 이미지 인식 소프트웨어, 아마존의 음성 비서 알렉사, KT의 인공지능 서비스 기가 지니(GiGA Genie)까지 그 결과들이 연이어 쏟아지고 있죠!


이러한 결실 뒤에는 훌륭한 머신러닝 알고리즘 모델들이 있는데요. 앞으로 연재를 통해 현존 최고의 데이터 과학자들로부터 수년간 학습한 내용과 실제 수백 건의 프로젝트를 통해 확인한 최고의 모델을 기반으로 머신러닝 알고리즘 개발을 위한 베스트 프랙티스 10가지를 소개하고자 합니다. 오늘은 그 1탄으로 4가지 베스트 프랙티스를 공유합니다.

<1> 기본기 다지기

<2> 희귀한 이벤트 탐지하기

<3> 수많은 모델 결합하기

<4> 모델 적용하기




Chapter 1. 기본기 다지기


<1> 데이터 탐색하기

학습용 데이터 세트를 준비하는 데 작업 시간의 80% 이상이 소비됩니다. 따라서 모델을 구축하기 전에 우선 관찰 수준에서 데이터를 확인해야 합니다. Base SAS®에서는 OBS = 20 옵션으로 PROC PRINT를, SAS® VIYA에서는 FETCH 액션을, Python에서는 HEAD 또는 TAIL 기능을 사용해 데이터를 심도 깊게 확인할 수 있습니다. 이러한 과정을 통해 적합한 데이터가 올바른 형식으로 갖춰져 있는지 빠르게 판단할 수 있습니다.


또 학습용 데이터를 구축하는 단계에서 첫 번째 실수가 발생하는 경우가 많기 때문에 이 팁을 통해 오히려 많은 시간을 절약할 수 있습니다. 그리고 자연스럽게 집중경향치(central tendency)와 분산도(dispersion) 등의 통계치를 얻을 수 있습니다. 또 레이블을 기준으로 특징별 요약 통계(summary statistics)를 계산해서 주요 추세(key trends)와 이상치(anomalies)을 분리시킬 수 있습니다. 레이블이 범주형(categorical)이면, 변수를 기준으로 그룹화한 레이블을 사용해 요약 측정값을 계산하면 됩니다. 또 레이블이 등간격(interval)이면 상관 관계를 계산하고, 범주형 특징이 있으면 그룹화해 사용할 수 있습니다.


<2> 데이터 조각내기

일반적으로 데이터에는 숨겨진 하부 구조가 있습니다. 따라서 마치 피자처럼 데이터를 조각 내고, 슬라이스의 크기는 모두 다르지만 슬라이스마다 별도의 모델을 생성합니다. 이미 학습용 데이터에 계층화가 내재되어 있는 지역(REGION) 또는 차종(VEHICLE_TYPE)과 같은 그룹 변수를 이용할 수 있는데요. 타깃이 있을 때에는 얕은 의사결정 트리(decision tree)를 만든 후 각 세그먼트별로 별도의 모델을 생성합니다. 타깃이 있을 때 클러스터링(clustering) 알고리즘을 사용해 세그먼트를 만드는 경우는 거의 없습니다. 타깃 변수를 무시하는 것은 좋지 않겠죠?


<3> 오컴의 면도날(Occam’s Razor), 절감의 법칙 기억하기

오컴(Occam) 학습의 목적은 학습용 데이터의 간결한 표현을 출력하는 것입니다. 이성적으로 우리는 가능한 한 간단한 모델로 정보에 입각한 의사결정을 내리고자 하는데요. 많은 데이터 과학자들은 더 이상 오컴의 면도날 법칙을 믿지 않습니다. 데이터로부터 최대한의 정보를 추출하고, 더욱 복잡한 모델을 만드는 것이 중요한 기술이기 때문이죠.


그러나 회귀(regression) 및 의사결정 트리를 사용해 간단한 화이트박스(white-box) 모델을 구축하는 것도 좋습니다! 이 간단한 모델이 얼마나 잘 수행되고 있는지 빠르게 확인하기 위해서 그래디언트 부스팅 모델(gradient boosting model)을 사용할 수 있습니다. 또 회귀 모델의 성능을 개선하기 위해 1차 상호작용(first order interactions)이나 여타 기본적인 변형(basic transformations)을 추가할 수 있는데요. 필자는 일반적으로 모델 효과의 수를 줄이기 위해 L1을 사용합니다. 모델이 간단할수록 배포도 쉬워집니다. IT와 시스템 운영팀에게도 좋은 소식이겠죠? 또 가능한 한 가장 단순한 모델을 사용하면 비즈니스 담당자가 결과를 바탕으로 의사결정을 내리기 전에 결과와 그 결론에 도달한 방법을 더 쉽게 설명할 수 있습니다.




Chapter 2. 희귀한 이벤트 탐지하기


머신러닝 작업에는 일반적으로 매우 불균형한(unbalanced) 데이터가 사용됩니다. 예를 들어, 사기를 탐지하거나 제조 상의 결함을 분리할 때 대게 타깃 이벤트는 1% 미만으로 매우 희귀한데요. 따라서 99% 정확도의 모델을 사용하더라도 이처럼 희귀한 이벤트를 정확하게 분류하지 못할 수도 있습니다. 건초 더미에서 바늘을 찾기 위해 무엇을 할 수 있을까요?


많은 데이터 과학자들이 ‘샘플링(sampling)’이라는 단어를 들으면 눈살을 찌푸립니다. 대신 오버 샘플링(oversampling) 또는 언더 샘플링(undersampling)으로 편향된(biased) 학습용 데이터 세트를 만드는 ‘집중 데이터 선택(focused data selection)’이라는 용어를 사용할 수 있는데요. 결과적으로 학습용 데이터가 조금 더 균형을 이루고, 종종 10% 이상의 이벤트 수준을 갖출 수 있습니다. (그림 1 참조) 이벤트 비율이 높아질수록 머신러닝 알고리즘은 이벤트 신호를 더욱 잘 분리하는 법을 배울 수 있습니다.


참고로 언더 샘플링은 무작위로 관측치(observations)를 제거해 다수 클래스(majority class)의 크기를 하향 조정합니다. 오버 샘플링은 클래스 불균형(class disparity)의 수준을 낮추기 위해 무작위로 소수 클래스(minority class)의 크기를 상향 조정합니다.


▲그림 1: 언더 샘플링과 오버 샘플링으로 개발한 편향된(biased) 샘플. ‘+’ 플러스 표식은 중복된 사례를 의미.



또 다른 희귀 이벤트에 대한 모델링 전략은 정확하게 분류된 이벤트에 더 큰 가중치를 부여하는 의사결정 프로세싱(decision processing) 방식을 사용하는 것입니다.


▲표 1: 부정확하게 식별된 사기의 비용


상단 표는 각 의사결정 결과에 따른 비용을 보여줍니다. 이 시나리오에서 사기를 사기가 아닌 것으로 판단(False Negative: 2종 오류)할 경우 예상 비용은 500달러입니다. 반대로 사기가 아닌데 사기로 판단(False Positive: 1종 오류)하는 경우 예상 비용은 100달러입니다.


여기에서는 일부 통계적 평가 기준을 기반으로 모델을 개발하는 대신 총 비용을 최소화하는 최상의 모델을 선택하는 것이 목표입니다. <총 비용 = 2종 오류 X 500 + 1종 오류 X 100> 이 전략에서는 두 가지 유형의 분류 오류에 따른 비용을 정확하게 측정하는 것이 알고리즘의 성공과 직결됩니다.




Chapter 3. 수많은 모델 결합하기


데이터 과학자들은 일반적으로 그래디언트 부스팅(gradient boosting), 랜덤 포레스트(random forests)를 이용하여 수많은 모델을 자동으로 구축합니다. 그리고 잠재적으로 더 강력한 솔루션을 만들기 위해 개별 모델들을 결합하는데요. 가장 정확한 머신러닝 분류기(classifiers) 중 하나는 그래디언트 부스팅 트리(gradient boosting trees)입니다.


랜덤 포레스트(random forest)를 사용할 때는 트리의 깊이를 너무 얕게 설정하지 않도록 주의해야 합니다. 랜덤 포레스트 목표는 크고 깊은 트리를 무작위로 많이 키우는 것입니다. 덤불이 아닌 숲을 생각해야 합니다. 깊은 트리는 확실히 데이터를 과적합(overfit)하는 경향이 있고 일반화를 잘 못하지만, 이들을 결합하면 일반화된 방식으로 공간의 뉘앙스(nuances of the space)를 포착합니다.


일부 알고리즘은 다른 알고리즘보다 데이터의 특정 영역이나 경계 내에서 더 적합합니다. 따라서 베스트 프랙티스는 서로 다른 모델링 알고리즘을 결합하는 것입니다. 또 전체적으로 최상의 분류를 가지거나 검증 데이터에 적합한 모델링 방법에 중점이나 무게를 둘 수도 있습니다. 때로는 학습용 데이터의 특정 공간에서 약한 분류기 두 개가 강력한 분류기 하나보다 더 뛰어날 수 있죠!




▲그림 3. 의사결정 트리, 서포트 벡터 머신, 신경망을 가중/비가중 결합한 앙상블 모델


머신러닝 경험을 더 쌓으면서 더 많은 기술을 습득하게 되면 여러 기술을 결합해 희귀한 이벤트 모델링 문제를 해결해 나갈 수 있습니다.


최근 개발된 무허가 송금 비즈니스를 식별하는 모델을 예로 들어보겠습니다. 이벤트 수준은 약 0.09%였는데요. 이 문제를 해결하는 데 여러 기술이 사용됐습니다.

    • 우선 개별 폴드(fold) 200개의 모든 이벤트를 유지하면서, 각 폴드마다 무작위로 비-이벤트(nonevents)의 하위 표본(subsample)을 선택해 k-폴드 표본을 개발했습니다.

    • 그리고 각 폴드마다 랜덤 포레스트 모델을 구축했습니다.

    • 마지막으로 200개의 랜덤 포레스트를 결합해 앙상블 모델을 만들었는데, 다른 모델들 중에서 가장 우수한 분류기가 됐습니다.


이 문제는 많은 연산이 요구되는 문제이기 때문에 모델이 신속하게 훈련할 수 있도록 모델을 여러 데이터 노드에 걸쳐 병렬로 구축하는 것이 중요합니다.


그림 4. 희귀한 이벤트 문제에 대한 하위 표본을 사용해 여러 기본 분류기를 구축한 후, 기본 분류기들을 결합




Chapter 4. 모델 적용하기


과거의 학습용 데이터를 기반으로 모델을 구축한 다음, 이 모델을 새로운 데이터에 적용시켜 의사결정을 내리는 것이 일반적입니다. 이 프로세스를 모델 배포(model deployment) 또는 스코어링(scoring)이라고 부르는데요. 데이터 과학자들이 모델을 배포하는 데에는 종종 몇 주 또는 몇 달이 걸립니다. 심지어 때로는 총력을 기울여도 결국 모델을 배포하지 못하는 경우도 있는데요.


각 모델은 수많은 데이터 준비 로직(data preparation logic)를 포함합니다. 따라서 많은 데이터 소스를 집계하고, 모델 수식을 포함시키고, 규칙이나 정책을 기준으로 계층화시켜야 하는데요. 다시 말해 스코어링 모델은 데이터 준비 + 규칙 + 모델 수식 + 잠재적인 더 많은 규칙들로 구성됩니다. 데이터 준비 로직은 스코어링에 필수적입니다. 보통 모든 변환 로직(transformation logic)을 정의함으로써 새로운 특징을 생성하는 작업을 포함하는 이러한 데이터 랭글링(wrangling) 단계는 데이터 과학자가 처리합니다.


그런 다음 모델을 배포하려면 새로운 특징(feature)을 만드는 변환 로직에 대한 정의를 포함하는 데이터 랭글링 단계를 반복해야 하는데요. 대개 IT 부서가 모델을 기업의 의사결정 지원 시스템에 통합하기 위해 이 작업을 완료합니다. 하지만 대부분의 기업은 스코어링을 위해 데이터 랭글링 단계를 재현할 수 있을 만큼 충분한 규칙과 메타 데이터를 가지고 있지 않습니다. 따라서 새로운 스코어링 테이블을 파생시키는 많은 이전 단계의 데이터 소스 종속성이 손실되는데요. 이것이 대부분의 기업에서 모델을 적용시키기까지 시간이 너무 오래 걸리는 가장 큰 이유죠! 이 문제의 해결책은 무엇일까요?


실제 모델을 적용시키려면 다음과 같은 운영 환경에서 예측 모델을 관리하기 위한 베스트 프랙티스를 구현해야 합니다.

    • 비즈니스 목표 설정

    • 데이터 접근 및 관리

    • 모델 개발

    • 모델 검증

    • 모델 배포

    • 모델 모니터링


한 가지 팁을 드리자면 모델 스코어 코드와 예비 변환(preliminary transformations)을 포함해 데이터 준비 로직을 자동으로 수집하고 묶을 수 있는 도구를 사용하는 것입니다. 모델 배포를 담당하는 데이터 엔지니어 또는 IT 담당자는 모델 구현을 위한 청사진을 가지고 있습니다. 또 데이터 엔지니어링과 알고리즘 단계를 단편적으로 반복할 필요가 없으므로 엄청난 시간을 절약 할 수 있죠! 데이터 과학자는 모델을 운영 환경에 적용시키기 전에 초기 스코어링 테스트에 참여해야만 합니다.


일부혁신적인 기업들은 표준화된 분석 데이터 마트를 만들고, 분석을 위한 데이터 복제와 재사용을 촉진합니다. 데이터 과학자와 IT 담당자는 이러한 분석 데이터 마트에서 직접 데이터를 확보하고, 더 많은 모델을 보다 빠르게 구축하고 배포할 수 있도록 공동 작업을 수행할 수 있죠!


또 이 프로세스를 조정하면 일반적인 모델링 작업의 일부를 마치 ‘모델 공장’ 처럼 실행하는 단계까지 이를 수 있습니다. 이때 데이터 과학자가 새로운 특징 로직(feature logic)을 데이터 마트에 제공하는 것이 중요합니다. 모든 데이터 과학자들이 상세한 데이터 소스 수준에서 새로운 특징을 탐색하지 않아도 된다면 훨씬 더 자유롭겠죠?


실제 하나투어는 첨단 고급 분석 솔루션인 ‘SAS 마케팅 자동화(SAS Marketing Automation)’를 이용해 데이터 분석 기반의 통합 마케팅 인프라 환경을 구축하고, 고객·예약·상품 등 기본 정보, 상품 추천 및 고객 세분화 모델링 결과, 캠페인 반응 등 광범위한 마케팅 데이터를 포괄적으로 관리할 수 있는 ‘통합 마케팅 데이터 마트’를 개발했습니다. 이를 통해 타깃 마케팅을 강화시키고, 캠페인 효율을 향상시킴으로써 고객의 상품 예약률을 약 20~30% 향상시켰습니다. 자세히 살펴보기




데이터 과학자가 직접 뽑은 <머신러닝 알고리즘 개발을 위한 베스트 프랙티스 1탄> 어떠셨나요? 다음 블로그를 통해 ‘데이터 오토튜닝(autotuning)’ 등 최고의 팁들을 이어서 소개해드릴 예정입니다. 많은 기대 부탁드립니다.


머신러닝과 인공지능은 빠른 속도로 일상 속 깊숙이 자리잡고 있습니다. 머신러닝 모델과 알고리즘을 통해 새로운 비즈니스 가치를 창출하고, 우리 삶이 더욱 편해지는 날이 멀지 않은 것 같습니다. SAS 웹사이트에서 머신러닝에 대한 자세한 정보를 확인해보세요.






저자

웨인 톰슨(Wayne Thompson) l SAS 최고 데이터 과학자(Chief Data Scientist at SAS)


편집

정윤호 이사 l SAS코리아 머신러닝 담당



http://www.blogsaskorea.com/48에서 발췌

Posted by 효진시원파
,