KR20190108559A - 예측 데이터 분석을 위한 시스템 및 관련 방법 및 장치 - Google Patents

예측 데이터 분석을 위한 시스템 및 관련 방법 및 장치 Download PDF

Info

Publication number
KR20190108559A
KR20190108559A KR1020197014598A KR20197014598A KR20190108559A KR 20190108559 A KR20190108559 A KR 20190108559A KR 1020197014598 A KR1020197014598 A KR 1020197014598A KR 20197014598 A KR20197014598 A KR 20197014598A KR 20190108559 A KR20190108559 A KR 20190108559A
Authority
KR
South Korea
Prior art keywords
model
data
prediction
customized
modeling
Prior art date
Application number
KR1020197014598A
Other languages
English (en)
Other versions
KR102448694B1 (ko
Inventor
제레미 아친
토마스 데고도이
사비에르 코노트
세르게이 유르겐슨
마크 엘. 스테드먼
글렌 카운드리
피터 프리튼호퍼
혼 니안 추아
Original Assignee
데이터로봇, 인크.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US15/331,797 external-priority patent/US10366346B2/en
Application filed by 데이터로봇, 인크. filed Critical 데이터로봇, 인크.
Publication of KR20190108559A publication Critical patent/KR20190108559A/ko
Application granted granted Critical
Publication of KR102448694B1 publication Critical patent/KR102448694B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/04Forecasting or optimisation specially adapted for administrative or management purposes, e.g. linear programming or "cutting stock problem"
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5038Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5044Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering hardware capabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • G06Q10/063Operations research, analysis or management
    • G06Q10/0637Strategic management or analysis, e.g. setting a goal or target of an organisation; Planning actions based on goals; Analysis or evaluation of effectiveness of goals
    • G06Q10/06375Prediction of business process outcome or impact based on a proposed change

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Theoretical Computer Science (AREA)
  • Human Resources & Organizations (AREA)
  • Economics (AREA)
  • Strategic Management (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Marketing (AREA)
  • Development Economics (AREA)
  • Game Theory and Decision Science (AREA)
  • Operations Research (AREA)
  • Quality & Reliability (AREA)
  • Tourism & Hospitality (AREA)
  • General Business, Economics & Management (AREA)
  • General Engineering & Computer Science (AREA)
  • Educational Administration (AREA)
  • Artificial Intelligence (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Medical Informatics (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

예측 데이터 분석 기술은 시계열 예측 문제에 대한 예측 모델 생성을 위한 개선된 기술, 입력 변수("피처")의 예측값을 결정하기 위한 개선된 기술, 및 1차 예측 모델의 2차 모델을 생성하기 위한 개선된 기술을 포함할 수 있다.

Description

예측 데이터 분석을 위한 시스템 및 관련 방법 및 장치
<관련 출원에 대한 상호 참조>
본 출원은 발명의 명칭이 "피처의 예측값을 결정하기 위한 시스템 및 기술(Systems and Techniques for Determining the Predictive Value of a Feature)"이고 2016년 10월 21일자로 출원되고 대리인 정리 번호가 DRB-001C1CP인 미국 특허 출원 제15/331,797호 및 발명의 명칭이 "예측 데이터 분석을 위한 시스템 및 기술"이고 2016년 10월 21일자로 출원되고 대리인 정리 번호가 DRB-002PR인 미국 가특허 출원 제62/411,526호와 관련되며, 그 각각은 적용 가능한 법에 의해 허용되는 최대 범위까지 본원에 참조로 통합된다.
<발명의 분야>
본 발명은 일반적으로 데이터 분석을 위한 시스템 및 기술에 관한 것이다. 일부 실시예는 구체적으로 예측 문제에 대한 예측 모델을 개발, 선택 및/또는 이해하기 위해 통계적 학습 방법을 사용하기 위한 시스템 및 기술에 관한 것이다.
많은 조직과 개인은 그 운영을 개선하거나 그 의사-결정을 돕기 위해 전자 데이터를 사용한다. 예를 들어, 많은 비즈니스 기업은 트랜잭션 실행, 입력 및 출력 추적 또는 제품 마케팅과 같은 다양한 비즈니스 프로세스의 효율성을 향상시키기 위해 데이터 관리 기술을 사용한다. 다른 예로서, 많은 비즈니스는 비즈니스 프로세스의 성과를 평가하거나, 프로세스를 개선하는 노력의 효과를 측정하거나 어떻게 프로세스를 조정해야 할지를 결정하기 위해 운영 데이터를 사용한다.
일부 경우에, 전자 데이터가 문제 또는 기회를 예측하는 데 사용될 수 있다. 일부 조직은 예측 모델을 구축하기 위해 과거에 발생한 것을 설명하는 운영 데이터와 실적 통계의 후속값을 설명하는 평가 데이터를 조합한다. 예측 모델에 의해 예측된 결과에 기초하여, 조직은 결정을 내리거나, 프로세스를 조정하거나 다른 액션을 취할 수 있다. 예를 들어, 보험 회사는 미래의 보험금을 보다 정확하게 예상하는 예측 모델, 또는 보험 계약자가 경쟁 보험사로의 전환을 고려하는 때를 예측하는 예측 모델을 구축하려고 시도할 수 있다. 자동차 제조업체는 신차 모델에 대한 수요를 보다 정확하게 예상하는 예측 모델을 구축하려고 시도할 수 있다. 소방서는 화재 위험이 높은 날짜를 예상하거나 어떠한 구조물이 화재로 인해 위험에 처할지를 예측하는 예측 모델을 구축하려고 시도할 수 있다.
머신-학습 기술(machine-learning technique)(예를 들어, 감독 통계-학습 기술)은 적어도 2개의 변수의 이전에 기록된 관측치를 포함하는 데이터 세트로부터 예측 모델을 생성하는 데 사용될 수 있다. 예측될 변수(들)는 "타겟(들)", "반응(들)" 또는 "종속 변수(들)"로 칭해질 수 있다. 예측하는 데 사용할 수 있는 나머지 변수(들)는 "피처(들)", "예측자(들)" 또는 "독립 변수(들)"로 칭해질 수 있다. 관측치는 일반적으로 적어도 하나의 "트레이닝" 데이터 세트와 적어도 하나의 "테스트" 데이터 세트로 분할된다. 그 후, 데이터 분석자는 통계-학습 절차를 선택하고 예측 모델을 생성하기 위해 트레이닝 데이터 세트에 대해 그 절차를 실행한다. 그 후, 분석자는, 모델이 타겟(들)의 실제 관측에 대해 타겟(들)의 값(들)이 얼마나 잘 예측하는지를 결정하기 위해 테스팅 데이터 세트에 대해 생성된 모델을 테스트한다.
일부 실시예에 대한 동기
데이터 분석자는 분석 기술 및 연산 인프라스트럭처를 사용하여 연산 및 평가 데이터를 포함하여 전자 데이터로부터 예측 모델을 구축할 수 있다. 데이터 분석자는 일반적으로 예측 모델을 구축하는 2개의 접근법 중 하나를 사용한다. 첫 번째 접근법에서, 예측 문제를 다루는 조직은 단순히 동일한 예측 문제 또는 유사한 예측 문제에 대해 이미 개발된 패키지화된 예측 모델링 해결책을 사용한다. 이 "쿠키 커터(cookie cutter)" 접근법은 저렴하지만 일반적으로 비교적 많은 수의 조직에 공통적인 소수의 예측 문제(예를 들어, 사기 탐지, 불량 관리, 마케팅 응답 등)에 대해서만 가능하다. 두 번째 접근법을 사용하면, 데이터 분석 팀이 예측 문제에 대한 커스텀화된 예측 모델링 해결책을 구축한다. 이 "장인정신(artisanal)" 접근법은 일반적으로 비용이 많이 들고 시간 소모적이므로, 소수의 고-가치 예측 문제에 사용되는 경향이 있다.
예측 문제에 대한 잠재적인 예측 모델링 해결책의 공간은 일반적으로 크고 복잡하다. 통계적 학습 기술은 (예를 들어, 수학, 통계학, 물리학, 공학, 경제학, 사회학, 생물학, 의학, 인공 지능, 데이터 마이닝 등의) 많은 학술 전통과 (예를 들어, 금융, 보험, 소매, 제조, 건강 관리 등의) 많은 상업 분야에서이 애플리케이션에 의해 영향을 받는다. 결과적으로, 다양한 변형 및/또는 튜닝 파라미터를 가질 수 있는 많은 다른 예측 모델링 알고리즘뿐만 아니라, 그 자신의 변형 및/또는 파라미터를 갖는 상이한 사전-프로세싱 및 사후-프로세싱 단계가 존재한다. 잠재적인 예측 모델링 해결책(예를 들어, 사전-프로세싱 단계, 모델링 알고리즘 및 사후-프로세싱 단계의 조합)의 양은 이미 상당히 크고, 연구자가 새로운 기술을 개발함에 따라 빠르게 증가하고 있다.
예측 모델링 기술의 이러한 방대한 공간을 감안할 때, 예측 모델을 생성하는 데 대한 장인정신 접근법은 시간 소모적이고 모델링 검색 공간의 많은 부분을 탐색하지 않는 경향이 있다. 분석자들은 직관이나 이전 경험 및 광범위한 시행착오 테스트를 기반으로 임시적인 방식으로 모델링 공간을 탐색하는 경향이 있다. 그들은 탐색의 잠재적으로 유용한 길을 추구하지 않거나 초기 노력의 결과에 대한 응답으로 검색(search)을 적절하게 조정하지 않을 수 있다. 또한, 시행착오의 범위는 분석자의 시간 제약에 의해 제한되는 경향이 있어, 장인정신 접근법은 일반적으로 모델링 검색 공간의 일부만을 탐색한다.
장인정신 접근법은 또한 매우 비쌀 수 있다. 장인정신 접근법을 통해 예측 모델을 개발하면 종종 컴퓨팅 자원과 고가의(well-paid) 데이터 분석자에 상당한 투자가 수반된다. 이러한 상당한 비용을 감안할 때, 조직은, 비용이 적게 들지만 광대한 예측 모델링 공간의 단지 작은 부분(예를 들어, 모델링 공간의 일부 특정 예측 문제에 대한 수용 가능한 해결책을 포함하는 것으로 선험적으로 예상되는 부분)만을 탐색하는 경향이 있는 쿠키 커터 방식을 선호하여 장인정신 접근법을 삼가하고 있다. 쿠키 커터 접근법은 미탐색 옵션에 비해 성능이 떨어지는 예측 모델을 생성할 수 있다.
예측 문제에 대한 잠재적인 예측 모델링 기술의 공간을 체계적이고 비용 효율적으로 평가하는 도구에 대한 필요성이 존재한다. 여러 방식으로, 예측 모델을 생성하는 기존의 접근법은 귀중한 자원(예를 들어, 석유, 금, 광물, 보석 등)을 탐사하는 것과 유사하다. 탐사는 가치 있는 발견으로 이어질 수 있지만, 이전 결과의 방대한 라이브러리에 기초하여 신중하게 계획된 탐사 굴착 또는 시추와 조합된 지질 탐사보다 훨씬 효율적이지 않다. 본 발명자들은 통계적 학습 기술이 예측 문제에 대한 잠재적인 예측 모델링 해결책의 공간을 체계적이고 비용 효율적으로 평가하는 데 사용될 수 있음을 인식하고 이해하고 있다.
시계열 예측 모델링
많은 예측 문제는 하나 이상의 과거 시간에서의 하나 이상의 입력 변수("피처")의 값에 기초하여 하나 이상의 장래의 시간에서 하나 이상의 출력 변수("타겟")의 값을 예측하는 문제를 제기한다. 이러한 예측 문제는 "시계열 예측 문제"라고 할 수 있으며, 이러한 문제를 모델링하는 예측 모델은 "시계열 예측 모델" 또는 "시계열 모델"이라고 할 수 있다.
시계열 모델에 대한 모델링 검색 공간을 엄격하고 효율적으로 탐색하기 위한 기술이 필요하다. 본 발명자들은, 시계열 모델링 절차의 특정 양태, 예를 들어, 모델을 트레이닝시키는 데 사용된 트레이닝 데이터의 양, 입력 변수의 관측치 사이의 시간 간격, 트레이닝 데이터가 커버하는 시기간의 길이, 트레이닝 데이터가 커버하는 시기간의 최근성, 모델에 제공되는 피처 값과 연관된 시간과 모델에 의해 예측되는 타겟 값과 연관 시간 사이의 기간("스킵 범위"), 및 모델이 타겟의 값을 예측하는 기간("예상 범위")을, 명시적으로 파라미터화함으로써 시계열 모델링 검색 공간의 엄격하고 효율적인 탐색(효율적인 트레이닝, 테스트 및 시계열 모델의 비교를 포함함)이 용이해질 될 수 있음을 인식하고 이해하고 있다.
일반적으로, 본 명세서에서 설명되는 주제의 혁신적인 양태는 예측 모델링 절차를 수행하는 단계를 포함하는 예측 모델링 방법으로 구현될 수 있으며, 이 예측 모델링 절차: (a) 하나 이상의 데이터 세트들을 포함하는 시계열 데이터를 얻는 단계로서, 각각의 데이터 세트는 복수의 관측치들을 포함하며, 각각의 관측치는 (1) 상기 관측치와 연관된 시간의 표시 및 (2) 하나 이상의 변수들의 각각의 값들을 포함하는, 상기 단계; (b) 상기 시계열 데이터의 시간 간격을 결정하는 단계; (c) 상기 하나 이상의 변수들을 타겟들로서 식별하고, 제로(0) 이상의 다른 변수들을 피처들로서 식별하는 단계; (d) 상기 시계열 데이터에 의해 나타내어지는 예측 문제와 연관된 예상 범위 및 스킵(skip) 범위를 결정하는 단계로서, 상기 예상 범위는 상기 타겟들의 값들이 예측될 기간의 지속 시간을 나타내고, 상기 스킵 범위는 상기 예상 범위에서의 가장 빠른 예측과 연관된 시간과 상기 예상 범위에서의 예측이 기초가 되는 최근 관측치와 연관된 시간 사이의 시간 래그(lag)를 나타내는 단계; (e) 상기 시계열 데이터로부터 트레이닝 데이터를 생성하는 단계로서, 상기 트레이닝 데이터는 상기 데이터 세트들 중 적어도 하나의 데이터 세트의 관측치들의 제1 서브세트를 포함하고, 상기 관측치들의 제1 서브세트는 상기 관측치들의 트레이닝-입력 및 트레이닝-출력 컬렉션들을 포함하고, 상기 트레이닝-입력 및 상기 트레이닝-출력 컬렉션들에서 상기 관측치들과 연관된 시간들은 트레이닝-입력 시간 범위 및 트레이닝-출력 시간 범위에 각각 대응하고, 상기 스킵 범위는 상기 트레이닝-입력 시간 범위의 끝을 상기 트레이닝-출력 시간 범위의 시작으로부터 분리하고, 상기 트레이닝-출력 시간 범위의 지속 시간은 적어도 상기 예상 기간만큼 긴, 상기 단계; (f) 상기 시계열 데이터로부터 테스팅 데이터를 생성하는 단계로서, 상기 테스팅 데이터는 상기 데이터 세트들 중 적어도 하나의 데이터 세트의 관측치들의 제2 서브세트를 포함하고, 상기 관측치들의 제2 서브세트는 상기 관측치들의 테스트-입력 및 테스트-유효성 검증 컬렉션들을 포함하고, 상기 테스트-입력 및 상기 테스트-유효성 검증 컬렉션들에서 상기 관측치들과 연관된 시간들은 테스트-입력 시간 범위 및 테스트-유효성 검증 시간 범위에 각각 대응하고, 상기 스킵 범위는 상기 테스트-입력 시간 범위의 끝을 상기 테스트-유효성 검증 시간 범위의 시작으로부터 분리하고, 상기 테스트-유효성 검증 시간 범위의 지속 시간은 적어도 상기 예상 범위만큼 긴, 상기 단계; (g) 예측 모델을 상기 트레이닝 데이터에 맞춤화하는(fitting) 단계; 및 (h) 맞춤화된 모델을 상기 테스팅 데이터에 대해 테스트하는 단계를 포함한다.
이 양태의 다른 실시예는 각각 이 방법의 액션을 수행하도록 구성된, 하나 이상의 컴퓨터 저장 디바이스 상에 기록된 대응하는 컴퓨터 시스템, 장치 및 컴퓨터 프로그램을 포함한다. 하나 이상의 컴퓨터의 시스템은 소프트웨어, 펌웨어, 하드웨어 또는 이들의 조합이 동작 중에 있는 시스템 상에 설치되어 시스템이 액션을 수행하게 함으로써 특정 액션을 수행하도록 구성될 수 있다. 하나 이상의 컴퓨터 프로그램은 데이터 프로세싱 장치에 의해 실행될 때 장치로 하여금 액션을 수행하게 하는 명령어를 포함함으로써 특정 액션을 수행하도록 구성될 수 있다.
전술한 실시예 및 다른 실시예는 각각 단독으로 또는 조합하여 하기의 특징들 중 하나 이상을 선택적으로 포함할 수 있다. 일부 실시예에서, 시계열 데이터의 시간 간격은 데이터 세트들 중 적어도 하나에 포함된 관측치들의 적어도 서브세트와 연관된 시간들에 적어도 부분적으로 기초하여 결정된다. 일부 실시예에서, 시계열 데이터의 시간 간격을 결정하는 단계는: 데이터 세트들의 각각에 대해, 상기 데이터 세트의 각각의 시간 간격을 결정하는 단계; 데이터 세트들의 상기 시간 간격들이 불균일한 것으로 결정하는 단계; 및 시계열 데이터의 시간 간격을 상기 데이터 세트들의 시간 간격에 설정하는 단계를 포함한다. 일부 실시예에서, 상기 데이터 세트의 시간 간격을 결정하는 단계는: 상기 데이터 세트에 포함된 연속 관측치들의 하나 이상의 쌍에 대해, 상기 연속 관측치들 사이의 각각의 시기간을 결정하는 단계; 상기 연속 관측치들의 쌍 사이의 시기간이 균일한 것으로 결정하는 단계; 및 상기 데이터 세트의 시간 간격을 상기 연속 관측치들 쌍 사이의 시기간에 설정하는 단계를 포함한다.
일부 실시예에서, 상기 시계열 데이터의 시간 간격을 결정하는 단계는: 상기 데이터 세트들의 각각에 대해, 상기 데이터 세트의 각각의 시간 간격을 결정하는 단계; 및 상기 데이터 세트들 중 적어도 2개의 상기 시간 간격들이 상이한 것으로 결정하는 단계를 포함하고, 상기 시계열 데이터의 시간 간격은 (1) 상기 데이터 세트들의 각각에 포함된 상기 관측치들의 각각의 부분들, 및/또는 (2) 상기 데이터 세트들의 각각의 상기 각각의 시간 간격들에 적어도 부분적으로 기초하여 결정한다. 일부 실시예에서, 상기 데이터 세트의 상기 각각의 시간 간격을 결정하는 단계는: 상기 데이터 세트에 포함된 연속 관측치들의 각각의 쌍 사이의 각각의 기간을 결정하는 단계; 상기 연속 관측치들 쌍 사이의 상기 기간이 복수의 불균일 지속 시간들을 나타내는 경우, 상기 데이터 세트의 시간 간격이 (1) 상기 불균일 지속 시간들의 각각을 나타내는 상기 연속 관측치들의 쌍의 각각의 부분들, 및/또는 (2) 상기 기간의 지속 시간들에 적어도 부분적으로 기초하여 결정되는 단계; 및 상기 연속 관측치들 쌍 사이의 시기간이 불균일 지속 시간인 경우, 상기 데이터 세트의 시간 간격이 상기 시기간의 각각의 지속 시간인 단계를 포함한다. 일부 실시예에서, 상기 시계열 데이터의 시간 간격은 상기 데이터 세트들의 각각의 상기 시간 간격들 각각의 정수배인 최단 시간 간격이다.
일부 실시예에서, 본 발명의 액션은: 각각의 데이터 세트에 대해, 상기 데이터 세트의 시간 간격이 상기 시계열 데이터의 시간 간격보다 짧은 경우, 상기 데이터 세트의 관측치들을 다운-샘플링함으로써, 상기 데이터 세트의 시간 간격을 상기 시계열 데이터의 시간 간격으로 변환하는 단계를 더 포함한다. 일부 실시예에서, 상기 데이터 세트의 관측치들을 다운-샘플링하는 단계는, 상기 데이터 세트에 대응하는 시기간에서 상기 시계열 데이터의 시간 간격의 각각의 인스턴스에 대해: 상기 시계열 데이터의 시간 간격의 상기 각각의 인스턴스에 대응하는 시간들과 연관된 상기 데이터 세트의 모든 관측치들을 식별하는 단계; 집계 관측치를 생성하기 위해 식별된 관측치들을 집계하는 단계; 및 상기 데이터 세트의 식별된 관측치들을 상기 집계 관측치로 대체하는 단계를 포함한다. 일부 실시예에서, 상기 시계열 데이터의 시간 간격의 상기 인스턴스에 대응하는 상기 식별된 관측치들의 수는 상기 시계열 데이터의 시간 간격과 상기 데이터 세트의 시간 간격 사이의 비율과 동등하다. 일부 실시예에서, 상기 식별된 관측치들을 집계하는 단계는, 상기 집합 관측치의 각각의 변수의 값을, (1) 상기 식별된 관측치들의 가장 초기에 포함된 대응하는 변수값, (2) 상기 식별된 관측치들의 가장 최근에 포함된 대응하는 변수값, (3) 상기 식별된 관측치들에 포함된 대응하는 변수값들의 최대값, (4) 상기 식별된 관측치들에 포함된 대응하는 변수값들의 최소값, (5) 상기 식별된 관측치들에 포함된 대응하는 변수값들의 평균, 또는 (6) 상기 식별된 관측치들에 포함된 대응하는 변수값들의 함수의 값에 설정하는 단계를 포함한다.
일부 실시예에서, 상기 시계열 데이터의 시간 간격은 상기 데이터 세트들의 시간 간격으로 이루어진 그룹으로부터 선택된다. 일부 실시예에서, 상기 데이터 세트들은 제1 시간 간격을 나타내는 제1 데이터 세트 및 상기 제1 시간 간격보다 큰 제2 시간 간격을 나타내는 제2 데이터 세트를 포함하고, 상기 제2 시간 간격은 상기 시계열 데이터의 시간 간격으로서 선택되고, 상기 방법은: 상기 제1 데이터 세트의 관측치들을 다운-샘플링함으로써, 상기 제1 데이터 세트의 시간 간격을 상기 시계열 데이터의 시간 간격으로 변환하는 단계를 더 포함한다. 일부 실시예에서, 상기 시계열 데이터의 시간 간격은 상기 데이터 세트의 시간 간격들의 각각과 상이하다.
일부 실시예에서, 상기 시계열 데이터의 관측치들의 적어도 그룹은 제1 변수의 각각의 값들을 포함하고, 상기 방법은, 상기 예측 모델을 상기 트레이닝 데이터에 맞춤화하고, 상기 맞춤화된 모델을 상기 테스팅 데이터에 대해 테스트하기 전에: 상기 제1 변수의 값들이 시간 값들을 포함하는 것으로 결정하는 단계; 상기 그룹의 각각의 관측치에 대해, 제2 변수의 각각의 값을 생성하는 단계로서, 상기 제2 변수의 값은 상기 제1 변수의 시간 값과 기준 시간 값 사이의 오프셋을 포함하는, 단계; 및 상기 제2 변수의 값들을 상기 그룹 내의 각각의 관측치들에 가산하는 단계를 더 포함한다. 일부 실시예에서, 본 방법의 액션은 상기 그룹 내의 관측치들로부터 상기 제1 변수의 상기 값들을 제거하는 단계를 더 포함한다. 일부 실시예에서, 상기 기준 시간은 이벤트의 날짜를 포함한다. 일부 실시예에서, 상기 이벤트는 출생, 결혼, 학교 졸업, 고용주에 대한 고용의 개시 또는 특정 직위에서의 업무의 시작을 포함한다.
일부 실시예에서, 상기 변수들은 제1 변수 및 제2 변수를 포함하고, 본 방법은의 액션은: 상기 제1 변수의 값의 변화들과 상기 제2 변수의 값의 상관된 변화들로, 상기 제1 변수 및 상기 제2 변수의 값들의 변화들이 상관되는 것으로 결정하는 단계; 및 상기 제1 변수의 값의 변화들과 상기 제2 변수의 값의 상기 상관된 변화들 사이의 상기 시간 래그의 지속 시간을 나타내는 그래픽 컨텐츠를 그래픽 사용자 인터페이스를 통해 표시하는 단계를 더 포함한다.
일부 실시예에서, 상기 예상 범위는 (1) 상기 시계열 데이터의 시간 간격, (2) 상기 시계열 데이터에 포함된 관측치들의 수, (3) 상기 시계열 데이터에 대응하는 기간, 및/또는 (4) 마이크로초, 밀리초, 초, 분, 시간, 일, 주, 월, 분기, 계절, 년, 십년, 백년 및 천년으로 이루어지는 그룹으로부터 선택되는 자연 기간에 적어도 부분적으로 기초하여 결정된다. 일부 실시예에서, 상기 예상 범위는 상기 시계열 데이터의 시간 간격의 정수배이다. 일부 실시예에서, 상기 예상 범위의 연속 예측들과 연관된 시간들 사이의 시기간은 상기 시계열 데이터의 시간 간격과 동등하다.
일부 실시예에서, 상기 스킵 범위는, 상기 시계열 데이터의 수집에서의 대기 시간(latency), 상기 시계열 데이터의 통신에서의 대기 시간, 상기 시계열 데이터의 분석에서의 대기 시간, 상기 시계열 데이터의 분석의 통신에서의 대기 시간, 및/또는 상기 시계열 데이터의 분석에 기초한 액션들의 구현에서의 대기 시간에 적어도 부분적으로 기초하여 결정된다.
일부 실시예에서, 본 방법의 액션은, 상기 트레이닝-입력 시간 범위의 지속 시간을, 상기 시계열 데이터에 포함된 관측치들의 전체 수, 시간 경과에 따른 상기 변수들의 적어도 하나의 값들에서의 변동의 양, 상기 변수들의 적어도 하나의 값들에서의 정기적인 변동의 양, 복수의 시기간들에 대한 상기 변수들의 적어도 하나의 값들에서의 변동의 일관성, 및/또는 상기 예상 범위의 지속 시간에 적어도 부분적으로 기초하여 결정하는 단계를 더 포함한다. 일부 실시예에서, 상기 예측 모델을 상기 트레이닝 데이터에 맞춤화하는 단계는, 상기 예측 모델을 상기 트레이닝-입력 시간 범위의 부분에 대응하는 상기 트레이닝 데이터의 서브세트에 맞춤화하는 단계를 포함하고, 상기 트레이닝-입력 시간 범위의 부분은 상기 트레이닝-입력 시간 범위의 시작 시간에 후속하는 시간에서 시작하고, 상기 트레이닝-입력 시간 범위의 끝 시간에서 끝난다. 일부 실시예에서, 상기 트레이닝-입력 시간 범위의 상기 부분의 지속 시간은 상기 예상 범위의 상기 지속 시간의 정수배이다.
일부 실시예에서, 본 방법의 액션은, 상기 예측 모델을 상기 트레이닝 데이터에 맞춤화하기 전에 상기 트레이닝 데이터를 다운-샘플링하는 단계를 더 포함한다. 일부 실시예에서, 상기 트레이닝 데이터를 다운-샘플링하는 단계는: 상기 트레이닝 데이터로부터 상기 데이터 세트들의 적어도 하나로부터 얻어진 모든 관측치들을 제거하는 단계를 포함한다. 일부 실시예에서, 상기 트레이닝 데이터를 다운-샘플링하는 단계는: 상기 트레이닝 데이터의 다운-샘플링된 시간 간격을 상기 시계열 데이터의 시간 간격의 정수배로 설정하는 단계; 및 상기 트레이닝 데이터의 다운-샘플링된 시간 간격의 각각의 인스턴스에 대해: 상기 트레이닝 데이터의 다운-샘플링된 시간 간격의 각각의 인스턴스에 대응하는 시간들과 연관된 상기 트레이닝 데이터의 모든 관측치들을 식별하는 단계, 집계 관측치를 집계하기 위해 상기 식별된 관측치들을 집계하는 단계, 및 상기 트레이닝 데이터의 상기 식별된 관측치들을 상기 집계 관측치로 대체하는 단계를 포함한다. 일부 실시예에서, 본 방법의 액션은 테스팅 데이터에 대해 맞춤화된 모델을 테스트하기 전에 테스팅 데이터를 다운-샘플링하는 단계를 더 포함한다.
일부 실시예에서, 본 방법의 액션은 예측 모델의 상호 유효성 검증(performing cross-validation)을 수행하는 것을 더 포함한다. 일부 실시예에서, 상기 트레이닝 데이터는 제1 트레이닝 데이터이고, 상기 테스팅 데이터는 제1 테스팅 데이터이고, 상기 맞춤화된 모델은 제1 맞춤화된 모델이고, 상기 예측 모델의 상호 유효성 검증을 수행하는 단계는: (ⅰ) 상기 시계열 데이터로부터 제2 트레이닝 데이터 및 제2 테스팅 데이터를 생성하는 단계로서, 상기 제2 트레이닝 데이터는 상기 데이터 세트들의 적어도 하나의 관측치들의 제3 서브세트를 포함하고, 상기 제2 테스팅 데이터는 상기 데이터 세트들의 적어도 하나의 관측치들의 제4 서브세트를 포함하는, 상기 단계; (j) 제2 맞춤화된 모델을 얻기 위해 상기 예측 모델을 상기 제2 트레이닝 데이터에 맞춤화하는 단계; 및 (k) 상기 제2 맞춤화된 모델을 상기 제2 테스팅 데이터에 대해 테스트하는 단계를 포함한다.
일부 실시예에서, 상기 관측치들의 제1 서브세트는 트레이닝 시간들의 제1 범위를 커버하는 슬라이딩 트레이닝 윈도우에 대응하고, 상기 제1 서브세트에 포함된 각각의 관측치는 트레이닝 시간들의 상기 제1 범위 내의 시간과 연관되고, 관측치들의 상기 제3 서브세트는 트레이닝 시간들의 제2 범위를 커버하는 슬라이딩 트레이닝 윈도우에 대응하고, 상기 제3 서브세트에 포함되는 각각의 관측치는 트레이닝 시간들의 상기 제2 범위 내의 시간과 연관되고, 트레이닝 시간들의 상기 제1 범위의 가장 이른 시간은 트레이닝 시간들의 상기 제2 범위의 가장 이른 시간보다 더 이르다. 일부 실시예에서, 상기 관측치들의 제2 서브세트는 테스팅 시간들의 제1 범위를 커버하는 슬라이딩 테스트 윈도우에 대응하고, 상기 제2 서브세트에 포함된 각각의 관측치는 테스팅 시간들의 상기 제1 범위 내의 시간과 연관되고, 관측치들의 상기 제4 서브세트는 테스팅 시간들의 제2 범위를 커버하는 슬라이딩 테스트 윈도우에 대응하고, 상기 제4 서브세트에 포함되는 각각의 관측치는 테스팅 시간들의 상기 제2 범위 내의 시간과 연관되고, 테스팅 시간들의 상기 제1 범위의 가장 이른 시간은 테스팅 시간들의 상기 제2 범위의 가장 이른 시간보다 더 이르다. 일부 실시예에서, 상기 제1 테스팅 시간 범위는 상기 제2 트레이닝 시간 범위와 부분적으로 중첩된다. 일부 실시예에서, 상기 제2 테스팅 시간 범위는 상기 제1 트레이닝 시간 범위의 임의의 부분과 중첩되지 않고, 상기 제2 트레이닝 시간 범위의 임의의 부분과 중첩되지 않는다.
일부 실시예에서, 본 방법의 액션은, 상기 시계열 데이터를 적어도 제1 분할 및 제2 분할을 포함하는 복수의 분할들로 분할하는 단계를 더 포함한다. 일부 실시예에서, 상기 시계열 데이터를 복수의 분할들로 분할하는 단계는, 상기 데이터 세트들의 각각을 대응하는 분할에 할당하는 단계를 포함한다. 일부 실시예에서, 상기 시계열 데이터를 복수의 분할들로 분할하는 단계는 상기 시계열 데이터를 시간적으로 분할하는 단계를 포함하고, 상기 분할들 각각은 상기 시계열 데이터와 연관된 시기간의 각각의 부분에 대응하고, 상기 시계열 데이터에 포함된 각각의 관측치는 상기 관측치와 연관된 상기 시간과 매칭되는 상기 시기간의 부분에 대응하는 분할에 할당된다.
일부 실시예에서, 상기 제1 트레이닝 데이터는 상기 시계열 데이터의 제1 분할에 포함된 관측치들의 서브세트를 포함하고; 상기 제1 테스팅 데이터는 상기 제1 분할을 제외한 상기 시계열 데이터의 분할들 모두에 포함된 상기 관측치들의 각각의 서브세트들을 포함하고; 상기 제2 트레이닝 데이터는 상기 시계열 데이터의 제2 분할에 포함된 상기 관측치들의 서브세트를 포함하고; 및 상기 제2 테스팅 데이터는 상기 제2 분할을 제외한 상기 시계열 데이터의 분할들 모두에 포함된 상기 관측치들의 각각의 서브세트들을 포함한다. 일부 실시예에서, 상기 시계열 데이터의 제1 분할은 상기 제1 트레이닝 데이터 및 상기 제2 트레이닝 데이터와 상기 제1 테스팅 데이터 및 상기 제2 테스팅 데이터를 포함하고, 상기 시계열 데이터의 제2 분할은 홀드아웃(holdout) 데이터를 포함하고, 상기 방법의 액션은 상기 제1 맞춤화된 모델 및 상기 제2 맞춤화된 모델을 상기 홀드아웃 데이터에 대해 테스트하는 단계를 더 포함한다. 일부 실시예에서, 상기 홀드아웃 데이터에는 예측 모델이 맞춤화되지 않는다.
일부 실시예에서, 본 방법의 액션은 상기 예측 모델의 네스팅된(nested) 상호 유효성 검증을 수행하는 단계를 더 포함한다. 일부 실시예에서, 상기 예측 모델의 네스팅된 상호 유효성 검증을 수행하는 단계는: 적어도 상기 시계열 데이터의 제1 분할 및 상기 시계열 데이터의 제2 분할을 포함하는 제1 복수의 분할들로 상기 시계열 데이터를 분할하는 단계; 및 적어도 상기 시계열 데이터의 상기 제1 분할의 제1 분할 및 상기 시계열 데이터의 상기 제1 분할의 제2 분할을 포함하는 상기 시계열 데이터의 상기 제1 분할의 복수의 분할들로 상기 시계열 데이터의 상기 제1 분할을 분할하는 단계를 포함하고, 상기 트레이닝 데이터는 상기 시계열 데이터의 상기 제1 분할의 상기 제1 분할을 포함하고, 상기 테스팅 데이터는 적어도 상기 시계열 데이터의 상기 제1 분할의 상기 제1 분할 이외의 상기 시계열 데이터의 상기 제1 분할의 복수의 분할들을 포함한다.
일부 실시예에서, 상기 트레이닝 데이터는 제1 트레이닝 데이터이고, 상기 테스팅 데이터는 제1 테스팅 데이터이고, 상기 맞춤화된 모델은 제1 맞춤화된 모델이고, 상기 예측 모델의 네스팅된 상호 유효성 검증을 수행하는 단계는: (i) 상기 시계열 데이터의 상기 제1 분할로부터, 제2 트레이닝 데이터 및 제2 테스팅 데이터를 생성하는 단계로서, 상기 제2 트레이닝 데이터는 상기 시계열 데이터의 상기 제1 분할의 상기 제2 분할을 포함하고, 상기 제2 테스팅 데이터는 적어도 상기 시계열 데이터의 상기 제1 분할의 상기 제2 분할 이외의 상기 데이터 세트의 제1 분할의 복수의 분할들을 포함하는, 상기 단계; (j) 제2 맞춤화된 모델을 얻기 위해 상기 예측 모델을 상기 제2 트레이닝 데이터에 맞춤화하는 단계; 및 (k) 상기 제2 맞춤화된 모델을 상기 제2 테스팅 데이터에 대해 테스트하는 단계를 더 포함한다.
일부 실시예에서, 상기 네스팅된 상호 유효성 검증을 수행하는 단계는: 상기 제1 맞춤화된 모델 및 상기 제2 맞춤화된 모델을 상기 시계열 데이터의 상기 제2 분할에 대해 테스트하는 단계; 및 상기 제1 맞춤화된 모델 및 상기 제2 맞춤화된 모델을 상기 시계열 데이터의 상기 제2 분할에 대해 테스트한 결과에 기초하여, 상기 제1 맞춤화된 모델과 상기 제2 맞춤화된 모델을 비교하는 단계를 더 포함한다.
일부 실시예에서, 본 방법의 액션은, 상기 맞춤화된 모델에 대해, 상기 시계열 데이터의 상기 하나 이상의 피처들의 모델-특유 예측 값들을 결정하는 단계를 더 포함한다. 일부 실시예에서, 본 방법의 액션은, 상기 피처들의 상기 모델-특유 예측값들에 대해 적어도 부분적으로 기초하여, 상기 시계열 데이터로부터 피처를 제거하고, 상기 시계열 데이터에서 2개 이상의 피처들로부터 도출된 피처를 생성하고 상기 도출된 피처를 상기 시계열 데이터에 가산하고, 상기 예측 모델을 다른 예측 모델과 혼합하고, 그리고/또는 상기 예측 문제에 대해 예측 모델링 절차들의 적절성을 평가하는 프로세스 중에 자원들을 할당하는 것으로 이루어지는 그룹으로부터 선택되는 적어도 하나의 액션을 수행하는 단계를 더 포함한다.
일부 실시예에서, 본 방법의 액션은: 상기 예측 문제의 특성들 및/또는 각각의 예측 모델링 절차들의 속성들에 적어도 부분적으로 기초하여, 상기 예측 문제에 대한 복수의 예측 모델링 절차들의 적절성을 결정하는 단계; 상기 예측 문제에 대해 선택된 모델링 절차들의 결정된 적절성에 기초하여 상기 복수의 예측 모델링 절차들로부터 하나 이상의 예측 모델링 절차들을 선택하는 단계; 및 상기 하나 이상의 예측 모델링 절차들을 수행하는 단계를 더 포함한다.
일부 실시예에서, 상기 하나 이상의 예측 모델링 절차들을 수행하는 단계는: 명령어를 복수의 프로세싱 노드들에 송신하는 단계로서, 상기 명령어는 상기 선택된 모델링 절차들의 실행을 위해 상기 프로세싱 노드들의 자원들을 할당하는 자원 할당 스케줄을 포함하고, 상기 자원 할당 스케줄은 상기 예측 문제에 대해 상기 선택된 모델링 절차들의 적절성에 적어도 부분적으로 기초하는, 상기 단계; 상기 자원 할당 스케줄에 따라 상기 복수의 프로세싱 노드들에 의해 상기 선택된 모델링 절차들의 실행의 결과들을 수신하는 단계로서, 상기 결과들은 상기 선택된 모델링 절차들에 의해 생성된 예측 모델들, 및/또는 상기 예측 문제와 연관된 시계열 데이터에 대한 상기 생성된 모델들의 스코어들을 포함하는, 상기 단계; 및 상기 생성된 모델들로부터, 상기 선택된 예측 모델의 스코어에 적어도 부분적으로 기초하여 상기 예측 문제에 대해 예측 모델을 선택하는 단계를 포함한다.
일부 실시예에서, 본 방법의 액션은, 상기 맞춤화된 모델을 다른 맞춤화된 모델과 혼합하여 혼합된 예측 모델을 생성하는 단계를 더 포함한다.
일부 실시예에서, 본 방법의 액션은, 상기 맞춤화된 모델을 배치하는 단계를 더 포함한다. 일부 실시예에서, 상기 시계열 데이터는 제1 시계열 데이터이고, 상기 맞춤화된 모델을 배치하는 단계는, 상기 맞춤화된 모델을 상기 예측 문제의 하나 이상의 인스턴스들을 나타내는 제2 시계열 데이터에 적용함으로써 하나 이상의 예측들을 생성하는 단계를 포함하고, 상기 제1 시계열 데이터는 상기 제2 시계열 데이터를 포함하지 않는다. 일부 실시예에서, 상기 시계열 데이터는 제1 시계열 데이터이고, 상기 맞춤화된 모델을 배치하는 단계는, 제2 시계열 데이터에 적어도 부분적으로 기초하여 상기 맞춤화된 모델을 리프레시하는 단계를 포함한다. 일부 실시예에서, 상기 맞춤화된 모델은 제1 맞춤화된 모델이고, 상기 제2 시계열 데이터에 적어도 부분적으로 기초하여 상기 맞춤화된 모델을 리프레시하는 단계는: 제2 맞춤화된 모델을 생성하기 위해 상기 예측 모델링 절차를 상기 제2 시계열 데이터에 대해 수행하는 단계; 및 리프레시된 예측 모델을 생성하기 위해 상기 제1 맞춤화된 모델과 상기 제2 맞춤화된 모델을 혼합하는 단계를 포함한다. 일부 실시예에서, 상기 제2 시계열 데이터에 적어도 부분적으로 기초하여 상기 맞춤화된 모델을 리프레시하는 단계는: 리프레시된 예측 모델을 생성하기 위해 상기 제1 시계열 데이터의 적어도 일부 및 상기 제2 시계열 데이터의 적어도 일부를 포함하는 제3 시계열 데이터에 대해 상기 예측 모델링 절차를 수행하는 단계를 포함한다.
일부 실시예에서, 상기 맞춤화된 모델은 하나 이상의 서버들에 배치되고, 다른 맞춤화된 모델들은 또한 상기 하나 이상의 서버들에 배치되고, 상기 맞춤화된 모델 및 상기 다른 맞춤화된 모델에 대한 예측 요청은, (1) 예측을 생성하기 위해 상기 맞춤화된 모델들의 각각에 의해 사용된 시간 양의 추정, 및/또는 (2) 상기 맞춤화된 모델들에 대한 예측 요청들이 수신되는 빈도의 추정에 적어도 부분적으로 기초하여 상기 서버들 중에 할당된다. 일부 실시예에서, 각각의 예측 요청이 각각의 스레드(thread)에 할당되고, 상기 각각의 예측 요청은 연관된 대기 시간-감도 값을 갖고, 특정 서버 상에서 실행되는 스레드들의 수는 상기 특정 서버 상에서 실행되는 상기 스레드들의 대기 시간-감도 값들에 적어도 부분적으로 기초하여 결정된다.
일부 실시예에서, 본 방법의 액션은: 상기 시계열 데이터에 포함된 2개 이상의 피처들의 상호 작용 강도를 나타내는 메트릭의 값을 결정하는 단계; 및 상기 메트릭의 상기 값이 임계값을 초과하는 경우, 상기 2개 이상의 피처들의 상기 값들에 기초하여 새로운 피처의 시계열 값들을 생성하고, 상기 새로운 피처를 상기 시계열 데이터에 가산하는 단계를 더 포함한다.
일부 실시예에서, 본 방법의 액션은, 상기 시계열 데이터의 시간 분해능을 결정하는 단계를 더 포함한다. 일부 실시예에서, 상기 타겟은 사용자 입력에 기초하여 식별된다.
본 양태의 다른 실시예는, 예측 모델링 장치를 포함하고, 본 장치는: 예측 모델링 절차를 인코딩하는 머신-실행 가능 모듈을 저장하도록 구성되는 메모리로서, 상기 예측 모델링 절차는 적어도 하나의 사전-프로세싱 작업 및 적어도 하나의 모델-맞춤 작업을 포함하는 복수의 작업을 포함하는, 상기 메모리; 및 상기 머신-실행 가능 모듈을 실행하도록 구성되는 적어도 하나의 프로세서를 포함하고, 상기 머신-실행 가능 모듈의 실행은 상기 장치로 하여금 상기 예측 모델링 절차를 수행하게 한다. 사전-프로세스 작업의 수행은: (a) 하나 이상의 데이터 세트들을 포함하는 시계열 데이터를 얻는 단계로서, 각각의 데이터 세트는 복수의 관측치들을 포함하며, 각각의 관측치는 (1) 상기 관측치와 연관된 시간의 표시 및 (2) 하나 이상의 변수들의 각각의 값들을 포함하는, 상기 단계, (b) 상기 시계열 데이터의 시간 간격을 결정하는 단계, (c) 상기 하나 이상의 변수들을 타겟들로서 식별하고, 제로 이상의 다른 변수들을 피처들로서 식별하는 단계; 및 (d) 상기 시계열 데이터에 의해 나타내어지는 예측 문제와 연관된 예상 범위 및 스킵 범위를 결정하는 단계를 포함하고, 예상 범위는 상기 타겟들의 값들이 예측될 기간의 지속 시간을 나타내고, 상기 스킵 범위는 상기 예상 범위에서의 가장 빠른 예측과 연관된 시간과 상기 예상 범위에서의 예측들이 기초가 되는 최근 관측치와 연관된 시간 사이의 시간 래그를 나타낸다. 예측 모델링 절차의 수행은 모델-맞춤 작업의 수행을 포함하고,이 모델-맞춤 작업의 수행: (e) 상기 시계열 데이터로부터 트레이닝 데이터를 생성하는 단계로서, 상기 트레이닝 데이터는 상기 데이터 세트들 중 적어도 하나의 데이터 세트의 관측치들의 제1 서브세트를 포함하고, 상기 관측치들의 제1 서브세트는 상기 관측치들의 트레이닝-입력 및 트레이닝-출력 컬렉션들을 포함하고, 상기 트레이닝-입력 및 상기 트레이닝-출력 컬렉션들에서 상기 관측치들과 연관된 시간들은 트레이닝-입력 시간 범위 및 트레이닝-출력 시간 범위에 각각 대응하고, 상기 스킵 범위는 상기 트레이닝-입력 시간 범위의 끝을 상기 트레이닝-출력 시간 범위의 시작으로부터 분리하고, 상기 트레이닝-출력 시간 범위의 지속 시간은 적어도 상기 예상 기간만큼 긴, 상기 단계, (f) 상기 시계열 데이터로부터 테스팅 데이터를 생성하는 단계로서, 상기 테스팅 데이터는 상기 데이터 세트들 중 적어도 하나의 데이터 세트의 관측치들의 제2 서브세트를 포함하고, 상기 관측치들의 제2 서브세트는 상기 관측치들의 테스트-입력 및 테스트-유효성 검증 컬렉션들을 포함하고, 상기 테스트-입력 및 상기 테스트-유효성 검증 컬렉션들에서 상기 관측치들과 연관된 시간들은 테스트-입력 시간 범위 및 테스트-유효성 검증 시간 범위에 각각 대응하고, 상기 스킵 범위는 상기 테스트-입력 시간 범위의 끝을 상기 테스트-유효성 검증 시간 범위의 시작으로부터 분리하고, 상기 테스트-유효성 검증 시간 범위의 지속 시간은 적어도 상기 예상 범위만큼 긴, 상기 단계, (g) 예측 모델을 상기 트레이닝 데이터에 맞춤화하는 단계; 및 (h) 맞춤화된 모델을 상기 테스팅 데이터에 대해 테스트하는 단계를 포함한다. 머신-실행 가능 모듈은 작업들 사이의 의존성을 나타내는 지향 그래프를 포함할 수 있다.
피처의 예측 값 결정
예측 문제에 대한 정확한 예측 모델이 이용 가능한 경우에도, (1) 예측 문제 자체 및 (2) 특정 예측 모델이 어떻게 정확한 예측 결과를 생성하는지를 이해하는 것이 어려울 수 있다. "피처 중요도"의 메트릭은 이러한 이해를 용이하게 할 수 있다. 일반적으로 피처 중요도 메트릭은 데이터 세트가 나타내는 예측 문제의 결과를 예측하기 위해 데이터 세트의 피처에 대한 예측값을 나타낸다. 피처 중요도를 측정하기 위한 종래 기술은 일반적으로 특정 유형의 예측 모델에만 적용 가능하며, 일반적으로 다른 유형의 예측 모델과 함께 사용하기에 적합하지 않다. 따라서, 임의의 예측 모델 또는 다양한 예측 모델 세트에 대한 피처 중요도를 측정할 수 있는 도구가 필요하다. 또한, 피처 중요도 메트릭을 사용하여 예측 모델링 절차 평가, 엔지니어링 작업 기능 및 예측 모델 혼합에 대한 자원 할당을 가이드할 수 있는 도구가 필요하며, 이에 의해 문제를 예측하기 위한 잠재적 예측 모델링 기술의 공간의 비용 효과적인 평가를 용이하게 한다.
일반적으로, 본 명세서에 설명되는 주제의 다른 혁신적인 양태는 방법으로 구현될 수 있으며, 본 방법은: (a) 복수의 예측 모델링 절차들을 수행하는 단계로서, 상기 예측 모델링 절차들의 각각은 예측 모델과 연관되고, 각각의 모델링 절차를 수행하는 단계는 초기 예측 문제를 나타내는 초기 데이터 세트에 상기 연관된 예측 모델을 맞춤화하는 단계를 포함하는, 상기 단계; (b) 상기 맞춤화된 예측 모델들의 각각의 제1 각각의 정확도 스코어를 결정하는 단계로서, 각각의 맞춤화된 모델의 상기 제1 정확도 스코어는, 상기 맞춤화된 모델이 상기 초기 예측 문제의 하나 이상의 결과들을 예측하는 정확도를 나타내는, 상기 단계; (c) 상기 초기 데이터 세트에 포함된 각각의 관측치들에 걸쳐 피처의 값을 셔플링(shuffling)함으로써, 수정된 예측 문제를 나타내는 수정된 데이터 세트를 생성하는 단계; (d) 상기 맞춤화된 예측 모델들의 각각의 제2 각각의 정확도 스코어를 결정하는 단계로서, 각각의 맞춤화된 모델의 제2 정확도 스코어는, 상기 맞춤화된 모델이 상기 수정된 예측 문제의 하나 이상의 결과들을 예측하는 정확도를 나타내는, 상기 단계; 및 (e) 상기 맞춤화된 모델들의 각각에 대한 상기 피처의 각각의 모델-특유 예측 값을 결정하는 단계를 포함하고, 각각의 맞춤화된 모델에 대한 상기 피처의 모델-특유 예측 값은 상기 맞춤화된 모델의 상기 제1 정확도 스코어 및 상기 제2 정확도 스코어에 기초한다.
이 양태의 다른 실시예는 대응 컴퓨터 시스템, 장치 및 각각 이 방법의 액션을 수행하도록 구성된, 하나 이상의 컴퓨터 저장 디바이스 상에 기록된 컴퓨터 프로그램을 포함한다. 하나 이상의 컴퓨터로 이루어진 시스템은 소프트웨어, 펌웨어, 하드웨어 또는 이들의 조합이 동작 중에 있는 시스템 상에 설치되어 시스템이 동작을 수행하게 함으로써 특정 동작을 수행하도록 구성될 수 있다. 하나 이상의 컴퓨터 프로그램은 데이터 프로세싱 장치에 의해 실행될 때 장치로 하여금 액션을 수행하게 하는 명령을 포함함으로써 특정 동작을 수행하도록 구성될 수 있다.
전술한 실시예 및 다른 실시예는 각각 선택적으로 단독으로 또는 조합으로 이하의 특징의 하나 이상을 포함할 수 있다. 일부 실시예에서, 본 방법의 액션은: 상기 복수의 예측 모델링 절차를 수행하기 전에, 상기 초기 데이터 세트의 특성들, 상기 초기 예측 문제의 특성들 및/또는 상기 피처의 특성들에 기초하여 상기 예측 문제에 대한 상기 복수의 예측 모델링 절차들을 선택하는 단계를 더 포함한다. 일부 실시예에서, 상기 복수의 예측 모델링 절차들은 랜덤 포리스트(random forest) 모델링 절차, 일반화된 가산 모델링 절차 및 지원 벡터 머신 모델링 절차로 이루어진 그룹으로부터 선택된 2 이상의 모델링 절차들을 포함한다. 일부 실시예에서, 상기 복수의 예측 모델링 절차들은 모델링 절차들의 제1 패밀리로부터 선택된 제1 모델링 절차 및 모델링 절차들의 제2 패밀리로부터 선택된 제2 모델링 절차를 포함한다.
일부 실시예에서, 본 방법의 액션은, 상기 예측 모델의 제2 정확도 스코어를 결정하기 전에, 상기 수정된 예측 문제를 나타내는 상기 수정된 데이터 세트에 상기 예측 모델들을 다시 맞춤화하는 단계를 더 포함한다. 일부 실시예에서, 특정 맞춤화된 모델에 대한 상기 피처의 상기 결정된 모델-특유 예측 값은, 상기 특정 맞춤화된 모델의 상기 제1 정확도 스코어와 상기 제2 정확도 스코어 사이의 차이가 증가함에 따라 증가한다. 일부 실시예에서, 특정 맞춤화된 모델에 대한 상기 피처의 결정된 모델-특유 예측 값은, 상기 특정 맞춤화된 모델의 제1 정확도 스코어에 대한, 상기 특정 맞춤화된 모델의 제1 정확도 스코어와 제2 정확도 스코어 사이의 백분율 차이를 포함한다.
일부 실시예에서, 본 방법의 액션은, 상기 피처의 모델-특유 예측 값들에 기초하여 상기 피처의 모델-독립 예측 값을 결정하는 단계를 더 포함한다. 일부 실시예에서, 상기 피처의 모델-독립 예측 값을 결정하는 단계는, 상기 피처의 모델-특유 예측 값들의 중심 및/또는 확산의 통계적 척도를 계산하는 단계를 포함한다. 일부 실시예에서, 상기 피처의 모델-독립 예측 값을 결정하는 단계는, 상기 모델-특유 예측 값들의 중심의 통계적 척도를 계산하는 단계를 포함하고, 상기 중심의 계적 척도는 평균(mean), 중앙값(median), 및 모델-특유 예측 값들의 모드로 이루어지는 그룹으로부터 선택된다. 일부 실시예에서, 상기 피처의 모델-독립 예측 값을 결정하는 단계는, 상기 모델-특유 예측 값들의 확산의 통계적 척도를 계산하는 단계를 포함하고, 상기 확산의 통계적 척도는 범위, 분산 및 상기 모델-특유 예측 값들의 표준 편차로 이루어지는 그룹으로부터 선택된다. 일부 실시예에서, 상기 피처의 모델-독립 예측 값을 결정하는 단계는, 상기 피처의 모델-특유 예측 값들의 조합을 계산하는 단계를 포함한다. 일부 실시예에서, 상기 모델-특유 예측 값들의 조합을 계산하는 단계는, 상기 모델-특유 예측 값들의 가중화된 조합을 계산하는 단계를 포함한다. 일부 실시예에서, 상기 모델-특유 예측 값들의 가중화된 조합을 계산하는 단계는, 상기 모델-특유 예측 값들에 각각의 가중치를 할당하는 단계를 포함하고, 특정 맞춤화된 모델에 대응하는 특정 모델-특유 예측 값에 할당되는 가중치는, 상기 맞춤화된 예측 모델의 상기 제1 정확도 스코어가 증가함에 따라 증가한다.
일부 실시예에서, 상기 피처는 제1 피처이고, 본 방법의 액션은 (c1) 상기 초기 데이터 세트에 포함된 각각의 관측치들에 걸쳐 제2 피처의 값들을 셔플링함으로써, 제2 수정된 예측 문제를 나타내는 제2 수정된 데이터 세트를 생성하는 단계; (d1) 상기 맞춤화된 모델들의 각각의 제3 정확도 스코어를 결정하는 단계로서, 각각의 맞춤화된 모델의 상기 제3 정확도 스코어는, 상기 맞춤화된 모델이 상기 제2 수정된 예측 문제의 하나 이상의 결과들을 예측하는 정확도를 나타내는, 상기 단계; 및 (e1) 상기 맞춤화된 모델들의 각각에 대해 상기 제2 피처의 각각의 모델-특유 예측 값을 결정하는 단계를 포함하고, 상기 맞춤화된 모델 각각에 대한 상기 제2 피처의 모델-특유 예측 값은 상기 맞춤화된 모델의 제1 정확도 스코어 및 제3 정확도 스코어에 기초한다.
일부 실시예에서, 상기 피처는 제1 피처이고, 상기 초기 데이터 세트는 상기 제1 피처 및 복수의 제2 피처들을 포함하고, 상기 방법의 액션은 상기 제2 피처들의 각각에 대해 단계 (c), (d) 및 (e)를 수행함으로써 상기 초기 데이터 세트의 제2 피처들의 모델-특유 예측 값들을 결정하는 단계를 더 포함한다.
일부 실시예에서, 본 방법의 액션은, 그래픽 사용자 인터페이스를 통해, 상기 초기 데이터 세트의 제1 피처 및 제2 피처들과, 상기 제1 피처 및 상기 제2 피처들의 모델-특유 예측 값들을 식별하는 그래픽 컨텐츠를 표시하는 단계를 더 포함한다. 일부 실시예에서, 상기 모델링 절차들은 특정 예측 모델과 연관된 특정 모델링 절차를 포함하는 제1 모델링 절차들이고, 상기 제1 피처 및 상기 제2 피처들의 상기 모델-특유 예측 값들은 상기 특정 예측 모델에 특정적인 상기 제1 피처 및 상기 제2 피처의 특정의 모델-특유 예측 값들을 포함하고, 상기 방법의 액션은 (a1) 상기 특정 예측 모델과 연관된 상기 특정 모델링 절차를 포함하는 복수의 제2 예측 모델링 절차들을 수행하는 단계를 더 포함한다. 일부 실시예에서, 상기 특정 예측 모델링 절차들을 수행하는 단계는, 상기 제1 피처 및 상기 제2 피처들의 특정 모델-특유 예측 값들에 기초하여 상기 초기 데이터 세트에 대한 피처 엔지니어링을 수행하는 단계를 포함한다.
일부 실시예에서, 상기 피처 엔지니어링을 수행하는 단계는, 특정 피처가 낮은 모델-특유 예측 값을 갖는 것에 기초하여 상기 초기 데이터 세트로부터 특정 피처를 제거하는 단계를 포함한다. 일부 실시예에서, 본 방법의 액션은 상기 특정 피처의 모델-특유 예측 값이 임계값보다 낮은 것에 기초하고 그리고/또는 상기 특정 피처의 상기 모델-특유 예측 값이 상기 초기 데이터 세트의 제1 피처 및 제2 피처에 대한 상기 특정 모델-특유 예측 값들의 특정된 백분위 값인 것에 기초하여, 상기 특정 피처의 상기 모델-특유 예측 값이 낮은 것으로 결정하는 단계를 더 포함한다.
일부 실시예에서, 상기 피처 엔지니어링을 수행하는 단계는: 상기 초기 데이터 세트의 2 이상의 특정 피처들이 높은 모델-특유 예측 값들을 갖는 것에 기초하여 도출된 피처를 생성하는 단계; 및 상기 도출된 피처를 상기 초기 데이터 세트에 가산함으로써, 제2 초기 데이터 세트를 생성하는 단계를 포함한다. 일부 실시예에서, 본 방법의 액션은, 상기 특정 피처들의 상기 모델-특유 예측 값들이 임계값보다 높은 것에 기초하고 그리고/또는 상기 특정 피처들의 상기 모델-특유 예측 값들이 상기 초기 데이터 세트의 제1 피처 및 상기 제2 피처에 대한 상기 특정 모델-특유 예측 값들의 특정된 백분위 값인 것에 기초하여, 상기 특정 피처들의 상기 모델-특유 예측 값들이 높은 것으로 결정하는 단계를 더 포함한다.
일부 실시예에서, 상기 특정 예측 모델링 절차를 수행하는 단계는, 상기 특정 예측 모델을 상기 제2 초기 데이터 세트에 맞춤화하는 단계를 더 포함하고, 상기 방법의 액션은: 상기 맞춤화된 특정 예측 모델의 제1 정확도 스코어를 결정하는 단계로서, 상기 맞춤화된 특정 모델의 제1 정확도 스코어는, 상기 맞춤화된 특정 모델이 상기 초기 예측 문제의 하나 이상의 결과들을 예측하는 정확도를 나타내는, 상기 단계; 상기 제2 초기 데이터 세트에 포함된 각각의 관측치들에 걸쳐 상기 제1 피처의 값들을 셔플링함으로써, 제2 수정된 예측 문제를 나타내는 제2 수정된 데이터 세트를 생성하는 단계; 상기 맞춤화된 특정 예측 모델의 제2 정확도 스코어를 결정하는 단계로서, 상기 맞춤화된 특정 모델의 상기 제2 정확도 스코어는, 상기 맞춤화된 모델이 상기 제2 수정된 예측 문제의 하나 이상의 결과들을 예측하는 정확도를 나타내는, 상기 단계; 및 상기 맞춤화된 특정 모델에 대해 상기 제1 피처의 제2 모델-특유 예측 값을 결정하는 단계를 포함하고, 상기 맞춤화된 특정 모델에 대해 상기 제1 피처의 제2 모델-특유 예측 값이 상기 맞춤화된 특정 모델의 제1 정확도 스코어 및 제2 정확도 스코어에 기초한다.
일부 실시예에서, 본 방법의 액션은, 상기 복수의 제2 모델링 절차들을 수행하기 전에: 상기 초기 예측 문제에 대해 상기 선택된 모델링 절차들의 적절성에 기초하여 상기 제2 모델링 절차들을 선택하는 단계를 더 포함하고, 상기 초기 예측 문제에 대한 상기 특정 예측 모델링 절차의 적절성은, 상기 초기 데이터 세트의 하나 이상의 특정 피처들의 특성들이 상기 특정 예측 모델링 절차를 위해 높은 모델-특유 예측 값들을 갖는 것에 적어도 부분적으로 기초하여 결정된다.
일부 실시예에서, 본 방법의 액션은, 명령어를 복수의 프로세싱 노드들에 송신하는 단계로서, 상기 명령어는 상기 제2 모델링 절차들의 실행을 위해 상기 프로세싱 노드들의 자원들을 할당하는 자원 할당 스케줄을 포함하고, 상기 자원 할당 스케줄은 상기 초기 예측 문제에 대해 상기 제2 모델링 절차들의 적절성에 적어도 부분적으로 기초하는, 단계; 상기 자원 할당 스케줄에 따라 상기 복수의 프로세싱 노드들에 의해 상기 제2 모델링 절차들의 실행의 결과들을 수신하는 단계로서, 상기 결과들은 상기 제2 모델링 절차들에 의해 생성된 예측 모델들, 및/또는 상기 초기 예측 문제와 연관된 데이터에 대해 생성된 모델들의 스코어를 포함하는, 상기 단계; 및 상기 생성된 모델들로부터, 상기 선택된 예측 모델의 스코어에 적어도 부분적으로 기초하여 상기 초기 예측 문제에 대한 예측 모델을 선택하는 단계를 더 포함한다. 일부 실시예에서, 본 방법의 액션은, 상기 생성된 예측 모델들 중 2개 이상을 조합하여 혼합된 예측 모델을 생성하는 단계; 및 상기 혼합된 예측 모델을 평가하는 단계를 더 포함한다.
일부 실시예에서, 상기 수정된 예측 문제에 대한 모델-독립 피처의 예측 값은 임계 예측 값보다 작다.
일부 실시예에서, 초기 데이터 세트는 초기 시계열 데이터 세트이고, 초기 예측 문제는 초기 시계열 예측 문제이고, 수정된 데이터 세트는 수정된 시계열 데이터 세트이고,수정된 예측 문제는 수정된 시계열 예측 문제이다. 일부 실시예에서, 맞춤화된 모델은 하나 이상의 시계열 예측 모델을 포함한다.
본 양태의 다른 실시예는, 예측 모델링 장치를 포함하고, 본 장치는, 프로세서-실행 가능 명령어를 저장하도록 구성된 메모리; 및 상기 프로세서-실행 가능 명령어를 실행하도록 구성된 프로세서를 포함하고, 상기 프로세서-실행 가능 명령어의 실행은 상기 장치로 하여금 이하의 단계를 수행하게 하고, 상기 단계들은: (a) 복수의 예측 모델링 절차들을 수행하는 단계로서, 상기 예측 모델링 절차들의 각각은 예측 모델과 연관되고, 각각의 모델링 절차를 수행하는 단계는 초기 예측 문제를 나타내는 초기 데이터 세트에 상기 연관된 예측 모델을 맞춤화하는 단계를 포함하는, 상기 단계; (b) 상기 맞춤화된 각각의 예측 모델들의 각각의 제1 정확도 스코어를 결정하는 단계로서, 각각의 맞춤화된 모델의 상기 제1 정확도 스코어는, 상기 맞춤화된 모델이 상기 초기 예측 문제의 하나 이상의 결과들을 예측하는 정확도를 나타내는, 상기 단계; (c) 상기 초기 데이터 세트에 포함된 각각의 관측치들에 걸쳐 피처의 값들을 셔플링함으로써, 수정된 예측 문제를 나타내는 수정된 데이터 세트를 생성하는 단계; (d) 상기 맞춤화된 각각의 예측 모델의 각각의 제2 정확도 스코어를 결정하는 단계로서, 각각의 맞춤화된 모델의 상기 제2 정확도 스코어는, 상기 맞춤화된 모델이 상기 수정된 예측 문제의 하나 이상의 결과들을 예측하는 정확도를 나타내는, 상기 단계; 및 (e) 상기 맞춤화된 모델의 각각에 대한 상기 피처의 각각의 모델-특유 예측 값을 결정하는 단계를 포함하고, 각각의 맞춤화된 모델에 대한 상기 피처의 상기 모델-특유 예측 값은 상기 맞춤화된 모델의 상기 제1 정확도 스코어 및 상기 제2 정확도 스코어에 기초한다.
본 양태의 다른 실시예는, 컴퓨터-판독 가능 명령어를 저장한 제조품을 포함하고, 프로세서에 의해 실행될 때 상기 프로세서로 하여금 이하의 동작들을 수행하게 하고, 상기 동작들은: (a) 복수의 예측 모델링 절차들을 수행하는 동작으로서, 상기 예측 모델링 절차들의 각각은 예측 모델과 연관되고, 각각의 모델링 절차를 수행하는 동작은 초기 예측 문제를 나타내는 초기 데이터 세트에 상기 연관된 예측 모델을 맞춤화하는 동작을 포함하는, 상기 동작; (b) 상기 맞춤화된 각각의 예측 모델들의 각각의 제1 정확도 스코어를 결정하는 동작으로서, 각각의 맞춤화된 모델의 상기 제1 정확도 스코어는, 상기 맞춤화된 모델이 상기 초기 예측 문제의 하나 이상의 결과들을 예측하는 정확도를 나타내는, 상기 동작; (c) 상기 초기 데이터 세트에 포함된 각각의 관측치들에 걸쳐 피처의 값들을 셔플링함으로써, 수정된 예측 문제를 나타내는 수정된 데이터 세트를 생성하는 동작; (d) 상기 맞춤화된 각각의 예측 모델의 각각의 제2 정확도 스코어를 결정하는 동작으로서, 각각의 맞춤화된 모델의 상기 제2 정확도 스코어는, 상기 맞춤화된 모델이 상기 수정된 예측 문제의 하나 이상의 결과들을 예측하는 정확도를 나타내는, 상기 동작; 및 (e) 상기 맞춤화된 모델의 각각에 대한 상기 피처의 각각의 모델-특유 예측 값을 결정하는 동작을 포함하고, 각각의 맞춤화된 모델에 대한 상기 피처의 모델-특유 예측 값은 상기 맞춤화된 모델의 제1 정확도 스코어 및 상기 정확도 스코어에 기초한다.
본 양태의 특정 실시예는 이하의 하나 이상의 이점을 구현하도록 실현될 수 있다. 이 양태의 일부 실시예는 예측 문제의 이해를 용이하게 하고 특정 예측 모델이 어떻게 결과를 정확하게 예측하는지 나타내기 위해 유리하게 사용될 수 있다. 본 양태의 일부 실시예는 임의의 예측 모델 또는 예측 모델의 다양한 세트에 대해 피쳐 중요도를 측정할 수 있다. 본 양태의 일부 실시예는 예측 모델링 절차를 평가하고 엔지니어링 작업을 피처링하고 예측 모델을 혼합하기 위해 자원의 할당을 안내할 수 있으며, 이에 의해 예측 문제에 대한 잠재적인 예측 모델링 기술의 공간의 비용 효과적인 평가를 용이하게 한다.
2차 예측 모델링
특정 모델링 기술은 이해하기 어렵고 소프트웨어로 효율적으로 구현하기 어려운, 불투명 및/또는 복잡한 모델을 생성하는 경향이 있다. 이러한 모델을 구현하는 소프트웨어는 상당한 컴퓨팅 자원을 사용하여, 다른 똑같은 정확한 모델을 구현하는 소프트웨어를 이용해서 훨씬 더 효율적으로 생성될 수 있는 예측을 산출할 수 있다.
모델의 정확도를 크게 떨어 뜨리지 않고 하나 이상의 입력 변수("피처")(F1)의 값에 기초하여 하나 이상의 출력 변수("타겟")(T)의 값을 예측하는 1차 예측 모델(M1)의 불투명도 및/또는 복잡도를 감소시키는 기술이 필요하다. 본 발명자들은 1차 모델(M1)의 2차 모델(M2)을 구축함으로써 이러한 요구가 충족될 수 있다는 것을 인식하고 이해하고 있다. 2차 모델은 동일한 피처(F1)(또는 그 서브세트) 및/또는 1차 모델에 의해 사용되지 않는 하나 이상의 피처들에 기초하여 타겟들(T)에 대한 1차 모델의 예측된 값을 예측할 수 있다.
많은 경우, 이 양태의 실시예에 의해 생성된 2차 모델은 대응하는 1차 모델과 정확하게 동일하거나 더 정확하며, 2차 모델을 구현하는 소프트웨어는 대응하는 1차 모델을 구현하는 소프트웨어보다 실질적으로 더 효율적이다. 이 양태의 실시예가 혼합된 1차 모델의 2차 모델을 생성하는 데 사용될 때, 2차 모델은 많은 경우에 특히 정확하며 많은 경우 2차 모델을 구현하는 소프트웨어는 상응하는 1차 모델을 구현하는 것보다 소프트웨어보다 더 효율적(예를 들어, 보다 적은 연산 자원 사용). 이 양태의 일부 실시예에 따라 생성된 2차 모델은 복잡한 1차 모델을 이해하는 데 유익할 수 있고 그리고/또는 정확한 예측 모델을 구현하는 소프트웨어를 생성하는 작업을 단순화할 수 있다.
일반적으로, 본 명세서에 설명되는 주제의 다른 혁신적인 양태는 예측 모델링 방법으로 구현될 수 있으며, 본 방법은, 맞춤화된 1차 예측 모델을 얻는 단계로서, 상기 1차 예측 모델은 하나 이상의 제1 입력 변수들의 값들에 기초하여 예측 문제의 하나 이상의 출력 변수들의 값들을 예측하도록 구성되는, 상기 단계; 및 맞춤화된 1차 모델에 대해 2차 예측 모델링 절차를 수행하는 단계로서, 상기 2차 모델링 절차는 2차 예측 모델과 연관되는, 단계를 포함하고, 상기 맞춤화된 1차 모델에 대해 상기 2차 예측 모델링 절차를 수행하는 단계는: 복수의 2차 관측치들을 포함하는 2차 입력 데이터를 생성하는 단계로서, 각각의 2차 관측치는 하나 이상의 제2 입력 변수들의 각각의 관측된 값들 및 상기 출력 변수들의 예측된 값들을 포함하고, 각각의 2차 관측치에 대해 상기 2차 입력 데이터를 생성하는 단계는: 상기 제2 입력 변수들의 각각의 관측된 값들 및 상기 제1 입력 변수들의 대응하는 관측된 값들을 얻는 단계와, 상기 출력 변수들의 각각의 예측된 값들을 생성하기 위해 상기 입력 변수들의 대응하는 관측된 값들에 상기 1차 예측 모델을 적용하는 단계를 포함하는, 상기 단계, 상기 2차 입력 데이터로부터, 2차 트레이닝 데이터 및 2차 테스팅 데이터를 생성하는 단계, 상기 2차 예측 모델을 상기 2차 트레이닝 데이터에 맞춤화함으로써, 상기 맞춤화된 1차 모델의 맞춤화된 2차 예측 모델을 생성하는 단계, 및 상기 2차 테스팅 데이터에 대해 상기 맞춤화된 1차 모델의 상기 맞춤화된 2차 예측 모델을 테스트하는 단계를 포함할 수 있다.
이 양태의 다른 실시예는 대응 컴퓨터 시스템, 장치 및 각각 이 방법의 액션을 수행하도록 구성된, 하나 이상의 컴퓨터 저장 디바이스 상에 기록된 컴퓨터 프로그램을 포함한다. 하나 이상의 컴퓨터로 이루어진 시스템은 소프트웨어, 펌웨어, 하드웨어 또는 이들의 조합이 동작 중에 있는 시스템 상에 설치되어 시스템이 동작을 수행하게 함으로써 특정 동작을 수행하도록 구성될 수 있다. 하나 이상의 컴퓨터 프로그램은 데이터 프로세싱 장치에 의해 실행될 때 장치로 하여금 액션을 수행하게 하는 명령을 포함함으로써 특정 동작을 수행하도록 구성될 수 있다.
전술한 및 다른 실시예는 각각 단독으로 또는 조합으로 이하의 하나 이상의 특징을 선택적으로 포함할 수 있다. 일부 실시예에서, 상기 맞춤화된 1차 모델을 얻는 단계는, 상기 1차 예측 모델과 연관된 1차 예측 모델 절차를 수행하는 단계를 포함하고, 상기 1차 예측 모델링 절차를 수행하는 단계는: 복수의 1차 관측치들을 포함하는 1차 입력 데이터를 얻는 단계로서, 각각의 1차 관측치는 상기 제1 입력 변수들의 각각의 관측된 값들 및 상기 출력 변수들의 대응하는 관측된 값들을 포함하는, 단계; 상기 1차 입력 데이터로부터, 1차 트레이닝 데이터 및 1차 테스팅 데이터를 생성하는 단계, 상기 1차 예측 모델을 상기 1차 트레이닝 데이터에 맞춤화하는 단계, 및 상기 맞춤화된 1차 예측 모델을 상기 테스팅 데이터에 대해 테스트하는 단계를 포함한다. 일부 실시예에서, 상기 맞춤화된 1차 모델을 얻는 단계는 2개의 맞춤화된 예측 모델들을 혼합하는 단계를 포함한다.
일부 실시예에서, 상기 맞춤화된 1차 모델을 얻는 단계는: 상기 예측 문제의 특성들 및/또는 상기 각각의 1차 예측 모델링 절차들의 속성들에 적어도 부분적으로 기초하여, 상기 예측 문제에 대한 복수의 1차 예측 모델링 절차들의 적절성을 결정하는 단계; 상기 예측 문제에 대해 상기 선택된 모델링 절차들의 상기 결정된 적절성에 기초하여, 상기 복수의 1차 예측 모델링 절차들로부터 하나 이상의 예측 모델링 절차들을 선택하는 단계; 및 상기 하나 이상의 예측 모델링 절차들을 수행하는 단계를 포함한다. 일부 실시예에서, 상기 하나 이상의 예측 모델링 절차들을 수행하는 단계는: 명령어를 복수의 프로세싱 노드들로 송신하는 단계로서, 상기 명령어는 상기 선택된 모델링 절차들의 실행을 위해 상기 프로세싱 노드들의 자원들을 할당하는 자원 할당 스케줄을 포함하고, 상기 자원 할당 스케줄은 상기 예측 문제에 대해 상기 선택된 모델링 절차들의 적절성에 적어도 일부 기초하는, 상기 단계; 상기 자원 할당 스케줄에 따라, 상기복수의 프로세싱 노드들에 의해 상기 선택된 모델링 절차들의 실행의 결과들을 수신하는 단계로서, 상기 결과들은 상기 선택된 모델링 절차들에 의해 생성된 예측 모델들을 포함하는, 상기 단계; 및 상기 맞춤화된 1차 모델을 상기 생성된 모델들로부터 선택하는 단계를 포함한다.
일부 실시예에서, 상기 2차 예측 모델은 RuleFit 모델 및 일반화된 가산 모델로 이루어지는 그룹으로부터 선택된다. 일부 실시예에서, 본 발명의 액션은, 상기 2차 모델의 상호 유효성 검증을 수행하는 단계를 더 포함하고, 상기 2차 입력 데이터는 적어도 하나의 데이터 세트를 포함하고, 상기 2차 트레이닝 데이터를 생성하는 단계는 상기 데이터 세트의 제1 서브세트를 얻는 단계를 포함하고, 상기 2차 테스팅 데이터를 생성하는 단계는 상기 데이터 세트의 제2 서브세트를 얻는 단계를 포함한다.
일부 실시예에서, 상기 2차 트레이닝 데이터는 제1 2차 트레이닝 데이터이고, 상기 2차 테스팅 데이터는 제1 2차 테스팅 데이터이고, 상기 맞춤화된 2차 모델은 제1 맞춤화된 2차 모델이고, 상기 2차 모델의 상호 유효성 검증을 수행하는 단계는: (a) 상기 2차 입력 데이터로부터 제2 2차 트레이닝 데이터 및 제2 2차 테스팅 데이터를 생성하는 단계로서, 상기 제2 2차 트레이닝 데이터는 상기 데이터 세트의 제3 서브세트를 포함하고, 상기 제2 2차 테스팅 데이터는 상기 데이터 세트의 제4 서브세트를 포함하는, 단계; (b) 제2 맞춤화된 2차 예측 모델을 얻기 위해 상기 2차 예측 모델을 상기 제2 2차 트레이닝 데이터에 맞춤화하는 단계; 및 (c) 상기 제2 2차 예측 모델을 상기 제2 2차 테스팅 데이터에 대해 테스트하는 단계를 포함한다.
일부 실시예에서, 본 방법의 액션은, 적어도 제1 분할 및 제2 분할을 포함하는 복수의 분할들로 상기 데이터 세트를 분할하는 단계를 더 포함한다. 일부 실시예에서, 상기 데이터 세트를 복수의 분할들로 분할하는 단계는, 상기 데이터 세트의 각각의 관측치를 각각의 분할에 랜덤하게 할당하는 단계를 포함한다. 일부 실시예에서, 상기 제1 2차 트레이닝 데이터는 상기 데이터 세트의 제1 분할을 포함하고; 상기 제1 2차 테스팅 데이터는 상기 제1 분할을 제외한 상기 데이터 세트의 분할들을 모두 포함하고; 상기 제2 2차 트레이닝 데이터는 상기 데이터 세트의 제2 분할을 포함하고; 및 상기 제2 2차 테스팅 데이터는 상기 제2 분할을 제외한 상기 데이터 세트의 분할들을 모두 포함한다. 일부 실시예에서, 상기 제1 2차 트레이닝 데이터는 상기 데이터 세트의 제1 분할의 서브세트를 포함하고; 상기 제1 2차 테스팅 데이터는 상기 제1 분할을 제외한 상기 데이터 세트의 분할들 모두의 각각의 서브세트들을 포함하고; 상기 제2 2차 트레이닝 데이터는 상기 데이터 세트의 제2 분할의 서브세트를 포함하고; 및 상기 제2 2차 테스팅 데이터는 상기 제2 분할을 제외한 데이터 세트의 분할들 모두의 각각의 서브세트들을 포함한다.
일부 실시예에서, 상기 2차 입력 데이터는 제1 분할 및 제2 분할을 포함하고, 상기 데이터 세트는 상기 2차 입력 데이터의 제1 분할을 포함하고, 및 상기 방법의 액션은 상기 2차 입력 데이터의 제2 분할을 포함하는 홀드아웃 데이터에 대해 상기 제1 및 제2 맞춤화된 2차 모델들을 테스트하는 단계를 더 포함한다. 일부 실시예에서, 상기 홀드아웃 데이터에는 예측 모델이 맞춤화되지 않는다.
일부 실시예에서, 상기 2차 예측 모델링 절차를 수행하는 단계는, 상기 2차 예측 모델의 네스팅된 상호 유효성 검증을 수행하는 단계를 더 포함한다. 일부 실시예에서, 상기 2차 입력 데이터는 적어도 하나의 데이터 세트를 포함하고; 상기 2차 예측 모델의 네스팅된 상호 유효성 검증을 수행하는 단계는: 상기 데이터 세트의 적어도 제1 분할 및 상기 데이터 세트의 제2 분할을 포함하는 상기 데이터 세트의 제1 복수의 분할들로 상기 데이터 세트를 분할하는 단계, 및 적어도 상기 데이터 세트의 상기 제1 분할의 제1 분할 및 상기 데이터 세트의 상기 제1 분할의 제2 분할을 포함하는 상기 데이터 세트의 상기 제1 분할의 복수의 분할들로 상기 데이터 세트의 상기 제1 분할을 분할하는 단계를 포함한다. 일부 실시예에 따르면, 상기 2차 트레이닝 데이터는 상기 데이터 세트의 상기 제1 분할의 제1 분할을 포함하고; 및 상기 2차 테스팅 데이터는 상기 데이터 세트의 상기 제1 분할의 제1 분할을 제외한 상기 데이터 세트의 상기 제1 분할의 분할들을 모두 포함한다.
일부 실시예에서, 상기 2차 트레이닝 데이터는 제1 2차 트레이닝 데이터이고, 상기 2차 테스팅 데이터는 제1 2차 테스팅 데이터이고, 상기 맞춤화된 2차 모델은 제1 맞춤화된 모델이고, 상기 2차 예측 모델의 네스팅된 상호 유효성 검증을 수행하는 단계는: (a) 상기 데이터 세트의 제1 분할로부터, 제2 2차 트레이닝 데이터 및 제2 2차 테스팅 데이터를 생성하는 단계로서, 상기 제2 2차 트레이닝 데이터는 상기 데이터 세트의 상기 제1 분할의 제2 분할을 포함하고, 상기 제2 2차 테스팅 데이터는 상기 데이터 세트의 상기 제1 분할의 제2 분할 이외의 상기 데이터 세트의 상기 제1 분할의 복수의 분할들을 포함하는, 단계; (b) 제2 2차 맞춤화된 예측 모델을 얻기 위해 상기 2차 예측 모델을 상기 제2 2차 트레이닝 데이터에 맞춤화하는 단계; 및 (c) 상기 제2 2차 맞춤화된 모델을 상기 제2 2차 테스팅 데이터에 대해 테스트하는 단계를 더 포함한다.
일부 실시예에서, 상기 네스팅된 상호 유효성 검증을 수행하는 단계는: 상기 제1 맞춤화된 2차 모델 및 상기 제2 맞춤화된 2차 모델을 상기 데이터 세트의 제2 분할에 대해 테스트하는 단계; 및 상기 제1 맞춤화된 2차 모델 및 상기 제2 맞춤화된 2차 모델을 상기 데이터 세트의 제2 분할에 대해 테스트한 결과에 기초하여, 상기 제1 맞춤화된 2차 모델과 상기 제2 맞춤화된 2차 모델을 비교하는 단계를 더 포함한다.
일부 실시예에서, 본 방법의 액션은, 상기 맞춤화된 예측 모델들의 각각의 정확도 스코어를 결정하는 단계를 더 포함하고, 각각의 맞춤화된 모델의 상기 정확도 스코어는, 상기 맞춤화된 모델이 하나 이상의 예측 문제의 결과들을 예측하는 정확도를 나타낸다. 일부 실시예에서, 본 방법의 액션은, 상기 맞춤화된 1차 모델의 정확도 스코어와 상기 맞춤화된 2차 모델의 정확도 스코어 사이의 불일치를 결정하는 단계를 더 포함한다. 일부 실시예에서, 상기 맞춤화된 2차 모델의 정확도 스코어는 상기 맞춤화된 1차 모델의 정확도 스코어를 초과한다.
일부 실시예에서, 본 방법의 액션은, 하나 이상의 예측 문제들의 결과들을 예측하기 위해 상기 맞춤화된 예측 모델 각각에 의해 사용되는 연산 자원의 양을 결정하는 단계를 더 포함한다. 일부 실시예에 따르면, 본 방법의 액션은, 상기 맞춤화된 1차 모델에 의해 사용되는 연산 자원의 양과 상기 맞춤화된 2차 모델에 의해 사용되는 연산 자원의 양 사이의 불일치를 결정하는 단계를 더 포함한다. 일부 실시예에서, 상기 맞춤화된 2차 모델에 의해 사용된 연산 자원의 양은 상기 맞춤화된 1차 모델에 의해 사용되는 연산 자원의 양보다 작다.
일부 실시예에서, 본 방법의 액션은 상기 맞춤화된 2차 모델을 배치하는 단계를 더 포함한다. 일부 실시예에서, 상기 맞춤화된 2차 모델을 배치하는 단계는, 상기 예측 문제의 인스턴스들을 나타내는 다른 데이터에 상기 맞춤화된 2차 모델을 적용함으로써 복수의 예측들을 생성하는 단계를 포함하고, 상기 2차 입력 데이터는 다른 데이터를 포함하지 않는다. 일부 실시예에서, 상기 맞춤화된 2차 모델은 하나 이상의 조건부 규칙들의 세트를 포함하고, 상기 하나 이상의 조건부 규칙들의 세트는 하나 이상의 머신-실행 가능 if-then 구문들의 세트를 포함한다.
일부 실시예에서, 상기 2차 입력 데이터는 제1 2차 입력 데이터이고, 상기 맞춤화된 2차 모델을 배치하는 단계는 상기 맞춤화된 2차 모델을 제2 2차 입력 데이터에 적어도 부분적으로 기초하여 리프레시하는 단계를 더 포함한다. 일부 실시예에서, 상기 맞춤화된 2차 모델은 제1 맞춤화된 2차 모델이고, 상기 제2 2차 입력 데이터에 적어도 부분적으로 기초하여 상기 맞춤화된 2차 모델을 리프레시하는 단계는, 상기 제2 2차 입력 데이터로부터, 제2 2차 트레이닝 데이터 및 제2 2차 테스팅 데이터를 생성하는 단계; 상기 2차 예측 모델을 상기 제2 2차 트레이닝 데이터에 맞춤화함으로써 상기 맞춤화된 1차 모델의 제2 맞춤화된 2차 모델을 생성하는 단계; 상기 제2 2차 테스팅 데이터에 대해 상기 1차 모델의 상기 제2 맞춤화된 2차 모델을 테스트하는 단계; 및 리프레시된 2차 예측 모델을 생성하기 위해 상기 제1 맞춤화된 2차 모델과 상기 제2 맞춤화된 2차 모델을 혼합하는 단계를 포함한다. 일부 실시예에서, 상기 맞춤화된 2차 모델은 제1 맞춤화된 2차 모델이고, 상기 제2 2차 입력 데이터에 적어도 부분적으로 기초하여 상기 맞춤화된 2차 모델을 리프레시하는 단계는: 상기 제1 2차 입력 데이터의 적어도 일부 및 상기 제2 2차 입력 데이터의 적어도 일부를 포함하는 제3 2차 입력 데이터를 생성하는 단계; 상기 제3 2차 입력 데이터로부터 제3 2차 트레이닝 데이터 및 제3 2차 테스팅 데이터를 생성하는 단계; 상기 2차 예측 모델을 상기 제3 2차 트레이닝 데이터에 맞춤화함으로써 상기 맞춤화된 1차 모델의 제2 맞춤화된 2차 모델을 생성하는 단계; 및 상기 1차 모델의 상기 제2 맞춤화된 2차 모델을 상기 제3 2차 테스팅 데이터 상에서 테스트하는 단계를 포함한다.
일부 실시예에서, 상기 제1 입력 변수들은 상기 제2 입력 변수들이다. 일부 실시예에서, 상기 제1 입력 변수들 및 상기 제2 입력 변수들 모두 특정 입력 변수를 포함한다. 일부 실시예에서, 상기 제1 입력 변수들 중 어느 것도 상기 제2 입력 변수들에 포함되지 않는다.
일부 실시예에서, 상기 2차 모델링 절차는 복수의 2차 모델링 절차들 중 하나이고, 상기 2차 예측 모델은 복수의 제2 예측 모델 중 하나이고, 상기 방법이 액션은, 상기 복수의 2차 모델링 절차들을 상기 맞춤화된 1차 모델에 대해 수행함으로써, 상기 맞춤화된 1차 모델의 복수의 맞춤화된 2차 모델들을 생성한다. 일부 실시예에서, 본 방법의 액션은, 상기 맞춤화된 2차 예측 모델들의 각각의 정확도 스코어를 결정하는 단계를 더 포함하고, 각각의 맞춤화된 2차 모델의 정확도 스코어는, 상기 맞춤화된 2차 모델이 하나 이상의 예측 문제의 결과들을 예측하는 정확도를 나타낸다. 일부 실시예에서, 본 방법의 액션은, 어떤 정확도 스코어가 가장 높은지를 결정하는 단계; 및 가장 높은 정확도 스코어를 갖는 상기 맞춤화된 2차 모델을 배치하는 단계를 더 포함한다.
본 양태의 다른 실시예는 예측 모델링 장치를 포함하고, 본 장치는, 2차 예측 모델과 연관된 2차 예측 모델링 절차를 인코딩하는 머신-실행 가능 모듈을 저장하도록 구성되는 메모리로서, 상기 2차 예측 모델링 절차는 적어도 하나의 사전-프로세싱 작업 및 적어도 하나의 모델-맞춤 작업을 포함하는 복수의 작업을 포함하는, 상기 메모리; 및 상기 머신-실행 가능 모듈을 실행하도록 구성되는 적어도 하나의 프로세서를 포함하고, 상기 머신-실행 가능 모듈의 실행은 상기 장치로 하여금 맞춤화된 1차 예측 모델에 대해 상기 2차 예측 모델링 절차를 수행하게 한다. 2차 예측 모델링 절차의 수행은, 맞춤화된 1차 예측 모델을 얻는 것을 포함하는 상기 사전-프로세싱 작업을 수행하는 단계를 포함하고, 상기 1차 예측 모델은 하나 이상의 제1 입력 변수들의 값들에 기초하여 예측 문제의 하나 이상의 출력 변수들의 값들을 예측하도록 구성된다. 2차 예측 모델링 절차의 수행은: 상기 모델-맞춤 작업을 수행하는 단계는 포함하고, 상기 수행하는 단계는: 복수의 2차 관측치들을 포함하는 2차 데이터를 생성하는 단계로서, 각각의 2차 관측치는 하나 이상의 제2 입력 변수들의 각각의 관측된 값들 및 상기 출력 변수들의 예측된 값들을 포함하고, 각각의 2차 관측치에 대해 상기 2차 입력 데이터를 생성하는 단계는: 상기 제2 입력 변수들의 각각의 관측된 값들 및 상기 제1 입력 변수들의 대응하는 관측된 값들을 얻고, 상기 출력 변수들의 각각의 예측된 값들을 생성하기 위해 상기 입력 변수들의 대응하는 관측된 값들에 상기 1차 예측 모델을 적용하는 단계를 포함하는, 상기 단계, 상기 2차 입력 데이터로부터, 2차 트레이닝 데이터 및 2차 테스팅 데이터를 생성하는 단계, 상기 2차 예측 모델을 상기 2차 트레이닝 데이터에 맞춤화함으로써, 상기 맞춤화된 1차 모델의 맞춤화된 2차 예측 모델을 생성하는 단계, 및 상기 2차 테스팅 데이터에 대해 상기 맞춤화된 1차 모델의 상기 맞춤화된, 2차 예측 모델을 테스트하는 단계를 포함한다.
본 발명의 다른 양태 및 이점은 하기의 도면, 상세한 설명 및 청구 범위로부터 명백해질 것이며, 이들 모두는 단지 예시로서 본 발명의 원리를 예시한다.
몇몇 실시예의 설명, 그 동기, 및/또는 그 이점을 포함하는 상기 개요는 독자가 본 발명을 이해하는 것을 돕기 위한 것이며 어떠한 방법으로도 청구 범위의 범위를 제한하지 않는다.
일부 실시예의 특정 이점은 첨부 도면과 관련하여 취해지는 후술하는 설명을 참조함으로써 이해될 수 있다. 도면에서, 동일한 참조 부호는 일반적으로 상이한 도면 전반에 걸쳐 동일한 부분을 나타낸다. 또한, 도면은 반드시 스케일대로일 필요는 없으며, 대신에 일반적으로 본 발명의 몇몇 실시예들의 원리를 나타내는 데 중점을 둔다.
도 1은 일부 실시예에 따른 예측 모델링 시스템의 블록도이다.
도 2는 일부 실시예에 따른 예측 모델링 작업, 기술 및 방법을 인코딩하는 머신-실행 가능 템플릿을 구축하기 위한 모델링 도구의 블록도이다.
도 3은 일부 실시예에 따른 예측 문제에 대한 예측 모델을 선택하기 위한 방법의 흐름도이다.
도 4는 일부 실시예에 따른 예측 문제에 대한 예측 모델을 선택하기 위한 방법의 다른 흐름도를 나타낸다.
도 5는 일부 실시예에 따른 예측 모델링 시스템의 개략도이다.
도 6은 일부 실시예에 따른 예측 모델링 시스템의 다른 블록도이다.
도 7은 일부 실시예에 따른 예측 모델링 시스템의 컴포넌트 간의 통신을 나타낸다.
도 8은 일부 실시예에 따른 예측 모델링 시스템의 다른 개략도이다.
도 9는 일부 실시예에 따른 시계열 예측 모델링을 위한 방법의 흐름도이다.
도 10은 일부 실시예에 따른 피처의 예측값을 결정하기 위한 방법의 흐름도이다.
도 11a는 일부 실시예에 따른 2차 예측 모델을 생성하기 위한 방법의 흐름도이다.
도 11b는 일부 실시예에 따른 2차 예측 모델링 절차를 수행하기 위한 방법의 흐름도이다.
예측 모델링 시스템의 개요
도 1을 참조하면, 일부 실시예에서, 예측 모델링 시스템(100)은 예측 모델링 탐색 엔진(110), 사용자 인터페이스(120), 예측 모델링 기술의 라이브러리(130) 및 예측 모델 배치 엔진(140)을 포함한다. 탐색 엔진은 특정 예측 문제에 적절한 예측 모델링 해결책을 생성하기 위해 예측 모델링 검색 공간을 효율적으로 탐색(예를 들어, 사전-프로세싱 단계, 모델링 알고리즘 및 사후-프로세싱 단계의 잠재적 조합)하기 위한 검색 기술(또는 "모델링 방법")을 구현할 수 있다. 검색 기술은, 어떠한 예측 모델링 기술이 예측 문제에 대한 적절한 해결책을 제공할 가능성이 있는지에 대한 초기 평가를 포함할 수 있다. 일부 실시예에서, 검색 기술은 (예를 들어, 데이터 세트의 증가하는 부분을 사용하는) 검색 공간의 증분 평가 및 (예를 들어, 일관적인 메트릭을 사용하는) 예측 문제에 대한 상이한 모델링 해결책의 적절성의 일관적인 비교를 포함한다. 일부 실시예에서, 검색 기술은 이전 검색의 결과에 기초해 적응하여 시간의 경과에 따라 검색 기술의 효과성을 향상시킬 수 있다.
탐색 엔진(110)은 검색 공간에서 잠재적인 모델링 해결책을 평가하기 위해 모델링 기술의 라이브러리(130)를 사용할 수 있다. 일부 실시예에서, 모델링 기술 라이브러리(130)는 완전한 모델링 기술을 인코딩하는 머신-실행 가능 템플릿을 포함한다. 머신-실행 가능 템플릿은 하나 이상의 예측 모델링 알고리즘을 포함할 수 있다. 일부 실시예에서, 템플릿에 포함된 모델링 알고리즘은 몇몇 방식으로 관련될 수 있다. 예를 들어, 모델링 알고리즘은 동일한 모델링 알고리즘의 변형 또는 모델링 알고리즘의 패밀리 멤버일 수 있다. 일부 실시예에서, 머신-실행 가능 템플릿은 템플릿의 알고리즘(들)과 함께 사용하기에 적절한 하나 이상의 사전-프로세싱 및/또는 사후-프로세싱 단계를 추가로 포함한다. 알고리즘(들), 사전-프로세싱 단계 및/또는 사후-프로세싱 단계는 파라미터화될 수 있다. 머신-실행 가능 템플릿은 데이터 세트에 의해 나타내어지는 예측 문제에 대한 잠재적인 예측 모델링 해결책을 생성하기 위해 사용자 데이터 세트에 적용될 수 있다.
탐색 엔진(110)은 검색 공간 또는 그 일부를 탐색하기 위해 분산 컴퓨팅 시스템의 연산 자원을 사용할 수 있다. 일부 실시예에서, 탐색 엔진(110)은 분산 컴퓨팅 시스템의 자원을 사용하여 검색을 효율적으로 수행하기 위한 검색 계획을 생성하고, 분산 컴퓨팅 시스템은 검색 계획에 따라 검색을 실행한다. 분산 컴퓨팅 시스템은 예측 모델링 기술의 큐잉(queuing) 및 모니터링, 컴퓨팅 시스템 자원의 가상화, 데이터베이스에의 액세스, 검색 계획의 분할 및 모델링 기술의 평가에 대한 컴퓨팅 시스템의 자원의 할당, 실행 결과의 수집 및 조직화, 사용자 입력의 수용 등을 위한 인터페이스에 한정되지는 않지만 이를 포함하는 검색 계획에 따른 예측 모델링 해결책의 평가를 용이하게 하는 인터페이스를 제공할 수 있다.
사용자 인터페이스(120)는 예측 모델링 공간의 검색을 모니터링 및/또는 가이드하기 위한 도구를 제공한다. 이러한 도구는 (예를 들어, 데이터 세트의 문제가 있는 변수를 강조 표시하고, 데이터 세트의 변수 간 관계를 식별하는 등에 의해) 예측 문제의 데이터 세트에 대한 통찰력 및/또는 검색 결과에 대한 통찰력을 제공할 수 있다. 일부 실시예에서, 데이터 분석자는 예를 들어 모델링 해결책을 평가하고 비교하는 데 사용되는 메트릭을 특정하고, 적절한 모델링 해결책을 인식하기 위한 기준을 특정하는 것 등에 의해 검색을 가이드하기 위해 인터페이스를 사용할 수 있다. 따라서, 사용자 인터페이스는 그 자신의 생산성을 향상시키고 및/또는 탐색 엔진(110)의 성능을 향상시키기 위해 분석자에 의해 사용될 수 있다. 일부 실시예에서, 사용자 인터페이스(120)는 검색의 결과를 실시간으로 제시하고, 사용자가 실시간으로 검색을 가이드할 수 있게(예를 들어, 검색의 범위 또는 상이한 모델링 해결책의 평가 중 자원의 할당을 조정할 수 있게) 한다. 일부 실시예에서, 사용자 인터페이스(120)는 동일한 예측 문제 및/또는 관련된 예측 문제에 대해 작업하는 복수의 데이터 분석자의 노력을 조정하기 위한 도구를 제공한다.
일부 실시예에서, 사용자 인터페이스(120)는 모델링 기술의 라이브러리(130)에 대한 머신-실행 가능 템플릿을 개발하기 위한 도구를 제공한다. 시스템 사용자는 기존 템플릿을 수정하거나, 새로운 템플릿을 생성하거나, 라이브러리(130)로부터 템플릿을 제거하기 위해 이러한 도구를 사용할 수 있다. 이러한 방식으로, 시스템 사용자는 예측 모델링 연구의 진보를 반영하고 및/또는 독점적 예측 모델링 기술을 포함하도록 라이브러리(130)를 갱신할 수 있다.
모델 배치(deployment) 엔진(140)은 동작 환경에서의 예측 모델(예를 들어, 탐색 엔진(110)에 의해 생성된 예측 모델)을 배치하기 위한 도구를 제공한다. 일부 실시예에서, 모델 배치 엔진은 또한 예측 모델을 모니터링 및/또는 갱신하기 위한 도구를 제공한다. 시스템 사용자는 탐색 엔진(110)에 의해 생성된 예측 모델을 배치하고, 그러한 예측 모델의 성능을 모니터링하고, (예를 들어, 새로운 데이터 또는 예측 모델링 기술에서의 진보에 기초하여) 그러한 모델을 갱신하기 위해 배치 엔진(140)을 사용할 수 있다. 일부 실시예에서, 탐색 엔진(110)은 예측 문제에 대한 검색 공간의 탐색을 가이드하기 위해(예를 들어, 예측 문제에 대한 기본 데이터 세트의 변화에 대한 응답으로 예측 모델을 다시 맞추거나 튜닝하기 위해) (예를 들어, 배치된 예측 모델의 성능을 모니터링한 결과에 기초하여) 배치 엔진(140)에 의해 수집 및/또는 생성된 데이터를 사용할 수 있다.
예측 모델링 시스템(100)의 이러한 양태 및 다른 양태가 이하에서 더욱 상세하게 설명된다.
모델링 기술의 라이브러리
예측 모델링 기술의 라이브러리(130)는 완전한 예측 모델링 기술을 인코딩하는 머신-실행 가능 템플릿을 포함한다. 일부 실시예에서, 머신-실행 가능 템플릿은 하나 이상의 예측 모델링 알고리즘, 알고리즘(들)과 함께 사용하기에 적절한 제로(zero) 이상의 사전-프로세싱 단계, 및 알고리즘(들)과 함께 사용하기에 적절한 제로 이상의 사후-프로세싱 단계를 포함한다. 알고리즘(들), 사전-프로세싱 단계 및/또는 사후-프로세싱 단계는 파라미터화될 수 있다. 머신-실행 가능 템플릿은 데이터 세트에 의해 나타내어지는 예측 문제에 대한 잠재적인 예측 모델링 해결책을 생성하기 위해 데이터 세트에 적용될 수 있다.
템플릿은 머신 실행을 위해, 템플릿의 예측 모델링 알고리즘(들)과 함께 사용하기에 적절한 사전-프로세싱 단계, 모델-맞춤(fitting) 단계 및/또는 사후-프로세싱 단계를 인코딩할 수 있다. 사전-프로세싱 단계의 예는 누락값 입력, 피처 엔지니어링(예를 들어, 원-핫(one-hot) 인코딩, 스플라인, 텍스트 마이닝 등), 피처 선택(예를 들어, 정보가 없는 피처 탈락, 관련성이 높은 피처 탈락, 원래 피처를 톱(top) 주요 컴포넌트로 대체 등)을 포함하지만, 이에 한정되지 않는다. 모델-맞춤 단계의 예는 알고리즘 선택, 파라미터 추정, 하이퍼-파라미터 튜닝, 스코어링, 진단 등을 포함하지만 이에 한정되지 않는다. 사후-프로세싱 단계의 예는 예측의 교정, 검열, 혼합(blending) 등을 포함하지만, 이에 한정되지 않는다.
일부 실시예에서, 머신-실행 가능 템플릿은 템플릿에 의해 인코딩되는 예측 모델링 기술의 속성을 설명하는 메타데이터를 포함한다. 메타데이터는, 템플릿이 (예를 들어, 사전-프로세싱 단계, 사후-프로세싱 단계 또는 예측 모델링 알고리즘의 단계에서) 예측 모델링 해결책의 일부로서 수행할 수 있는 하나 이상의 데이터 프로세싱 기술을 나타낼 수 있다. 이러한 데이터 프로세싱 기술은 텍스트 마이닝, 피처 정규화, 치수 감소 또는 다른 적절한 데이터 프로세싱 기술을 포함할 수 있지만 이에 한정되지 않는다. 대안적으로 또는 부가적으로, 메타데이터는 데이터 세트의 차원성에 대한 제약, 예측 문제의 타겟(들)의 특성, 및/또는 예측 문제의 피처(들)의 특성에 한정되지 않지만 이를 포함하는 템플릿에 의해 인코딩되는 예측 모델링 기술에 의해 부과되는 하나 이상의 데이터 프로세싱 제약을 나타낼 수 있다.
일부 실시예에서, 템플릿의 메타데이터는, 대응하는 모델링 기술이 주어진 데이터 세트에 대해 얼마나 효과적인지를 추정하는 것과 관련된 정보를 포함한다. 예를 들어, 템플릿의 메타데이터는 넓은 데이터 세트, 키가 큰 데이터 세트, 희소(sparse) 데이터 세트, 밀집(dense) 데이터 세트, 텍스트를 포함하거나 포함하지 않는 데이터 세트, 다양한 데이터 유형(예를 들어, 숫자, 서수, 카테고리, 인터프리팅(예를 들어, 날짜, 시간, 텍스트) 등)의 변수를 포함하는 데이터 세트, 다양한 통계적 특성(예를 들어, 변수의 누락값, 기수(cardinality), 분산 등과 관련된 통계적 특성)을 갖는 변수를 포함하는 데이터 세트 등에 한정되지 않지만 이를 포함하는 특정의 특징을 갖는 데이터 세트에 대해 대응하는 모델링 기술이 얼마나 잘 수행할 것으로 예측되는지를 나타낼 수 있다. 다른 예에서, 템플릿의 메타데이터는, 하나 이상의 성능 메트릭(예를 들어, 목적 함수)의 관점에서 대응하는 모델링 기술의 예측되는 성능을 나타낸다.
일부 실시예에서, 템플릿의 메타데이터는 프로세싱 단계의 허용된 데이터 유형(들), 구조 및/또는 차원에 한정되지 않지만 이를 포함하는 대응하는 모델링 기술에 의해 구현되는 프로세싱 단계의 특성화를 포함한다.
일부 실시예에서, 템플릿의 메타데이터는 하나 이상의 예측 문제 및/또는 데이터 세트에 템플릿에 의해 나타내어지는 예측 모델링 기술을 적용한 결과(실제 또는 예상)를 나타내는 데이터를 포함한다. 예측 모델링 기술을 예측 문제 또는 데이터 세트에 적용한 결과는, 예측 모델링 기술에 의해 생성된 예측 모델이 예측 문제 또는 데이터 세트의 타겟(들)을 예측하는 정확도, 예측 문제 또는 데이터 세트에 대한 (다른 예측 모델링 기술과 관련된) 예측 모델링 기술에 의해 생성된 예측 모델의 정확도의 등급, 예측 문제 또는 데이터 세트에 대한 예측 모델을 생성하기 위해 예측 모델링 기술을 사용하는 유틸리티를 나타내는 스코어(예를 들어, 목적 함수에 대한 예측 모델에 의해 생성된 값) 등을 포함할 수 있지만, 이에 한정되지 않는다.
예측 모델링 기술을 예측 문제 또는 데이터 세트에 적용한 결과를 나타내는 데이터는 (예를 들어, 예측 문제 또는 데이터 세트에 대한 예측 모델링 기술을 사용하려는 이전 시도의 결과에 기초하여) 탐색 엔진(110)에 의해 제공되고, (예를 들어, 사용자의 전문 기술에 기초하여) 사용자에 의해 제공되고, 및/또는 임의의 다른 적절한 소스로부터 얻어질 수 있다. 일부 실시예에서, 탐색 엔진(110)은 예측 문제의 인스턴스의 실제 결과와 예측 모델링 기술을 통해 생성된 예측 모델에 의해 예측된 결과 사이의 관계에 적어도 부분적으로 기초하여 이러한 데이터를 갱신한다.
일부 실시예에서, 템플릿의 메타데이터는, 모델링 기술이 분산 컴퓨팅 인프라스트럭처 상에서 얼마나 효율적으로 실행될 것인지를 추정하는 것과 관련된 대응하는 모델링 기술의 특성을 기술한다. 예를 들어, 템플릿의 메타데이터는 주어진 크기의 데이터 세트에 대해 모델링 기술을 트레이닝 및/또는 테스트하는 데 필요한 프로세싱 자원, 상호 유효성 검증 폴드의 수의 자원 소비에 대한 영향 및 하이퍼-파라미터 공간에서 검색된 포인트의 수, 모델링 기술에 의해 수행되는 프로세싱 단계의 본질적인 병렬화 등을 나타낼 수 있다.
일부 실시예에서, 모델링 기술의 라이브러리(130)는 예측 모델링 기술 간의 유사성(또는 차이)을 평가하기 위한 도구를 포함한다. 이러한 도구는 2개의 예측 모델링 기술 사이의 유사성을 (예를 들어, 미리 정해진 스케일 상의) 스코어, 분류(예를 들어, "매우 유사", "다소 유사", "다소 비유사", "매우 비유사"), 바이너리 결정(예를 들어, "유사" 또는 "비유사") 등으로 표현할 수 있다. 이러한 도구는 2개의 예측 모델링 기술을 동일하거나 유사한 예측 문제에 적용한 결과를 나타내는 데이터 등에 기초하여, 모델링 기술에 공통적인 프로세싱 단계에 기초하여 2개의 예측 모델링 기술 간의 유사성을 결정할 수 있다. 예를 들어, 유사한 예측 문제에 적용될 때, 다수의 (또는 높은 퍼센티지의) 그 프로세싱 단계를 공통으로 갖고 및/또는 유사한 결과를 산출하는 주어진 2개의 예측 모델링 기술에 있어서, 도구는 모델링 기술에 높은 유사성 스코어를 할당하거나 모델링 기술을 "매우 유사"로 분류할 수 있다.
일부 실시예에서, 모델링 기술은 모델링 기술의 패밀리에 할당될 수 있다. 모델링 기술의 패밀리 분류는 (예를 들어, 직관과 경험에 기초하여) 사용자에 의해 할당될 수 있으며, (예를 들어, 모델링 기술에 공통적인 프로세싱 단계, 상이한 모델링 기술을 동일하거나 유사한 문제에 적용한 결과를 나타내는 데이터 등에 기초하여) 머신-학습 분류기에 의해 할당될 수 있거나, 다른 적절한 소스로부터 얻어질 수 있다. 예측 모델링 기술 간의 유사성을 평가하기 위한 도구는 2개의 모델링 기술 간의 유사성을 평가하기 위해 패밀리 분류에 의존할 수 있다. 일부 실시예에서, 도구는 동일한 패밀리의 모든 모델링 기술을 "유사"로 취급하고, 상이한 패밀리의 임의의 모델링 기술을 "비유사"로 취급할 수 있다. 일부 실시예에서, 모델링 기술의 패밀리 분류는 모델링 기술 간의 유사성의 도구 평가에서 단지 하나의 요인일 수 있다.
일부 실시예에서, 예측 모델링 시스템(100)은 예측 문제의 라이브러리(도 1에 미도시)를 포함한다. 예측 문제의 라이브러리는 예측 문제의 특성을 나타내는 데이터를 포함할 수 있다. 일부 실시예에서, 예측 문제의 특성을 나타내는 데이터는 예측 문제를 나타내는 데이터 세트의 특성을 나타내는 데이터를 포함한다. 데이터 세트의 특성은 데이터 세트의 폭, 높이, 희소성 또는 밀도; 데이터 세트의 타겟 및/또는 피처의 수, 데이터 세트 변수의 데이터 유형(예를 들어, 숫자, 서수, 카테고리 또는 인터프리팅(예를 들어, 날짜, 시간, 텍스트 등); 데이터 세트의 숫자 변수의 범위; 데이터 세트의 서수 및 카테고리 변수에 대한 클래스의 수; 등을 포함할 수 있지만 이에 한정되지 않는다.
일부 실시예에서, 데이터 세트의 특성은 전체 관측치의 수; 관측치에 걸친 각각의 변수에 대한 고유값의 수; 관측치에 걸친 각각의 변수의 누락값의 수; 아웃라이어(outlier) 및 인라이어(inlier)의 존재 및 범위; 각각의 변수의 값 또는 클래스 멤버십의 분산의 속성; 변수의 기수성; 등에 한정되지 않지만 이를 포함하는 데이터 세트의 변수의 통계적 속성을 포함한다. 일부 실시예에서, 데이터 세트의 특성은 변수의 그룹의 공동 분산; 하나 이상의 타겟에 대한 하나 이상의 피처의 가변적인 중요도(예를 들어, 피처 및 타겟 변수 간의 상관도); 2개 이상의 피처 간의 통계적 관계(예를 들어, 2개의 피처 간의 다중공선성(multicollinearity) 정도); 등에 한정되지 않지만 이를 포함하는 데이터 세트의 변수 간의 관계(예를 들어, 통계적 관계)를 포함한다.
일부 실시예에서, 예측 문제의 특성을 나타내는 데이터는 예측 문제의 주제를 나타내는 데이터(예를 들어, 금융, 보험, 방위, 전자-상거래, 소매, 인터넷-기반 광고, 인터넷-기반 추천 엔진 등); 변수의 유래(예를 들어, 각각의 변수가 자동화 기구로부터, 자동화 계구의 인간의 기록으로부터, 인간의 측정으로부터, 기재된 인간의 응답으로부터, 구두의 인간의 반응 등으로부터 직접 획득되었는지 여부); 예측 문제에 대해 알려진 예측 모델링 해결책의 존재와 성능; 등을 포함한다.
일부 실시예에서, 예측 모델링 시스템(100)은 시계열 예측 문제(예를 들어, 일차원 또는 다차원 시계열 예측 문제)를 지원할 수 있다. 시계열 예측 문제의 경우, 목적은 일반적으로 타겟 자체를 포함하여 모든 피처의 이전 관측치 값의 함수로서 타겟의 장래값을 예측하는 것이다. 예측 문제의 특성을 나타내는 데이터는, 예측 문제가 시계열 예측 문제인지 여부를 표시하고, 시계열 예측 문제에 대응하는 데이터 세트의 시간 측정 변수를 식별함으로써, 시계열 예측 문제를 수용할 수 있다.
일부 실시예에서, 예측 문제의 라이브러리는 예측 문제 간의 유사성(또는 차이)을 평가하기 위한 도구를 포함한다. 이러한 도구는 2개의 예측 문제 간의 유사성을 (예를 들어, 미리 정해진 스케일 상의) 스코어, 분류(예를 들어, "매우 유사", "다소 유사", "다소 비유사", "매우 비유사"), 바이너리 결정(예를 들어, "유사" 또는 "비유사")으로서 표현할 수 있다. 이러한 도구는 동일하거나 유사한 예측 모델링 기술을 예측 문제에 적용한 결과를 나타내는 데이터 등에 기초하여, 예측 문제의 특성을 나타내는 데이터에 기초하여 2개의 예측 문제 간의 유사성을 결정할 수 있다. 예를 들어, 다수의(또는 높은 퍼센티지의) 특성을 공통으로 갖고 및/또는 동일하거나 유사한 예측 모델링 기술에 영향을 받기 쉬운 데이터 세트에 의해 나타내어지는 2개의 예측 문제에 있어서, 도구는 예측 문제에 높은 유사성 스코어를 할당하거나 예측 문제를 "매우 유사"로 분류할 수 있다.
도 2는 예측 모델링 기술을 인코딩하는 머신-실행 가능 템플릿을 구축하고 일부 실시예에 따라 이러한 템플릿을 예측 모델링 방법으로 통합하기에 적절한 모델링 도구(200)의 블록도를 나타낸다. 사용자 인터페이스(120)는 모델링 도구(200)에 인터페이스를 제공할 수 있다.
도 2의 예에서, 도 2에서, 모델링 방법 빌더(210)는 모델링 기술의 라이브러리(130)의 톱(top) 상에 모델링 방법의 라이브러리(212)를 구축한다. 모델링 기술 빌더(220)는 모델링 작업의 라이브러리(232)의 톱 상에 모델링 기술의 라이브러리(130)를 구축한다. 모델링 방법은, 어떤 모델링 기술이 어떤 상황에서 효과적인지 대한 하나 이상의 분석자의 직관 및 경험에 대응할 수 있고, 및/또는 예측 문제에 대한 모델링 검색 공간의 탐색을 가이드하기 위해 이전 예측 문제에 대한 모델링 기술의 적용의 결과를 활용할 수 있다. 모델링 기술은 특정 모델링 알고리즘을 적용하기 위한 단계별 레시피에 대응할 수 있다. 모델링 작업은 모델링 기술 내의 프로세싱 단계에 대응할 수 있다.
일부 실시예에서, 모델링 기술은 작업의 계층을 포함할 수 있다. 예를 들어, 톱-레벨 "텍스트 마이닝" 작업은 (a) 문서-용어 매트릭스를 생성하고 (b) 용어를 등급화하고 중요하지 않은 용어를 탈락시키는 하위-작업을 포함할 수 있다. 이어서, "용어 등급화 및 탈락" 하위-작업은 (b.1) 등급 모델을 구축하고 (b.2) 문서-용어 매트릭스로부터 열(column)을 탈락시키기 위해 용어 등급을 사용하기 위한 하위-작업을 포함할 수 있다. 이러한 계층은 임의의 깊이를 가질 수 있다.
도 2의 예에서, 도 2에서, 모델링 도구(200)는 모델링 작업 빌더(230), 모델링 기술 빌더(220) 및 모델링 방법 빌더(210)를 포함한다. 각각의 빌더는 머신-실행 가능 포맷으로 모델링 요소 중 하나를 인코딩하기 위한 도구 또는 도구의 세트를 포함할 수 있다. 각각의 빌더는, 사용자가 기존 모델링 요소를 수정하거나 새 모델링 요소를 생성하도록 허용할 수 있다. 도 2에 나타내어진 모델링 층에 걸쳐 모델링 요소의 완전한 라이브러리를 구성하기 위해, 개발자는 하향식, 상향식, 외향식, 내향식, 또는 조합된 전략을 채용할 수 있다. 그러나, 논리적 의존성의 관점에서, 리프(leaf)-레벨 작업이 가장 작은 모델링 요소이므로, 도 2는 머신-실행 가능 템플릿을 구성하는 프로세스의 제1 단계로서 작업 생성을 도시한다.
각각의 빌더의 사용자 인터페이스는 표준 프로그래밍 언어로 특수화된 루틴의 컬렉션, 빌더의 요소를 인코딩할 목적으로 특별히 설계된 형식 문법, 원하는 실행 흐름을 추상적으로 특정하기 위한 리치 유저 인터페이스 등에 한정되지는 않지만 이를 사용하여 구현될 수 있다 그러나, 각 층에서 허용되는 연산의 논리적 구조는 임의의 특정 인터페이스와 독립적이다.
계층 구조의 리프-레벨에서 모델링 작업을 생성할 때, 모델링 도구(200)는, 개발자가 다른 소스로부터 소프트웨어 컴포넌트를 통합하는 것을 허용할 수 있다. 이 기능은 통계 학습과 관련된 소프트웨어의 설치된 베이스 및 이러한 소프트웨어를 어떻게 개발하는지에 대한 축적된 지식을 활용한다. 이러한 설치된 베이스는 과학 프로그래밍 언어(예를 들어, Fortran), 범용 프로그래밍 언어(예를 들어, C)로 작성된 과학 루틴, 범용 프로그래밍 언어(예를 들어, Python용 사이킷-학습(scikit-learn))의 과학 컴퓨팅 확장, 상업용 통계 환경(예를 들어, SAS/STAT) 및 오픈 소스 통계 환경(예를 들어, R)을 커버한다. 이러한 소프트웨어 컴포넌트의 기능을 통합하는 데 사용될 때, 모델링 작업 빌더(230)는 소프트웨어 컴포넌트의 입력 및 출력의 사양 및/또는 소프트웨어 컴포넌트가 수행할 수 있는 동작 유형의 특성화를 요구할 수 있다. 일부 실시예에서, 모델링 작업 빌더(230)는 소프트웨어 컴포넌트의 소스 코드 서명을 검사하거나, 소프트웨어 컴포넌트의 인터페이스 정의를 저장소로부터 리트리빙(retrieving)하거나, 요청 시퀀스로 소프트웨어 컴포넌트를 프로빙하거나, 다른 형태의 자동화 평가를 수행함으로써 이 메타데이터를 생성한다. 일부 실시예에서, 개발자는 이 메타데이터의 일부 또는 전부를 수동으로 공급한다.
일부 실시예에서, 모델링 작업 빌더(230)는 이 메타데이터를 사용하여 통합된 소프트웨어를 실행할 수 있게 하는 "래퍼(wrapper)"를 생성한다. 모델링 작업 빌더(230)는 컴포넌트의 소스 코드를 내부 실행 가능자로 컴파일링하고, 컴포넌트의 목적 코드를 내부 실행자에 링크하고, 컴포넌트의 독립형 실행자에 의해 예상되는 컴퓨팅 환경의 에뮬레이터를 통해 컴포넌트에 액세스하고, 로컬 머신 상의 소프트웨어 서비스의 일부로서 실행되는 컴포넌트의 기능에 액세스하고, 원격 머신 상의 소프트웨어 서비스의 일부로서 실행되는 컴포넌트의 기능에 액세스하고, 로컬 또는 원격 머신 상에서 실행되는 중간 소프트웨어 서비스를 통해 컴포넌트의 기능에 액세스하는 등에 한정되지 않지만 이를 포함하여 소프트웨어 컴포넌트를 통합하기 위해 임의의 메커니즘을 이용하는 이러한 래퍼를 구현할 수 있다. 래퍼가 생성된 후에 모델링 작업 빌더(230)가 어떠한 통합 메커니즘을 사용하든지, 모델링 도구(200)는 임의의 다른 루틴처럼 컴포넌트에 소프트웨어를 호출할 수 있다.
일부 실시예에서, 개발자는 리프-레벨 모델링 작업을 재귀적으로 상위-레벨 작업으로 어셈블링하기 위해 모델링 작업 빌더(230)를 사용할 수 있다. 전술한 바와 같이, 작업 계층 구조의 배열을 특정하기 위해 사용자 인터페이스를 구현하는 많은 상이한 방식들이 존재한다. 그러나 논리적 관점에서 볼 때, 리프-레벨이 아닌 작업은 하위-작업의 지향 그래프를 포함할 수 있다. 이 계층 구조의 톱 및 중간 레벨 각각에는, 그 입력이 계층 구조의 부모(parent) 작업(또는 계층 구조의 톱 레벨에 있는 부모 모델링 기술)으로부터 온 하나의 개시 하위-작업이 있을 수 있다. 계층 구조에서 그 출력이 부모 작업(또는 계층 구조의 톱 레벨에 있는 부모 모델링 기술)으로 향하는 하나의 종료 하위-작업이 또한 있을 수 있다. 주어진 레벨에서의 다른 모든 하위-작업은 하나 이상의 이전 하위-작업으로부터 입력을 수신하고, 하나 이상의 후속 하위-작업으로 출력을 전송한다.
리프-레벨 작업에 임의의 코드를 통합하는 능력과 조합하여, 지향 그래프에 따라 데이터를 전파하는 것은 중간-레벨 작업 내에서 임의의 제어 흐름의 구현을 용이하게 한다. 일부 실시예에서, 모델링 도구(200)는 추가적인 빌트인(built-in) 동작을 제공할 수 있다. 예를 들어, 임의의 특정 조건부 로직을 외부 프로그래밍 언어로 코딩된 리프-레벨 작업으로서 구현하는 것이 간단하지만, 모델링 작업 빌더(230)는 일반적인 방식으로 조건부 평가를 수행하는 빌트인 노드 또는 아크(arc)를 제공할 수 있어, 이러한 평가의 결과에 기초하여 노드로부터의 데이터의 일부 또는 전부를 상이한 후속 노드로 향하게 한다. 후속 노드에 대한 입력으로서 전파하기 전에 규칙 또는 표현에 따라 한 노드로부터의 출력을 필터링하고, 한 노드로부터의 출력을 후속 노드에 대한 입력으로 전파하기 전에 변환하고, 각 분할을 각각의 후속 노드로 전파하기 전에 규칙 또는 표현에 따라 한 노드로부터의 출력을 분할하고, 입력으로서 수용하기 전에 규칙 또는 공식에 따라 복수의 이전 노드의 출력을 조합하고, 하나 이상의 루프 변수를 사용하여 노드의 동작의 서브-그래프를 반복적으로 적용하는 것 등을 위한 유사한 대안이 존재한다.
일부 실시예에서, 개발자는 모델링 기술 빌더(220)를 사용하여 모델링 작업 라이브러리(232)로부터의 작업을 모델링 기술로 어셈블링할 수 있다. 모델링 작업 라이브러리(232)의 적어도 일부 모델링 작업은 하나 이상의 모델링 기술의 사전-프로세싱 단계, 모델-맞춤 단계 및/또는 사후-프로세싱 단계에 대응할 수 있다. 작업 및 기술의 개발은 작업 라이브러리(232)가 채워진 후에 기술이 어셈블링되는 선형 패턴 또는 작업 및 기술이 동시에 어셈블링되는 보다 동적인 원형 패턴을 따를 수 있다. 개발자는 기존 작업을 새로운 기술로 조합하도록 고무되고, 이 기술이 새로운 작업을 필요로 한다는 것을 인식하고 새로운 기술이 완료될 때까지 반복적으로 정제(refine)할 수 있다. 대안적으로, 개발자는 아마도 학술지 발행으로부터의 새로운 기술의 개념으로 시작하여 새로운 작업으로부터 이를 구축할 수 있지만, 적절한 기능을 제공할 때 모델링 작업 라이브러리(232)로부터 기존 작업을 끌어올 수 있다. 모든 경우에, 참조 데이터 세트 또는 필드 테스트에 모델링 기술을 적용한 결과는 개발자 나 분석자가 기술의 성능을 평가할 수 있게 할 것이다. 이러한 평가는, 차례로 리프-레벨 모델링 작업으로부터 모델링 기술에 이르기까지 계층 구조에서의 어느 지점에서의 변화로 귀결될 수 있다. 모델링 도구(200)는 공통 모델링 작업 및 모델링 기술 라이브러리(232, 130)뿐만 아니라 고생산성 빌더 인터페이스(210, 220 및 230)를 제공함으로써, 개발자가 신속하고 정확하게 변경할 수 있을 뿐만 아니라 라이브러리(232, 130)에 대한 액세스를 갖는 다른 개발자 및 사용자에게 이러한 향상을 전파할 수 있다.
모델링 기술은 개발자 및 분석자가 전체 예측 모델링 절차를 개념화하기 위한 초점을 제공할 수 있으며, 모든 단계는 필드의 최상 실시에 기초하여 예상된다. 일부 실시예에서, 모델링 기술은 통계적 학습 훈련으로부터의 최상 실시를 캡슐화한다. 또한, 모델링 도구(200)는, 예를 들어, 누락 작업을 검출하고, 추가 작업을 검출하고 및/또는 단계들 중의 비정상적인 흐름을 검출하는 기존의 기술의 작업 그래프에 대해 새로운 기술에 대한 작업 그래프를 개발자가 고려 및 비교하기 위해 예를 들어, 단계의 체크리스트를 제공함으로써 고품질 기술의 개발의 안내 지침을 제공할 수 있다.
일부 실시예에서, 탐색 엔진(110)은 모델링 기술 라이브러리(130)의 기술을 사용하여 데이터 세트(240)에 대한 예측 모델을 구축하는 데 사용된다. 탐색 엔진(110)은 모델링 방법 라이브러리(212)로부터 선택된 모델링 방법에 의해 인코딩된 우선 순위 방식에 기초하여 모델링 기술 라이브러리(130)에서 모델링 기술의 평가를 우선 순위화할 수 있다. 모델링 공간의 탐색을 위한 적절한 우선 순위 방식의 예가 다음 섹션에서 설명된다. 도 2의 예에서, 모델링 공간의 탐색 결과는 모델링 작업 및 기술과 연관된 메타데이터를 갱신하는 데 사용될 수 있다.
일부 실시예에서, 고유 식별자(ID)가 모델링 요소(예를 들어, 기술, 작업 및 하위-작업)에 할당될 수 있다. 모델링 요소의 ID는 모델링 요소의 템플릿과 연관된 메타데이터로서 저장될 수 있다. 일부 실시예에서, 이들 모델링 엘리먼트 ID는 하나 이상의 모델링 작업 또는 하위-작업을 공유하는 모델링 기술을 효율적으로 실행하는 데 사용될 수 있다. 모델링 기술을 효율적으로 실행하는 방법이 아래에서 더욱 상세하게 설명된다.
도 2의 예에서, 탐색 엔진(110)에 의해 생성된 모델링 결과는 모델링 작업 빌더(230), 모델링 기술 빌더(220) 및 모델링 방법 빌더(210)로 피드백된다. 모델 빌더는 모델링 결과에 기초하여 (예를 들어, 통계적 학습 알고리즘을 사용하여) 자동으로 또는 (예를 들어, 사용자에 의해) 수동으로 적응될 수 있다. 예를 들어, 모델링 방법 빌더(210)는 모델링 결과에서 관측된 패턴에 기초하여 및/또는 데이터 분석자의 경험에 기초하여 적응될 수 있다. 유사하게, 특정 모델링 기술을 실행한 결과는 이들 모델 내의 기술 또는 작업에 대한 디폴트 튜닝 파라미터값의 자동 또는 수동 조정을 알릴 수 있다. 일부 실시예에서, 모델링 빌더의 적응은 반자동일 수 있다. 예를 들어, 예측 모델링 시스템(100)은 방법, 기술 및/또는 작업에 대한 잠재적 개선을 플래깅할 수 있으며, 사용자는 이러한 잠재적 개선을 구현할지 여부를 결정할 수 있다.
모델링 공간 탐색 엔진
도 3은 일부 실시예에 따라 예측 문제에 대한 예측 모델을 선택하기 위한 방법(300)의 흐름도이다. 일부 실시예에서, 방법(300)은 모델링 방법 라이브러리(212)에서의 모델링 방법에 대응할 수 있다.
방법(300)의 단계(310)에서, 예측 문제에 대한 복수의 예측 모델링 절차(예를 들어, 예측 모델링 기술)의 적절성이 결정된다. 예측 모델링 절차의 예측 문제에 대한 적절성은 예측 문제의 특성, 모델링 절차의 속성, 및/또는 다른 적절한 정보에 기초하여 결정될 수 있다.
예측 문제에 대한 예측 모델링 절차의 "적절성"은 예측 모델링 절차를 사용하여 생성된 예측 모델의 예측 문제에 대한 예상된 성능을 나타내는 데이터를 포함할 수 있다. 일부 실시예에서, 예측 문제에 대한 예측 모델의 예상되는 성능은 하나 이상의 예상되는 스코어(예를 들어, 하나 이상의 목적 함수의 예상값) 및/또는 (예를 들어, 다른 예측 모델링 기술을 사용하여 생성된 다른 예측 모델에 대한) 하나 이상의 예상 등급을 포함한다.
대안적으로 또는 추가적으로, 예측 문제에 대한 예측 모델링 절차의 "적절성"은, 모델링 절차가 예측 문제에 대해 적절한 성능을 제공하는 예측 모델을 생성할 것으로 예상되는 정도를 나타내는 데이터를 포함할 수 있다. 일부 실시예에서, 예측 모델링 절차의 "적절성" 데이터는 모델링 절차의 적절성의 분류를 포함한다. 분류 스킴은 2개의 클래스(예를 들어, "적절" 또는 "비적절") 또는 2개 초과의 클래스(예를 들어, "매우 적절", "중간 정도로 적절", "중간 정도로 부적절", "매우 부적절")를 가질 수 있다.
일부 실시예에서, 탐색 엔진(110)은 본원에 설명되는 (그러나 이에 한정되는 것은 아님) 특성을 포함하여, 예측 문제의 하나 이상의 특성에 적어도 부분적으로 기초하여 예측 문제에 대한 예측 모델링 절차의 적절성을 결정한다. 일례로서, 예측 문제에 대한 예측 모델링 절차의 적절성은 예측 문제에 대응하는 데이터 세트의 특성, 예측 문제에 대응하는 데이터 세트의 변수의 특성, 데이터 세트의 변수들 간의 관계 및/또는 예측 문제의 주제에 기초하여 결정될 수 있다. 탐색 엔진(110)은 예측 문제, 데이터 세트, 데이터 세트 변수 등의 특성을 결정하기 위해 예측 문제와 연관된 데이터 세트를 분석하기 위한 도구(예를 들어, 통계 분석 도구)를 포함할 수 있다.
일부 실시예에서, 탐색 엔진(110)은 (이에 한정되는 것은 아니지만) 본원에 설명되는 예측 모델링 절차의 속성을 포함하여, 예측 모델링 절차의 하나 이상의 속성에 적어도 부분적으로 기초하여 예측 문제에 대한 예측 모델링 절차의 적절성을 결정한다. 일례로서, 예측 문제에 대한 예측 모델링 절차의 적절성은 예측 모델링 절차에 의해 수행된 데이터 프로세싱 기술 및/또는 예측 모델링 절차에 의해 부과된 데이터 프로세싱 제약에 기초하여 결정될 수 있다.
일부 실시예에서, 예측 문제에 대한 예측 모델링 절차의 적절성을 결정하는 것은 예측 문제에 대한 고려로부터 적어도 하나의 예측 모델링 절차를 제거하는 것을 포함한다. 고려로부터 예측 모델링 절차를 제거하기로 한 결정은 본원에서 제거된 모델링 절차를 "정리(pruning)" 및/또는 "검색 공간 정리"로 칭해질 수 있다. 일부 실시예에서, 사용자는 모델링 절차를 정리하기로 한 탐색 엔진의 결정을 무시할 수 있어, 이전에 정리된 모델링 절차가 검색 공간의 탐색 중에 추가적인 실행 및/또는 평가에 적격으로 남아 있다.
예측 모델링 절차는 예측 모델링 절차의 속성 및 예측 문제의 특성에 하나 이상의 연역적 규칙을 적용한 결과에 기초하여 고려에서 제외될 수 있다. 연역적 규칙은 다음을 포함할 수 있지만 이에 한정되지 않는다: (1) 예측 문제가 카테고리 타겟 변수를 포함하는 경우, 실행을 위한 분류 기술만을 선택한다; (2) 데이터 세트의 숫자 피처가 크게 상이한 크기 범위에 걸쳐 있는 경우, 정규화를 제공하는 기술을 선택하거나 우선 순위화한다; (3) 데이터 세트가 텍스트 피처를 갖는 경우, 텍스트 마이닝을 제공하는 기술을 선택하거나 우선 순위화한다; (4) 데이터 세트가 관측치보다 많은 피처를 갖는 경우, 피처의 수보다 많거나 동등한 관측치의 수를 필요로 하는 모든 기술을 제거한다; (5) 데이터 세트의 폭이 임계폭을 초과하는 경우, 크기 감소를 제공하는 기술을 선택하거나 우선 순위화한다; (6) 데이터 세트가 크고 희소한 경우(예를 들어, 데이터 세트의 크기가 임계 크기를 초과하고 데이터 세트의 희소성이 임계 희소성을 초과하는 경우), 희소한 데이터 구조에 대해 효율적으로 실행되는 기술을 선택하거나 우선 순위화하고; 및/또는 규칙이 가정문(if-then statement) 형태로 표현될 수 있는 모델링 기술을 선택, 우선 순위화 또는 제거하기 위한 임의의 규칙을 포함한다. 일부 실시예에서, 연역적 규칙은 연쇄되어, 몇몇 규칙의 순차적 실행이 결론을 생성한다. 일부 실시예에서, 연역적 규칙은 이력적 성능에 기초하여 갱신, 정제 또는 개선될 수 있다.
일부 실시예에서, 탐색 엔진(110)은 유사한 예측 문제에 대한 유사한 예측 모델링 절차들의 수행(예상 또는 실제)에 기초하여 예측 문제에 대한 예측 모델링 절차의 적절성을 결정한다(특별한 경우로서, 탐색 엔진(110)은 유사한 예측 문제에 대한 동일한 예측 모델링 절차의 성능(예상 또는 실제)에 기초하여 예측 문제에 대한 예측 모델링 절차의 적절성을 결정할 수 있음).
전술한 바와 같이, 모델링 기술의 라이브러리(130)는 예측 모델링 기술들 간의 유사성을 평가하기 위한 도구를 포함할 수 있고, 예측 문제의 라이브러리는 예측 문제들 간의 유사성을 평가하기 위한 도구를 포함할 수 있다. 탐색 엔진(110)은 예측 모델링 절차 및 문제가 되는 예측 모델링 절차 및 예측 문제와 유사한 예측 문제를 식별하기 위해 이 도구를 사용할 수 있다. 예측 문제에 대한 예측 모델링 절차의 적절성을 결정할 목적으로, 탐색 엔진(110)은 문제가 되는 모델링 절차와 가장 유사한 M 모델링 절차를 선택하고, 문제가 되는 모델링 절차에 대한 임계 유사도 값을 초과하는 모든 모델링 절차를 선택하는 것 등을 수행할 수 있다. 마찬가지로, 예측 문제에 대한 예측 모델링 절차의 적절성을 결정할 목적으로, 탐색 엔진(110)은 문제가 되는 예측 문제와 가장 유사한 N 예측 문제를 선택하고, 문제가 되는 예측 문제에 대한 임계치 유사도 값을 초과하는 모든 예측 문제를 선택하는 것 등을 수행할 수 있다.
예측 모델링 절차의 세트 및 모델링 절차 및 문제가 되는 예측 문제와 유사한 예측 문제의 세트에 있어서, 탐색 엔진은 문제가 되는 예측 문제에 대해 문제가 되는 모델링 절차의 예상되는 적절성을 결정하기 위해 유사한 예측 문제에 대한 유사한 모델링 절차의 성능을 조합할 수 있다. 전술한 바와 같이, 모델링 절차의 템플릿은, 대응하는 모델링 절차가 주어진 데이터 세트에 대해 얼마나 잘 수행할 것인지를 평가하는 데 관련된 정보를 포함할 수 있다. 탐색 엔진(110)은 유사한 예측 문제에 대한 유사한 모델링 절차의 성능 값(예상 또는 실제)을 결정하기 위해 모델 성능 메타데이터를 사용할 수 있다. 그 후, 이러한 성능 값은 문제가 되는 예측 문제에 대한 모델링 절차의 적절성의 추정을 생성하기 위해 조합될 수 있다. 예를 들어, 탐색 엔진(110)은 유사한 예측 문제에 대한 유사한 모델링 절차의 성능 값들의 가중화된 합으로서 문제가 되는 모델링 절차의 적절성을 계산할 수 있다.
일부 실시예에서, 탐색 엔진(110)은, 다른 예측 문제(예를 들어, 문제가 되는 예측 문제와 유사한 예측 문제)에 대한 다양한 모델링 절차(예를 들어, 문제가 되는 모델링 절차와 유사한 모델링 절차)의 결과에 기초하여 예측 문제에 대한 모델링 절차의 적절성을 결정하도록 트레이닝될 수 있는 "메타" 머신-학습 모델의 출력에 적어도 부분적으로 기초하여 예측 문제에 대한 예측 모델링 절차의 적절성을 결정한다. 예측 문제에 대한 예측 모델링 절차의 적절성을 추정하기 위한 머신-학습 모델은, 문제가 되는 예측 문제에 대해 어떤 기술이 가장 성공 가능성이 높은지를 예측하기 위해 머신 학습을 재귀적으로 적용하기 때문에 "메타" 머신-학습 모델이라 칭해질 수 있다. 따라서, 탐색 엔진(110)은 다른 예측 문제를 푼 결과에 대해 트레이닝된 메타-머신-학습 알고리즘을 사용함으로써 예측 문제에 대한 모델링 기술의 적절성의 메타-예측을 생성할 수 있다.
일부 실시예에서, 탐색 엔진(110)은 사용자 입력(예를 들어, 예측 모델링 절차의 적절성에 관한 데이터 분석자의 직관 또는 경험을 나타내는 사용자 입력)에 적어도 부분적으로 기초하여 예측 문제에 대한 예측 모델링 절차의 적절성을 결정할 수 있다.
도 3을 참조하면, 방법(300)의 단계(320)에서, 예측 모델링 절차의 적어도 한 서브세트가 예측 문제에 대한 모델링 절차의 적절성에 기초하여 선택될 수 있다. 모델링 절차가 적절성 카테고리(예를 들어, "적절" 또는 "부적절", "매우 적절", "중간 정도로 적절", "중간 정도로 부적절" 또는 "매우 부적절" 등)에 할당된 실시예에서, 모델링 절차의 서브세트를 선택하는 것은 하나 이상의 적절성 카테고리에 할당된 모델링 절차(예를 들어, "적절한 카테고리"에 할당된 모든 모델링 절차; "매우 부적절" 카테고리에 할당되지 않은 모든 모델링 절차; 등)를 선택하는 것을 포함할 수 있다.
모델링 절차에 적절성 값이 할당되는 실시예에서, 탐색 엔진(110)은 적절성 값에 기초하여 모델링 절차의 서브세트를 선택할 수 있다. 일부 실시예에서, 탐색 엔진(110)은 임계 적절성 스코어를 초과하는 적절성 스코어를 갖는 모델링 절차를 선택한다. 임계 적절성 스코어는 사용자에 의해 제공되거나 탐색 엔진(110)에 의해 결정될 수 있다. 일부 실시예에서, 탐색 엔진(110)은 모델링 절차의 실행을 위해 이용 가능한 프로세싱 자원의 양에 따라, 실행을 위해 선택된 모델링 절차의 수를 증가시키거나 감소시키도록 임계 적절성 스코어를 조정할 수 있다.
일부 실시예에서, 탐색 엔진(110)은 문제가 되는 예측 문제에 대한 임의의 모델링 절차에 할당된 최고 적절성 스코어의 특정 범위 내의 적절성 스코어를 갖는 모델링 절차를 선택한다. 범위는 절대적(예를 들어, 최고 스코어의 S 포인트 내의 스코어) 또는 상대적(예를 들어, 최고 스코어의 P% 내의 스코어)일 수 있다. 범위는 사용자에 의해 제공되거나 탐색 엔진(110)에 의해 결정될 수 있다. 일부 실시예에서, 탐색 엔진(110)은 모델링 절차의 실행을 위해 이용 가능한 프로세싱 자원의 양에 따라 실행을 위해 선택된 모델링 절차의 수를 증가 또는 감소시키도록 범위를 조정할 수 있다.
일부 실시예에서, 탐색 엔진(110)은 문제가 되는 예측 문제에 대해 최고의 적절성 스코어를 갖는 모델링 절차의 부분을 선택한다. 동등하게, 탐색 엔진(110)은 (예를 들어, 모델링 절차에 대한 적절성 스코어가 이용 가능하지 않지만, 모델링 절차의 적절성의 순서(등급화)가 이용 가능한 경우에) 최고의 적절성 등급을 갖는 모델링 절차의 부분을 선택할 수 있다. 부분은 사용자에 의해 제공되거나 탐색 엔진(110)에 의해 결정될 수 있다. 일부 실시예에서, 탐색 엔진(110)은 모델링 절차의 실행을 위해 이용 가능한 프로세싱 자원의 양에 따라, 실행을 위해 선택된 모델링 절차의 수를 증가시키거나 감소시키도록 부분을 조정할 수 있다.
일부 실시예에서, 사용자는 실행될 하나 이상의 모델링 절차를 선택할 수 있다. 사용자가 선택한 절차는 탐색 엔진(110)에 의해 선택된 하나 이상의 모델링 절차에 추가하여 또는 그 대신에 실행될 수 있다. 특히 데이터 분석자의 직관 및 경험이, 모델링 시스템(100)이 예측 문제에 대한 모델링 절차의 적절성을 정확하게 추정하지 못했음을 나타내는 시나리오에서, 사용자가 실행을 위한 모델링 절차를 선택할 수 있게 하면, 예측 모델링 시스템(100)의 성능을 향상시킬 수 있다.
일부 실시예에서, 탐색 엔진(110)은, 모델링 절차 P0...PN 전부가 문제가 되는 예측 문제에 대해 적절한 것으로 결정되는 경우에도, 모델링 절차 P0...PN을 선택하지 않고 하나 이상의 다른 모델링 절차 P1...PN을 나타내는(예를 들어, 유사한) 모델링 절차 P0를 선택함으로써 검색 공간 평가의 입도(granularity)를 제어할 수 있다. 또한, 탐색 엔진(110)은 선택된 모델링 절차 P0를 실행한 결과를 모델링 절차 P1...PN을 실행한 결과를 나타내는 것으로서 취급할 수 있다. 검색 공간을 평가하는 이러한 거친(coarse-grained) 접근법은, 특히 검색 공간의 평가의 초기 단계 중에 적용되는 경우 프로세싱 자원을 절약할 수 있다. 탐색 엔진(110)이, 모델링 절차 P0가 예측 문제에 대한 가장 적절한 모델링 절차 중에 있는 것으로 나중에 결정하는 경우, 유사한 모델링 절차 P1...PN을 실행 및 평가함으로써 검색 공간의 관련 부분의 세분화된 평가가 수행될 수 있다.
도 3을 참조하면, 방법(300)의 단계(330)에서, 자원 할당 스케줄이 생성될 수 있다. 자원 할당 스케줄은 선택된 모델링 절차의 실행을 위한 프로세싱 자원을 할당할 수 있다. 일부 실시예에서, 자원 할당 스케줄은 문제가 되는 예측 문제에 대한 모델링 절차의 결정된 적절성에 기초하여 모델링 절차에 프로세싱 자원을 할당한다. 일부 실시예에서, 탐색 엔진(110)은 자원 할당 스케줄에 따라 선택된 모델링 절차를 실행하기 위한 명령으로 하나 이상의 프로세싱 노드에 자원 할당 스케줄을 송신한다.
할당된 프로세싱 자원은 시간 자원(예를 들어, 하나 이상의 프로세싱 노드의 실행 사이클, 하나 이상의 프로세싱 노드의 실행 시간 등), 물리적 자원(예를 들어, 다수의 프로세싱 노드, 상당한 양의 머신-판독 가능 저장소(예를 들어, 메모리 및/또는 2차 저장소) 등), 및/또는 다른 할당 가능한 프로세싱 자원을 포함할 수 있다. 일부 실시예에서, 할당된 프로세싱 자원은 분산 컴퓨팅 시스템 및/또는 클라우드-기반 컴퓨팅 시스템의 자원을 프로세싱하는 것일 수 있다. 일부 실시예에서, 프로세싱 자원이 할당 및/또는 사용될 때 비용이 발생할 수 있다(예를 들어, 데이터 센터의 자원을 사용하는 대가로 데이터 센터의 운영자에 의해 요금이 징수될 수 있음).
전술한 바와 같이, 자원 할당 스케줄은 문제가 되는 예측 문제에 대한 모델링 절차의 적절성에 기초하여 모델링 절차에 프로세싱 자원을 할당할 수 있다. 예를 들어, 자원 할당 스케줄은 예측 문제에 대해 더 높은 예측 적절성을 갖는 모델링 절차에 더 많은 프로세싱 자원을 할당하고, 예측 문제에 대해 더 낮은 예측 적절성을 갖는 모델링 절차에 더 적은 프로세싱 자원을 할당할 수 있어, 보다 유망한 모델링 절차가 제한된 프로세싱 자원 중 더 많은 부분의 이익을 누린다. 다른 예로서, 자원 할당 스케줄은 더 큰 데이터 세트를 프로세싱하기에 충분한 프로세싱 자원을 보다 높은 예측된 적절성을 갖는 모델링 절차에 할당하고, 보다 작은 데이터 세트를 프로세싱하기에 충분한 프로세싱 자원을 보다 낮은 예측된 적절성을 갖는 모델링 절차에 할당할 수 있다.
다른 예로서, 자원 할당 스케줄은 더 낮은 예측된 적절성을 갖는 모델링 절차의 실행 이전에 더 높은 예측된 적절성을 갖는 모델링 절차의 실행을 스케줄링할 수 있으며, 이는 또한 더 많은 프로세싱 자원을 보다 유망한 모델링 절차에 할당하는 효과를 가질 수 있다. 일부 실시예에서, 모델링 절차를 실행한 결과는, 그 결과가 이용 가능해질 때 사용자 인터페이스(120)를 통해 사용자에게 제시될 수 있다. 이러한 실시예에서, 더 낮은 예측된 적절성을 갖는 모델링 절차 이전에 실행될 더 높은 예측된 적절성을 갖는 모델링 절차를 스케줄링하는 것은 평가의 초기 단계에서 검색 공간의 평가에 대한 추가적인 중요한 정보를 사용자에게 제공할 수 있으며, 이에 의해 신속한 사용자-구동 조정을 검색 계획으로 조정하는 것을 용이하게 한다. 예를 들어, 예비 결과에 기초하여, 사용자는 매우 잘 수행될 것으로 예상되었던 하나 이상의 모델링 절차가 실제로 매우 열등하게 수행하는 것으로 결정할 수 있다. 사용자는 열등한 성능의 원인을 조사하고, 예를 들어, 열등한 성능이 데이터 세트의 준비에서의 오류로 인해 발생한 것으로 결정할 수 있다. 그 후, 사용자는 오류를 수정하고, 오류의 영향을 받은 모델링 절차의 실행을 재개할 수 있다.
일부 실시예에서, 자원 할당 스케줄은 모델링 절차의 자원 이용 특성 및/또는 병렬 특성에 적어도 부분적으로 기초하여 프로세싱 자원을 모델링 절차에 할당할 수 있다. 전술한 바와 같이, 모델링 절차에 대응하는 템플릿은, 모델링 절차가 분산 컴퓨팅 인프라스트럭처 상에서 얼마나 효율적으로 실행될 것인지를 추정하는 것과 관련된 메타데이터를 포함할 수 있다. 일부 실시예에서, 이 메타데이터는 모델링 절차의 자원 이용 특성(예를 들어, 주어진 크기의 데이터 세트에 대한 모델링 절차를 트레이닝 및/또는 테스트하는 데 필요한 프로세싱 자원)의 표시를 포함한다. 일부 실시예에서, 이 메타데이터는, 모델링 절차의 병렬 특성(예를 들어, 모델링 절차가 복수의 프로세싱 노드 상에서 병렬로 실행될 수 있는 정도)의 표시를 포함한다. 자원 할당 스케줄을 결정하기 위해 모델링 절차의 자원 이용 특성 및/또는 병렬 특성을 사용하는 것은 프로세싱 자원을 모델링 절차에 효율적으로 할당하는 것을 용이하게 할 수 있다.
일부 실시예에서, 자원 할당 스케줄은 모델링 절차의 실행을 위해 특정된 양의 프로세싱 자원을 할당할 수 있다. 할당 가능한 프로세싱 자원의 양은 사용자에 의해 제공되거나 다른 적절한 소스로부터 얻어질 수 있는 프로세싱 자원 예산에서 특정될 수 있다. 프로세싱 자원 예산은 모델링 절차를 실행하기 위해 사용되는 프로세싱 자원(예를 들어, 사용되는 시간의 양, 사용되는 프로세싱 노드의 수, 데이터 센터 또는 클라우드-기반 프로세싱 자원을 사용하는 데 발생하는 비용 등)에 대한 제한을 부과할 수 있다. 일부 실시예에서, 프로세싱 자원 예산은 특정 예측 문제에 대한 예측 모델을 생성하는 프로세스에 사용되는 총 프로세싱 자원에 제한을 부과할 수 있다.
도 3으로 돌아가서, 방법(300)의 단계(340)에서, 자원 할당 스케줄에 따라 선택된 모델링 절차를 실행한 결과가 수신될 수 있다. 이러한 결과는 실행된 모델링 절차에 의해 생성된 하나 이상의 예측 모델을 포함할 수 있다. 일부 실시예에서, 모델링 절차의 실행이 예측 문제와 연관된 하나 이상의 데이터 세트에 예측 모델을 맞추는 것을 포함할 수 있기 때문에, 단계(340)에서 수신된 예측 모델은 예측 문제와 연관된 데이터 세트(들)에 맞춤화된다. 예측 모델을 예측 문제의 데이터 세트(들)에 맞춤화하는 것은 예측 모델을 생성하는 예측 모델링 절차의 하나 이상의 하이-파라미터를 튜닝하는 것, 생성된 예측 모델의 하나 이상의 파라미터를 튜닝하는 것 및/또는 다른 적절한 모델-맞춤 단계를 포함할 수 있다.
일부 실시예에서, 단계(340)에서 수신된 결과는 예측 문제에 대한 모델의 성능의 평가(예를 들어, 스코어)를 포함한다. 이러한 평가는 예측 문제와 연관된 데이터 세트(들)에 대해 예측 모델을 테스트함으로써 얻을 수 있다. 일부 실시예에서, 예측 모델을 테스트하는 것은 예측 문제와 연관된 트레이닝 데이터 세트의 상이한 폴드(fold)를 사용하여 모델을 상호 유효성 검증하는 것을 포함한다. 일부 실시예에서, 모델링 절차의 실행은 생성된 모델의 테스트를 포함한다. 일부 실시예에서, 생성된 모델의 테스트는 모델링 절차의 실행과는 별개로 수행된다.
모델은 적절한 테스트 기술에 따라 테스트되고 적절한 스코어링 메트릭(예를 들어, 목적 함수)에 따라 스코어링될 수 있다. 상이한 스코어링 메트릭은 모델링 정확도(예를 들어, 모델이 예측 문제의 결과를 올바르게 예측하는 비율), 잘못된 긍정 비율(예를 들어, 모델이 "긍정적인" 결과를 올바르지 않게 예측하는 비율), 잘못된 부정 비율(예를 들어, 모델이 "부정적인" 결과를 올바르지 않게 예측하는 비율), 긍정적인 예측값, 부정적인 예측값, 감도, 특이성 등에 한정되지 않지만 이를 포함하는 예측 모델의 성능의 상이한 양태에 대한 상이한 가중치를 둘 수 있다. 사용자는 사용자 인터페이스(120)를 통해 제시된 옵션의 세트, 또는 사용자 인터페이스(120)를 통해 특정한 커스텀 스코어링 메트릭(예를 들어, 커스텀 목적 함수)으로부터 표준 스코어링 메트릭(예를 들어, 적합도(goodness-of-fit), R-스퀘어 등)을 선택할 수 있다. 탐색 엔진(110)은 사용자-선택 또는 사용자-특정 스코어링 메트릭을 사용하여 예측 모델의 성능을 스코어링할 수 있다.
도 3으로 돌아가서, 방법(300)의 단계(350)에서, 예측 모델은 생성된 예측 모델의 평가(예를 들어, 스코어)에 기초하여 예측 문제에 대해 선택될 수 있다. 공간 검색 엔진(110)은 예측 문제에 대한 예측 모델을 선택하기 위해 임의의 적절한 기준을 사용할 수 있다. 일부 실시예에서, 공간 검색 엔진(110)은 최고 스코어를 갖는 모델, 또는 임계 스코어를 초과하는 스코어를 갖는 임의의 모델, 또는 최고 스코어의 특정 범위 내의 스코어를 갖는 임의의 모델을 선택할 수 있다. 일부 실시예에서, 예측 모델의 스코어는 예측 문제에 대한 예측 모델을 선택할 때 공간 탐색 엔진(110)에 의해 고려되는 단 하나의 요인일 수도 있다. 공간 탐색 엔진에 의해 고려되는 다른 요인은 예측 모델의 복잡성, 예측 모델의 연산 요구 등을 포함할 수 있지만, 이에 한정되는 것은 아니다.
일부 실시예에서, 예측 문제에 대한 예측 모델을 선택하는 것은 예측 모델의 서브세트를 반복적으로 선택하는 것 및 선택된 예측 모델을 데이터 세트의 더 큰 부분 또는 다른 부분에 대해 트레이닝시키는 것을 포함할 수 있다. 이러한 반복 프로세스는, 예측 모델이 예측 문제에 대해 선택될 때까지 또는 예측 모델을 생성하기 위해 예산 책정된 프로세싱 자원이 소진될 때까지 계속될 수 있다.
예측 모델의 서브세트를 선택하는 것은 최고 스코어를 갖는 예측 모델의 부분을 선택하는 것, 임계 스코어를 초과하는 스코어를 갖는 모든 모델을 선택하는 것, 최고-스코어링 모델의 스코어의 특정 범위 내에서 스코어를 갖는 모든 모델을 선택하는 것, 또는 모델의 임의의 다른 적절한 그룹을 선택하는 것을 포함할 수 있다. 일부 실시예에서, 예측 모델의 서브세트를 선택하는 것은 방법(300)의 단계(320)를 참조하여 전술한 바와 같이, 예측 모델링 절차의 서브세트를 선택하는 것과 유사할 수 있다. 따라서, 예측 모델의 서브세트를 선택하는 상세 사항은 여기에서 논하지 않는다.
선택된 예측 모델을 트레이닝하는 것은 선택된 모델의 트레이닝을 위해 프로세싱 노드의 프로세싱 자원을 할당하는 자원 할당 스케줄을 생성하는 것을 포함할 수 있다. 프로세싱 자원의 할당은 적어도 부분적으로, 선택된 모델을 생성하는 데 사용되는 모델링 기술의 적절성 및/또는 데이터 세트의 다른 샘플에 대한 선택된 모델의 스코어에 기초하여 결정될 수 있다. 선택된 예측 모델을 트레이닝하는 것은 선택된 예측 모델을 데이터 세트의 특정 부분에 맞추기 위해 프로세싱 노드에 명령어를 송신하는 것, 및 맞춤화된 모델 및/또는 맞춤화된 모델의 스코어를 포함하는 트레이닝 프로세스의 결과를 수신하는 것을 더 포함할 수 있다. 일부 실시예에서, 선택된 예측 모델을 트레이닝하는 것은 방법(300)의 단계(320-330)를 참조하여 전술한 바와 같이, 선택된 예측 모델링 절차를 실행하는 것과 유사할 수 있다. 따라서, 선택된 예측 모델을 트레이닝하는 상세 사항은 여기에서 논하지 않는다.
일부 실시예에서, 단계(330 및 340)는, 예측 모델이 예측 문제에 대해 선택될 때까지 또는 예측 모델을 생성하기 위해 예산 책정된 프로세싱 자원이 소진될 때까지 반복적으로 수행될 수 있다. 각 반복의 끝에서, 예측 문제에 대한 예측 모델링 절차의 적절성은 모델링 절차를 실행한 결과에 적어도 부분적으로 기초하여 다시 결정될 수 있으며, 예측 모델링 절차의 새로운 세트가 다음 반복 동안 실행을 위해 선택될 수 있다.
일부 실시예에서, 단계(330 및 340)의 반복에서 실행되는 모델링 절차의 수는 반복 횟수가 증가함에 따라 감소하는 경향이 있으며, 생성된 모델을 트레이닝 및/또는 테스트하는 데 사용되는 데이터의 양은 반복 횟수가 증가함에 따라 증가하는 경향이 있다. 따라서, 초기 반복은 상대적으로 작은 데이터 세트에 대해 상대적으로 많은 수의 모델링 절차를 실행하여 "넓은 그물을 던질(cast a wide net)" 수 있으며, 이후 반복은 초기 반복 동안 식별된 가장 유망한 모델링 절차의 보다 엄격한 테스트를 수행할 수 있다. 대안적으로 또는 추가적으로, 초기 반복은 검색 공간의 보다 거친(coarse-grained) 평가를 구현할 수 있으며, 이후 반복은 가장 유망한 것으로 결정된 검색 공간의 부분의 보다 세분화된(fine-grained) 평가를 구현할 수 있다.
일부 실시예에서, 방법(300)은 도 3에 나타내지 않은 하나 이상의 단계를 포함한다. 방법(300)의 추가 단계는 예측 문제와 연관된 데이터 세트를 프로세싱하고, 혼합된 예측 모델을 형성하기 위해 2개 이상의 예측 모델을 혼합하고, 및/또는 예측 문제에 대해 선택된 예측 모델을 튜닝하는 단계를 포함할 수 있다. 이들 단계의 일부 실시예가 아래에서 더욱 상세하게 설명된다.
방법(300)은 예측 문제와 연관된 데이터 세트가 프로세싱되는 단계를 포함할 수 있다. 일부 실시예에서, 예측 문제의 데이터 세트를 프로세싱하는 단계는 데이터 세트를 특성화하는 것을 포함한다. 데이터 세트의 특성화는 데이터 누락을 식별하는 것(예를 들어, 데이터 세트가 타겟과 강하게 상관되는 피처를 포함하지만, 피처의 값이 예측 문제에 의해 부과되는 조건 하에서 예측 문제에 대한 입력으로서 이용 가능하지 않은 시나리오), 누락 관측치를 검출하는 것, 누락 변수값을 검출하는 것, 아웃라잉 변수값을 식별하는 것 및/또는 중요한 예측값("중요 변수")를 가질 가능성이 있는 변수를 식별하는 것에 한정되지 않지만 이를 포함하는 데이터 세트로 잠재적 문제를 식별하는 것을 포함할 수 있다.
일부 실시예에서, 예측 문제의 데이터 세트를 프로세싱하는 것은 데이터 세트에 피처 엔지니어링을 적용하는 것을 포함한다. 데이터 세트에 피처 엔지니어링을 적용하는 것은 2개 이상의 피처를 조합하고 구성 피처를 조합된 피처로 대체하고, 날짜/시간 변수의 다른 양태(예를 들어, 시간 및 계절 정보)를 별도의 변수로 추출하고, 변수 값을 정규화하고, 누락된 변수 값을 채우는 것을 포함할 수 있다.
방법(300)은, 2개 이상의 예측 모델이 혼합되어 혼합된 예측 모델을 형성하는 단계를 포함할 수 있다. 혼합 단계는 예측 모델링 기술을 실행하고 생성된 예측 모델을 평가하는 것과 관련하여 반복적으로 수행될 수 있다. 일부 실시예에서, 혼합 단계는 실행/평가 반복의 일부에서만(예를 들어, 복수의 유망한 예측 모델이 생성된 이후의 반복에서) 수행될 수 있다.
구성 모델의 출력을 조합함으로써 2개 이상의 모델이 혼합될 수 있다. 일부 실시예에서, 혼합된 모델은 구성 모델의 출력의 가중화된 선형 조합을 포함할 수 있다. 혼합된 예측 모델은, 특히 다른 구성 모델이 상보적인 경우에, 구성 예측 모델보다 더욱 양호하게 수행할 수 있다. 예를 들어, 구성 모델이 예측 문제의 데이터 세트의 상이한 부분에 대해 잘 수행되는 경향이 있을 때, 모델의 혼합이 다른(예를 들어, 유사한) 예측 문제에 대해 잘 수행되었을 때, 모델을 생성하는 데 사용되는 모델 기술이 비유사할 때(예를 들어, 하나의 모델은 선형 모델이고 다른 모델은 트리 모델임) 등의 경우에, 혼합된 모델이 잘 수행되는 것으로 예상될 수 있다. 일부 실시예에서, 혼합될 구성 모델들은 (예를 들어, 사용자의 직관과 경험에 기초하여) 사용자에 의해 식별된다.
방법(300)은 예측 문제에 대해 선택된 예측 모델이 튜닝되는 단계를 포함할 수 있다. 일부 경우, 배치 엔진(140)은 사용자에게 예측 모델을 구현하는 소스 코드를 제공하며, 이에 의해 사용자가 예측 모델을 튜닝할 수 있게 한다. 그러나, 예측 모델의 소스 코드를 공개하는 것은 일부 경우(예를 들어, 예측 모델링 기술 또는 예측 모델이 독점 기능 또는 정보를 포함하는 경우)에 바람직하지 않을 수 있다. 사용자가 모델의 소스 코드를 노출시키지 않고 예측 모델을 튜닝하도록 허용하기 위해, 배치 엔진(140)은 예측 모델의 표현(예를 들어, 수학적 표현)에 기초하여 모델의 파라미터를 튜닝하기 위한 인간 판독 가능한 규칙을 구성할 수 있고, 인간 판독 가능한 규칙을 사용자에게 제공할 수 있다. 그 후, 사용자는 모델의 소스 코드에 액세스하지 않고 인간 판독 가능한 규칙을 사용하여 모델의 파라미터를 튜닝할 수 있다. 따라서, 예측 모델링 시스템(100)은 독점 모델링 기술에 대한 소스 코드를 최종 사용자에게 노출시키지 않고 독점 예측 모델링 기술의 평가 및 튜닝을 지원할 수 있다.
일부 실시예에서, 예측 모델링 절차에 대응하는 머신-실행 가능 템플릿은 리던던트 연산을 감소시키기 위한 효율성-향상 피처를 포함할 수 있다. 이러한 효율성-향상 피처는, 검색 공간을 탐색하고 예측 모델을 생성하기 위해 상대적으로 적은 양의 프로세싱 자원이 예산 책정되는 경우 특히 가치 있을 수 있다. 전술한 바와 같이, 머신-실행 가능 템플릿은 대응하는 모델링 요소(예를 들어, 기술, 작업 또는 하위-작업)에 대한 고유 ID를 저장할 수 있다. 또한, 예측 모델링 시스템(100)은 데이터 세트 샘플 S에 고유 ID를 할당할 수 있다. 일부 실시예에서, 머신-실행 가능 템플릿 T가 데이터 세트 샘플 S 상에서 실행될 때, 템플릿은 그 모델링 요소 ID, 데이터 세트/샘플 ID 및 데이터 샘플 상에서 템플릿을 실행한 결과를 다른 템플릿에 액세스할 수 있는 저장 구조체(예를 들어, 테이블, 캐시, 해시 등)에 저장한다. 템플릿 T가 데이터 세트 샘플 S 상에서 호출될 때, 템플릿은 저장 구조체를 확인하여, 해당 데이터 세트 샘플 상에서 해당 템플릿을 실행한 결과가 이미 저장되어 있는지 여부를 결정한다. 저장되어 있다면, 동일한 결과를 얻기 위해 데이터 세트 샘플을 다시 프로세싱하는 것이 아니라, 템플릿은 저장 구조체로부터 대응 결과를 단순히 리트리빙하고 그 결과를 반환한 다음 종료한다. 저장 구조체는 모델링 절차가 실행되는 루프의 개별 반복 내에서, 절차-실행 루프의 복수의 반복에 걸쳐, 또는 복수의 검색 공간 탐색에 걸쳐 지속될 수 있다. 많은 작업과 하위-작업이 상이한 모델링 기술에 의해 공유되기 때문에 이러한 효율성-향상 피처를 통해 달성된 연산 절감이 상당할 수 있으며, 방법(300)은 종종 동일한 데이터 세트에 대해 상이한 모델링 기술을 실행하는 것을 포함한다.
도 4는 일부 실시예에 따라 예측 문제에 대한 예측 모델을 선택하기 위한 방법(400)의 흐름도를 나타낸다. 방법(300)은 방법(400)의 예에 의해 구현될 수 있다.
도 4의 예에서, 공간 검색 엔진(110)은 모델링 방법 라이브러리(212), 모델링 기술 라이브러리(130) 및 모델링 작업 라이브러리(232)를 사용하여 예측 모델링 문제에 대한 해결책을 위해 이용 가능한 모델링 기술의 공간을 탐색한다. 초기에, 사용자는 라이브러리(212)로부터 모델링 방법을 선택할 수 있거나, 공간 검색 엔진(110)이 디폴트 모델링 방법을 자동으로 선택할 수 있다. 이용 가능한 모델링 방법은 연역적 규칙의 적용에 기초한 모델링 기술의 선택, 유사한 예측 문제에 대한 유사한 모델링 기술의 성능에 기초한 모델링 기술의 선택, 메타 머신-학습 모델의 출력에 기초한 모델링 기술의 선택, 전술한 모델링 기술의 임의의 조합, 또는 다른 적절한 모델링 기술을 포함할 수 있지만 이에 한정되지 않는다.
방법(400)의 단계(402)에서, 탐색 엔진(110)은 해결될 예측 모델링 문제에 대한 데이터 세트를 선택할 것을 사용자에게 촉구한다. 사용자는 이전에 로드된 데이터 세트로부터 선택하거나 다른 정보 시스템으로부터 데이터를 리트리빙하기 위한 파일 또는 명령어로부터 새로운 데이터 세트를 생성할 수 있다. 파일의 경우에, 탐색 엔진(110)은 쉼표로 분리된 값, 탭-구분된, 확장 마크업 언어(XML: cXtensible Markup Language), JavaScript Object Notation, 원시 데이터베이스 파일 등에 한정되지 않지만 이를 포함하는 하나 이상의 포맷을 지원할 수 있다. 명령어의 경우에, 사용자는 정보 시스템의 유형, 그 네트워크 주소, 액세스 크리덴셜, 각각의 시스템 내의 데이터의 서브세트에 대한 참조 및 타겟 데이터 스키마를 원하는 데이터 세트 스키마에 매핑하기 위한 규칙을 특정할 수 있다. 이러한 정보 시스템은 데이터베이스, 데이터 웨어하우스, 데이터 통합 서비스, 분산 애플리케이션, 웹 서비스 등을 포함할 수 있지만 이에 한정되지 않는다.
방법(400)의 단계(404)에서, 탐색 엔진(110)은 (예를 들어, 특정된 파일을 판독하거나 특정된 정보 시스템에 액세스함으로써) 데이터를 로딩한다. 내부적으로, 탐색 엔진(110)은 하나의 축 상의 피처 및 다른 축 상의 관측치를 갖는 2차원 매트릭스를 구성할 수 있다. 개념적으로, 매트릭스의 각 열은 변수에 대응할 수 있고, 매트릭스의 각각의 행은 관측치에 대응할 수 있다. 탐색 엔진(110)은 원본 소스로부터 얻어진 메타데이터(예를 들어, 명시적으로 특정된 데이터 유형) 및/또는 로딩 프로세스 중에 생성된 메타데이터(예를 들어, 변수의 명백한 데이터 유형; 변수가 서수, 기수 또는 인터프리팅된 유형으로 보이는지 여부 등)를 포함하는 관련 메타데이터를 변수에 첨부할 수 있다.
방법(400)의 단계(406)에서, 탐색 엔진(110)은 변수들 중 어느 것이 타겟인지 및/또는 어느 것이 피처인지를 식별할 것을 사용자에게 촉구한다. 일부 실시예에서, 탐색 엔진(110)은 또한 사용자에게 모델을 스코어링하는 데 사용되는 모델 성능의 메트릭(예를 들어, 탐색 엔진(110)에 의해 구현되는 통계적 학습 알고리즘에 의해, 통계적 최적화 기술의 관점에서 최적화되는 모델 성능의 메트릭)을 식별할 것을 촉구한다.
방법(400)의 단계(408)에서, 탐색 엔진(110)은 데이터 세트를 평가한다. 이 평가는 데이터 세트의 특성을 계산하는 것을 포함할 수 있다. 일부 실시예에서, 이 평가는 데이터 세트의 분석을 수행하는 것을 포함하며, 이는 사용자가 예측 문제를 더 잘 이해하는 것을 도울 수 있다. 이러한 분석은 문제가 되는 변수(예를 들어, 아웃라이어 또는 인라이어를 갖는 변수)를 식별하기 위해 하나 이상의 알고리즘을 적용하는 것, 변수 중요도를 결정하는 것, 변수 효과를 결정하는 것 및 효과 핫스팟(hotspot)을 식별하는 것을 포함할 수 있다.
데이터 세트의 분석은 임의의 적절한 기술을 사용하여 수행될 수 있다. 각각의 피처가 타겟을 예측하는 데 갖는 중요성의 정도를 측정하는 변수 중요도는 "그래디언트 부스티드 트리(gradient boosted tree)", Breiman 및 Cutler의 "랜덤 포리스트(Random Forest)", "교번 조건 기대" 및/또는 다른 적절한 기술을 사용하여 분석될 수 있다. 피처가 타겟에 미치는 효과의 방향과 크기를 측정하는 변수 효과는 "정규화된 회귀", "로지스틱 회귀" 및/또는 다른 적절한 기술을 사용하여 분석될 수 있다. 피처가 타겟을 예측할 때 가장 많은 정보를 제공하는 범위를 식별하는 효과 핫스팟은 "RuleFit"알고리즘 및/또는 다른 적절한 기술을 사용하여 분석될 수 있다.
일부 실시예에서, 원본 데이터 세트에 포함된 피처의 중요도를 평가하는 것에 추가하여, 방법(400)의 단계(408)에서 수행되는 평가는 피처 생성을 포함한다. 피처 생성 기술은 데이터 세트의 변수의 논리적 유형을 인터프리팅하고 다양한 변환을 변수에 적용하여 추가 피처를 생성하는 것을 포함할 수 있다. 변환의 예는 숫자 피처에 대한 다항식 및 로그 변환을 포함하지만 이에 한정되지 않는다. 인터프리팅된 변수(예를 들어, 날짜, 시간, 통화, 측정 단위, 백분율 및 위치 좌표)의 경우, 변환의 예는 예측 파워에 대한 날짜의 각각의 양태를 테스트하기 위해 날짜 스트링을 연속적인 시간 변수, 요일, 월 및 계절로 파싱하는 것을 포함하지만 이에 한정되지 않는다.
잠재적인 예측 모델링 기술로 그 체계적인 테스트에 선행하는 수치 및/또는 인터프리팅된 변수의 체계적인 변환은 예측 모델링 시스템(100)이 잠재적인 모델 공간을 더 검색하고 더 정밀한 예측을 달성할 수 있게 한다. 예를 들어 "날짜/시간"의 경우, 시간 정보와 계절 정보를 별도의 피처로 분리하는 것은, 이러한 개별 피처가 종종 타겟 변수와 매우 다른 관계를 나타내기 때문에 매우 유용할 수 있다.
원래 피처를 인터프리팅하고 변환함으로써 유도된 피처를 생성하는 것은 원래의 데이터 세트의 차원을 증가시킬 수 있다. 예측 모델링 시스템(100)은 데이터 세트의 차원의 증가를 상쇄시킬 수 있는 차원 감소 기술을 적용할 수 있다. 그러나, 일부 모델링 기술은 다른 모델링 기술보다 차원에 더 민감하다. 또한, 다른 차원 감소 기술은 다른 기술보다 일부 모델링 기술로 더 잘 작동하는 경향이 있다. 일부 실시예에서, 예측 모델링 시스템(100)은 이들 상호 작용을 설명하는 메타데이터를 유지한다. 시스템(100)은 메타데이터가 나타내는 성공 가능성이 가장 높은 조합을 우선화하는 차원 감소 기술과 모델링 기술의 다양한 조합을 체계적으로 평가할 수 있다. 시스템(100)은 시간 경과에 따른 조합의 경험적 성능에 기초하여 이 메타데이터를 추가로 갱신할 수 있고 새로운 차원 감소 기술이 발견될 때 이를 통합할 수 있다.
방법(400)의 단계(410)에서, 예측 모델링 시스템(100)은 사용자에게 데이터 세트 평가의 결과(예를 들어, 데이터 세트 분석의 결과, 데이터 세트의 특성 및/또는 데이터 세트 변환의 결과)를 제시한다. 일부 실시예에서, 데이터 세트 평가의 결과는 (예를 들어, 그래프 및/또는 테이블을 사용하여) 사용자 인터페이스(120)를 통해 제시된다.
방법(400)의 단계(412)에서, 사용자는 (예를 들어, 데이터 세트 평가의 결과에 기초하여) 데이터 세트를 정제할 수 있다. 이러한 정제는 하나 이상의 피처에 대한 누락값 또는 아웃라이어를 처리하고, 인터프리팅된 변수의 유형을 변경하고, 고려 중인 변환을 변경하고, 고려에서 피처를 제거하고, 특정 값을 직접 편집하고, 함수를 사용하여 피처를 변환하고, 공식을 사용하여 피처의 값을 조합하고, 완전히 새로운 피처를 데이터 세트에 추가하는 등을 위한 선택 방법을 포함할 수 있다.
방법(400)의 단계(402-412)는 방법(300)의 일부 실시예와 관련하여 전술한 바와 같이, 예측 문제의 데이터 세트를 프로세싱하는 단계의 일 실시예를 나타낼 수 있다.
방법(400)의 단계(414)에서, 검색 공간 엔진(100)은 모델링 기술 라이브러리(130)로부터 이용 가능한 모델링 기술을 로드할 수 있다. 어떤 모델링 기술이 이용 가능한지의 결정은 선택된 모델링 방법에 따를 수 있다. 일부 실시예에서, 모델링 기술의 로드는 방법(400)의 하나 이상의 단계(402-412)와 병렬로 발생할 수 있다.
방법(400)의 단계(416)에서, 사용자는 수동 모드 또는 자동 모드에서 모델링 해결책에 대한 검색을 시작하도록 탐색 엔진(110)에 명령한다. 자동 모드에서, 탐색 엔진(110)은 디폴트 샘플링 알고리즘을 사용하여 데이터 세트를 분할하고(단계(418)), 디폴트 우선 순위 알고리즘을 사용하여 모델링 기술에 우선 순위화한다(단계(420)). 모델링 기술의 우선 순위화는 예측 문제에 대한 모델링 기술의 적절성을 결정하고, 그 결정된 적절성에 기초하여 실행을 위한 모델링 기술의 적어도 서브세트를 선택하는 것을 포함할 수 있다.
수동 모드에서, 탐색 엔진(110)은 데이터 분할을 제시하고(단계(422)), 모델링 기술의 우선 순위를 제시한다(단계(424)). 사용자는 제시된 데이터 분할을 수용하거나 커스텀 분할을 특정할 수 있다(단계(426)). 마찬가지로, 사용자는 모델링 기술의 제시된 우선 순위를 수용하거나 모델링 기술의 커스텀 우선 순위를 특정할 수 있다(단계(428)). 일부 실시예에서, 사용자는, 탐색 엔진(110)이 모델링 기술의 실행을 시작하기 전에 (예를 들어, 모델링 기술 빌더(220) 및/또는 모델링 작업 빌더(230)를 사용하여) 하나 이상의 모델링 기술을 수정할 수 있다(단계(430)).
상호 유효성 검증을 용이하게 하기 위해, 예측 모델링 시스템(100)은 데이터 세트를 K "폴드"로 분할(또는 데이터 세트의 분할을 제안)할 수 있다. 상호 유효성 검증은 각각의 맞춤화 중에 상이한 폴드가 테스트 세트로의 역할을 하고 나머지 폴드가 트레이닝 세트로서의 역할을 하도록 분할된 데이터 세트에 예측 모델을 K회 맞춤화하는 것을 포함한다. 상호 유효성 검증은, 예측 모델의 정확도가 상이한 트레이닝 데이터에 따라 어떻게 변하는지에 대한 유용한 정보를 생성할 수 있다. 단계(418 및 422)에서, 예측 모델링 시스템은 데이터 세트를 K개의 폴드로 분할할 수 있으며, 여기서 폴드의 수 K는 디폴트 파라미터이다. 단계(426)에서, 사용자는 폴드의 수 K를 변경하거나 상호 유효성 검증의 사용을 모두 취소할 수 있다.
예측 모델의 엄격한 테스트를 용이하게 하기 위해, 예측 모델링 시스템(100)은 트레이닝 세트 및 "홀드아웃(holdout)" 테스트 세트로 데이터 세트를 분할(또는 데이터 세트의 분할을 제시)할 수 있다. 일부 실시예에서, 트레이닝 세트는 상호 유효성 검증을 위해 K 폴드로 추가로 분할된다. 트레이닝 세트는 예측 모델을 트레이닝하고 평가하는 데 사용될 수 있지만, 홀드아웃 테스트 세트는 예측 모델을 테스트하기 위해 엄격하게 보존될 수 있다. 일부 실시예에서, 예측 모델링 시스템(100)은 지정된 권한 및/또는 크리덴셜(credential)을 가진 사용자가 이를 해제할 때까지 홀드아웃 테스트를 액세스 불가능하게 설정함으로써 테스트용(트레이닝용이 아님) 홀드아웃 테스트 세트의 사용을 강하게 실시할 수 있다. 단계(418 및 422)에서, 예측 모델링 시스템(100)은, 데이터 세트의 디폴트 퍼센티지가 홀드아웃 세트에 예약되도록 데이터 세트를 분할할 수 있다. 단계(426)에서, 사용자는 홀드아웃 세트에 예약된 데이터 세트의 퍼센티지를 변경하거나, 홀드아웃 세트의 사용을 모두 취소할 수 있다.
일부 실시예에서, 예측 모델링 시스템(100)은 모델링 검색 공간의 평가 동안 컴퓨팅 자원의 효율적인 사용을 용이하게 하기 위해 데이터 세트를 분할한다. 예를 들어, 예측 모델링 시스템(100)은 데이터 세트의 상호 유효성 검증 폴드를 더 작은 샘플로 분할할 수 있다. 예측 모델이 맞춤화되는 데이터 샘플의 크기를 감소시키는 것은 상이한 다른 모델링 기술의 상대적 성능을 평가하는 데 필요한 컴퓨팅 자원의 양을 감소시킬 수 있다. 일부 실시예에서, 더 작은 샘플은 폴드의 데이터의 랜덤 샘플을 취함으로써 생성될 수 있다. 마찬가지로, 예측 모델이 맞춤화되는 데이터 샘플의 크기를 감소시키는 것은 예측 모델의 파라미터 또는 모델링 기술의 하이퍼-파라미터를 튜닝하는 데 필요한 컴퓨팅 자원의 양을 감소시킬 수 있다. 하이퍼-파라미터는 모델 맞춤 프로세스의 속도, 효율성 및/또는 정확도에 영향을 줄 수 있는 모델링 기술의 변수 설정을 포함한다. 하이퍼-파라미터의 예는 탄성-네트 모델의 페널티 파라미터, 그래디언트 부스티드 트리 모델의 트리의 수, 최근접 이웃 모델의 이웃의 수를 포함하지만 이에 한정되지 않는다.
방법(400)의 단계(432-458)에서, 선택된 모델링 기술은 검색 공간을 평가하기 위해 분할된 데이터를 사용하여 실행될 수 있다. 이 단계는 아래에서 더욱 상세히 설명된다. 편의상, 데이터 파티셔닝과 관련된 검색 공간의 평가의 일부 양태가 다음 단락에서 설명된다.
상호 유효성 검증 폴드의 테스트 세트를 포함하는 샘플 데이터를 사용하여 하이퍼-파라미터를 튜닝하는 것은 모델 초과-맞춤으로 이어질 수 있고, 이에 의해 상이한 모델의 성능의 비교를 신뢰할 수 없게 만든다. "특정 접근법"을 사용하는 것이 이 문제를 피하는 것을 도울 수 있으며, 몇몇 다른 중요한 이점을 제공할 수 있다. 따라서, 탐색 엔진(110)의 몇몇 실시예는 "네스팅된(nested) 상호 유효성 검증" 기술을 구현하며, 이에 의해 k-폴드 크로스 검증의 2개의 루프가 적용된다. 외부 루프는 주어진 모델을 다른 모델과 비교하고 장래의 샘플 상에서 각 모델의 예측을 교정하는 것 모두를 위한 테스트 세트를 제공한다. 내부 루프는 주어진 모델의 하이퍼-파라미터를 튜닝하기 위한 테스트 세트 및 도출된 피처에 대한 트레이닝 세트 모두를 제공한다.
또한, 내부 루프에서 생성된 상호 유효성 검증 예측은 복수의 상이한 모델을 조합하는 혼합 기술을 용이하게 할 수 있다. 일부 실시예에서, 혼합기로의 입력은 샘플 외부의 모델로부터의 예측이다. 샘플 내 모델로부터의 예측을 사용하는 것은 일부 혼합 알고리즘과 함께 사용되면 초과-맞춤으로 귀결될 수 있다. 네스팅된 상호 유효성 검증을 일관되게 적용하기 위한 잘 정의된 프로세스 없이는, 가장 경험이 많은 사용자조차도 단계를 생략하거나 올바르지 않게 구현할 수 있다. 따라서, k-폴드 크로스 검증의 이중 루프의 적용은 예측 모델링 시스템(100)이 이하의 5개의 중요한 목적을 동시에 달성할 수 있게 한다: (1) 다수의 하이퍼-파라미터를 갖는 복잡한 모델을 튜닝 (2) 정보가 있는 도출된 피처를 개발, (3) 2 이상의 모델의 혼합을 튜닝, (4) 단일 및/또는 혼합 모델의 예측을 교정, 및 (5) 상이한 모델을 정확하게 비교할 수 있는 순수한 접촉되지 않은 테스트 세트를 유지.
방법(400)의 단계(432)에서, 탐색 엔진(110)은 선택된 모델링 기술의 초기 세트의 실행을 위한 자원 할당 스케줄을 생성한다. 자원 할당 스케줄에 의해 나타내어지는 자원의 할당은 모델링 기술의 우선 순위, 분할된 데이터 샘플 및 이용 가능한 연산 자원에 기초하여 결정될 수 있다. 일부 실시예에서, 탐색 엔진(110)은 선택된 모델링 기술에 그리디어하게(greedily) 자원을 할당한다(예를 들어, 연산 자원을 아직 실행하지 않은 최고-우선 순위 모델링 기술에 차례로 할당함).
방법(400)의 단계(434)에서, 탐색 엔진(110)은 자원 할당 스케줄에 따라 모델링 기술의 실행을 개시한다. 일부 실시예에서, 모델링 기술의 세트의 실행은 데이터 세트로부터 추출된 동일한 데이터 샘플에 대해 하나 이상의 모델을 트레이닝하는 것을 포함할 수 있다.
방법(400)의 단계(436)에서, 탐색 엔진(110)은 모델링 기술의 실행 상태를 모니터링한다. 모델링 기술이 실행을 끝내면, 탐색 엔진(110)은 대응 데이터 샘플에 대한 맞춤화된 모델 및/또는 모델 맞춤의 메트릭을 포함할 수 있는 결과를 수집한다(단계(438)). 이러한 메트릭은 지니(Gini) 계수, r-스퀘어드, 잔류 평균 제곱 에러(residual mean squared error), 그 임의의 변형 등에 한정되지 않지만 이를 포함하는 맞춤화를 수행하는 기본 소프트웨어 컴포넌트로부터 추출될 수 있는 임의의 메트릭을 포함할 수 있다.
방법(400)의 단계(440)에서, 탐색 엔진(110)은 (예를 들어, 모델 맞춤 메트릭에 따라 생성한 모델의 성능에 기초한) 고려 사항으로부터 최악의-수행 모델링 기술을 제거한다. 탐색 엔진(110)은 모델 맞춤 메트릭의 최소 임계값을 만족하는 모델을 생성하지 않는 것을 제거하거나, 생성되는 모든 모델의 톱 부분에서 현재 모델을 생성한 것을 제외한 모든 모델링 기술을 제거하거나 톱 모델의 특정 범위 내에 있는 모델을 생성하지 않은 임의의 모델링 기술을 제거하는 것에 한정되지 않지만 이를 포함하여, 적절한 기술을 사용하여 어떠한 모델링 기술을 제거할 것인지를 결정할 수 있다. 일부 실시예에서, 상이한 절차가 평가의 상이한 단계에서 모델링 기술을 제거하기 위해 사용될 수 있다. 일부 실시예에서, 사용자는 상이한 모델링 문제에 대해 상이한 제거 기술을 특정하도록 허용될 수 있다. 일부 실시예에서, 사용자는 커스텀 제거 기술을 구축하고 사용하도록 허용될 수 있다. 일부 실시예에서, 메타-통계-학습 기술이 제거-기술 중에서 선택하고 및/또는 이들 기술의 파라미터를 조정하는 데 사용될 수 있다.
탐색 엔진(110)이 모델 성능을 계산하고 고려 사항으로부터 모델링 기술을 제거함에 따라, 예측 모델링 시스템(100)은 사용자 인터페이스(120)를 통해 사용자에게 검색 공간 평가의 진행을 제시할 수 있다(단계(442)). 일부 실시예에서, 단계(444)에서, 탐색 엔진(110)은 사용자로 하여금 검색 공간 평가의 진행, 사용자의 전문 지식 및/또는 다른 적절한 정보에 기초하여 검색 공간을 평가하는 프로세스를 수정할 수 있게 한다. 사용자가 검색 공간 평가 프로세스에 대한 수정을 특정하면, 공간 평가 엔진(110)은 그에 따라 프로세싱 자원을 재할당한다(예를 들어, 어떠한 작업(job)이 영향을 받는지를 결정하고, 이를 스케줄링 큐(queue) 내에서 이동시키거나 큐로부터 삭제함). 다른 작업은 이전과 같이 프로세싱을 계속한다.
사용자는 많은 다른 방식으로 검색 공간 평가 프로세스를 수정할 수 있다. 예를 들어, 사용자는, 선택된 메트릭에 대해 생성한 모델의 성능이 양호했던 경우에도, 일부 모델링 기술의 우선 순위를 줄이거나 일부 모델링 기술을 고려 사항으로부터 제거할 수 있다. 다른 예로서, 사용자는, 생성한 모델링의 성능이 열등했던 경우에도, 일부 모델링 기술의 우선 순위를 높이거나 일부 모델링 기술을 고려 사흥으로 선택할 수 있다. 다른 예로서, 다른 예로서, 사용자는 특정 모델의 평가 또는 특정된 모델링 기술의 실행을 추가 데이터 샘플에 대해 우선 순위화할 수 있다. 다른 예로서, 사용자는 하나 이상의 모델링 기술을 수정하고 수정된 기술을 고려 사항으로 선택할 수 있다. 다른 예로서, 사용자는 (예를 들어, 피처를 추가하거나, 피처를 제거하거나, 상이한 피처를 선택함으로써) 모델링 기술을 트레이닝하거나 모델을 맞춤화하는 데 사용되는 피처를 변경할 수 있다. 이러한 변경은, 결과가 피처의 크기가 정규화를 필요로 하거나 피처의 일부가 "데이터 누락"을 나타내는 경우, 유용할 수 있다.
일부 실시예에서, 단계(432-444)는 반복적으로 수행될 수 있다. (예를 들어, 단계(440)에서의 시스템 또는 단계(444)에서의 사용자에 의해) 제거되지 않은 모델링 기술은 또 다른 반복에서 생존한다. 이전 반복(또는 반복들)에서 생성된 모델의 성능에 기초하여, 탐색 엔진(110)은 대응하는 모델링 기술의 우선 순위를 조정하고 이에 따라 프로세싱 자원을 모델링 기술에 할당한다. 연산 자원이 이용 가능해지면, 엔진은 이용 가능한 자원을 사용하여 갱신된 우선 순위에 기초하여 모델-기술-실행 작업을 론칭한다.
일부 실시예에서, 단계(432)에서, 탐색 엔진(110)은 (예를 들어, 혼합기에 포함시키기 위한 단계적 모델 선택을 사용하여) 상이한 수학적 조합을 사용하여 복수의 모델을 "혼합(blend)"하여 새로운 모델을 생성할 수 있다. 일부 실시예에서, 예측 모델링 시스템(100)은, 사용자가 그 자신의 자동 혼합 기술을 플러그인할 수 있게 하는 모듈형 프레임워크를 제공한다. 일부 실시예에서, 예측 모델링 시스템(100)은, 사용자가 상이한 모델 혼합을 수동으로 특정할 수 있게 한다.
일부 실시예에서, 예측 모델링 시스템(100)은 혼합된 예측 모델을 개발할 때 하나 이상의 이점을 제공할 수 있다. 첫째, 매우 다양한 후보 모델이 혼합하는 데 이용 가능한 경우 혼합은 더 효과적일 수 있다. 또한, 후보 모델 간의 차이가 알고리즘의 단순히 사소한 변화가 아니라 선형 모델, 트리-기반 모델, 지원 벡터 머신 및 최근접 이웃 분류 중에서와 같이 접근에 있어 주요한 차이에 대응할 때, 혼합은 더 효과적일 수 있다. 예측 모델링 시스템(100)은 광범위하게 다양한 모델을 자동으로 생성하고 후보 모델이 어떻게 다른지를 기술하는 메타데이터를 유지함으로써 실질적인 선두 시작을 전달할 수 있다. 예측 모델링 시스템(100)은 또한 예를 들어, 후보 모델들에 걸쳐 변수의 스케일을 자동으로 정규화함으로써 임의의 모델이 혼합된 모델에 통합될 수 있게 하는 프레임워크를 제공할 수 있다. 이 프레임워크는, 사용자가 자동으로 생성된 모델에 사용자 자신이 맞춤화한 또는 독립적으로 생성된 모델을 용이하게 추가할 수 있게 하여 다양성을 더욱 높일 수 있다.
혼합에 이용 가능한 후보 모델의 다양성을 증가시키는 것에 추가하여, 예측 모델링 시스템(100)은 우수한 혼합을 초래할 수 있는 다수의 사용자 인터페이스 피처 및 분석 피처를 또한 제공한다. 우선, 사용자 인터페이스(120)는 후보 모델 맞춤 및 이중 리프트 차트(dual lift chart)와 같은 그래픽의 몇몇 다른 대안적인 측정을 포함하는 상호 작용 모델 비교를 제공할 수 있어, 사용자가 혼합을 위한 정확하고 상보적인 모델을 용이하게 식별할 수 있다. 둘째, 모델링 시스템(100)은 사용자에게 특정 후보 모델 및 혼합 기술을 선택하거나 후보 모델의 일부 또는 전부를 사용하여 모델링 기술 라이브러리에서 일부 또는 모든 혼합 기술을 자동으로 맞춤화하는 옵션을 제공한다. 네스팅된 상호 유효성 검증 프레임워크는 그 후 혼합기 자체를 튜닝하거나 그 컴포넌트 모델의 하이퍼-파라미터를 튜닝할 때 각 혼합 모델을 등급화하는 데 사용되는 데이터가 사용되지 않는 조건을 실시한다. 이 규율은 사용자에게 대안적인 혼합기 성능의 보다 정확한 비교를 제공할 수 있다. 일부 실시예에서, 모델링 시스템(100)은, 혼합 모델에 대한 연산 시간이 그 가장 느린 컴포넌트 모델의 연산 시간에 접근하도록, 혼합 모델의 프로세싱을 병렬로 구현한다.
도 4로 복귀하여, 방법(400)의 단계(446)에서, 사용자 인터페이스(120)는 최종 결과를 사용자에게 제시한다. 이 표현에 기초하여, 사용자는 (예를 들어, 단계(412)로 복귀함으로써) 데이터 세트를 정제하고, (예를 들어, 단계(444)로 복귀함으로써) 실행 모델링 기술에 대한 자원의 할당을 조정하고, (예를 들어, 단계(430)로 복귀함으로써) 정확도를 향상시키기 위해 하나 이상의 모델링 기술을 수정하고, (예를 들어, 단계(402)로 복귀함으로써) 데이터 세트를 변경하는 것 등을 수행할 수 있다.
방법(400)의 단계(448)에서, 검색 공간 평가 또는 그의 일부를 재개하는 것이 아니라, 사용자는 하나 이상의 톱 예측 모델 후보를 선택할 수 있다. 단계(450)에서, 예측 모델링 시스템(100)은 선택된 예측 모델 후보(들)에 대한 홀드아웃 테스트의 결과를 제시할 수 있다. 홀드아웃 테스트 결과는, 이들 후보들의 비교 방법에 대한 최종 척도(final gauge)를 제공할 수 있다. 일부 실시예에서, 적절한 특권을 가진 사용자만이 홀드아웃 테스트 결과를 해제할 수 있다. 후보 예측 모델이 선택될 때까지 홀드아웃 테스트 결과의 해제를 방지하는 것은 성능의 편향되지 않은 평가를 용이하게 할 수 있다. 그러나, 탐색 엔진(110)은, 후보 예측 모델이 선택된 후까지 결과가 숨겨진 채로 있는 한, 모델링 작업 실행 프로세스(예를 들어, 단계(432-444)) 동안 홀드아웃 테스트 결과를 실제로 계산할 수 있다.
사용자 인터페이스
도 1로 복귀하면, 사용자 인터페이스(120)는 예측 모델링 공간의 검색을 모니터링 및/또는 가이드하기 위한 도구를 제공할 수 있다. 이러한 도구는 (예를 들어, 데이터 세트의 문제가 있는 변수를 강조 표시하고 데이터 세트의 변수들 간 관계를 식별하는 등에 의해) 예측 문제의 데이터 세트에 대한 통찰력 및/또는 검색 결과에 대한 통찰력을 제공할 수 있다. 일부 실시예에서, 데이터 분석자는 예를 들어 모델링 해결책을 평가하고 비교하는 데 사용되는 메트릭을 특정하고, 적절한 모델링 해결책을 인식하기 위한 기준을 특정하는 것 등에 의해, 검색을 가이드하기 위해 인터페이스를 사용할 수 있다. 따라서, 사용자 인터페이스는 그 자신의 생산성을 향상시키고 및/또는 탐색 엔진(110)의 성능을 향상시키기 위해 분석자에 의해 사용될 수 있다. 일부 실시예에서, 사용자 인터페이스(120)는 검색의 결과를 실시간으로 제시하고, (예를 들어, 상이한 모델링 해결책의 평가 중 검색의 범위 또는 자원의 할당을 조정하기 위해) 사용자가 실시간으로 검색을 가이드할 수 있게 한다. 일부 실시예에서, 사용자 인터페이스(120)는 동일한 예측 문제 및/또는 관련된 예측 문제에 대해 효과적인 다수의 데이터 분석자의 노력을 조정하기 위한 도구를 제공한다.
일부 실시예에서, 사용자 인터페이스(120)는 모델링 기술의 라이브러리(130)에 대한 머신-실행 가능 템플릿을 개발하기 위한 도구를 제공한다. 시스템 사용자는 이러한 도구를 사용하여 기존 템플릿을 수정하거나, 새로운 템플릿을 생성하거나, 라이브러리(130)로부터 템플릿을 제거할 수 있다. 이러한 방식으로, 시스템 사용자는 라이브러리(130)를 갱신하여 예측 모델링 연구의 진보를 반영하고 및/또는 독점적 예측 모델링 기술을 포함할 수 있게 한다.
사용자 인터페이스(120)는, 사용자가 조직 내의 복수의 모델링 프로젝트를 관리하고, 모델링 방법론 계층 구조의 요소를 생성 및 수정하고, 정확한 예측 모델에 대한 포괄적인 검색을 수행하고, 데이터 세트 및 모델 결과에 대한 통찰력을 얻고, 및/또는 새로운 데이터에 대한 예측을 수행하기 위해 완성된 모델을 배치할 수 있게 하는 다양한 인터페이스 컴포넌트를 포함할 수 있다.
일부 실시예에서, 사용자 인터페이스(120)는 관리자, 기술 개발자, 모델 빌더 및 관측자의 4개 유형의 사용자를 구분한다. 관리자는 프로젝트에 대한 사람 및 컴퓨팅 자원의 할당을 제어할 수 있다. 기술 개발자는 모델링 기술과 컴포넌트 작업을 생성 및 수정할 수 있다. 모델 빌더는, 기술 및 작업에 대한 약간의 조정을 할 수 있지만, 양호한 모델을 검색하는 데 중점을 둔다. 관측자는 프로젝트 진행 및 모델링 결과의 특정 양태를 볼 수 있지만, 데이터에 대한 임의의 변경을 수행하거나 임의의 모델-구축을 시작하는 것으로부터 금지될 수 있다. 개인은 특정 프로젝트 또는 복수 프로젝트에서 하나 초과의 역할을 수행할 수 있다.
관리자로서 역할하는 사용자는 프로젝트 파라미터를 설정하고, 사용자에 대한 프로젝트 책임을 할당하고, 컴퓨팅 자원을 프로젝트에 할당하기 위해 사용자 인터페이스(120)의 프로젝트 관리 컴포넌트에 액세스할 수 있다. 일부 실시예에서, 관리자는 프로젝트 관리 컴포넌트를 사용하여 복수의 프로젝트를 그룹 또는 계층 구조로 조직할 수 있다. 그룹 내의 모든 프로젝트는 그룹의 설정을 상속받을 수 있다. 계층 구조에서, 프로젝트의 모든 자녀는 프로젝트의 설정을 상속받을 수 있다. 일부 실시예에서, 충분한 권한을 가진 사용자는 상속된 설정을 무시할 수 있다. 일부 실시예에서, 충분한 권한을 가진 사용자는 설정을 상이한 섹션으로 추가로 분할하여, 대응하는 권한을 가진 사용자만이 이를 변경할 수 있다. 일부 경우에, 관리자는 프로젝트의 조직과 직교로 특정 자원에 대한 액세스를 허용할 수 있다. 예를 들어, 명시적으로 금지되지 않는 한, 특정 기술과 작업이 모든 프로젝트에서 이용 가능하게 될 수 있다. 명시적으로 허용되지 않는 한, 다른 것은 금지될 수 있다. 또한, 일부 자원은 사용자 단위로 할당될 수 있으므로, 그 권리를 소유한 사용자가 특정 프로젝트에 할당된 경우에만 프로젝트가 자원에 액세스할 수 있다.
사용자 관리에서, 관리자는 시스템에 허가된 모든 사용자의 그룹, 허가된 역할 및 시스템-레벨 권한을 제어할 수 있다. 일부 실시예에서, 관리자는 대응 그룹에 사용자를 추가하고 액세스 크리덴셜의 일부 형식을 이들에 발행하여 사용자를 시스템에 추가할 수 있다. 일부 실시예에서, 사용자 인터페이스(120)는 사용자 이름과 패스워드, 통합 인증 프레임워크(예를 들어, OAuth), 하드웨어 토큰(예를 들어, 스마트 카드) 등에 한정되지 않지만 이를 포함하는 상이한 종류의 크리덴셜을 지원할 수 있다.
일단 허가되면, 관리자는, 특정 사용자가 임의의 프로젝트에 대해 가정하는 디폴트 역할을 갖는 것을 특정할 수 있다. 예를 들어, 특정 프로젝트에 대해 관리자에 의해 다른 역할에 대해 특별히 인증되지 않는 한, 특정 사용자는 관측자로 지정될 수 있다. 다른 사용자는, 관리자에 의해 특별히 제외하지 않는 한 모든 프로젝트에 대한 기술 개발자로서 제공될 수 있으며, 다른 사용자는 프로젝트의 특정 그룹만 또는 프로젝트 계층 구조의 브랜치에 대한 기술 개발자로서 제공될 수 있다. 디폴트 역할에 추가하여, 관리자는 사용자에게 시스템 레벨에서 보다 구체적인 권한을 추가로 할당할 수 있다. 예를 들어, 관리자는 특정 유형의 컴퓨팅 자원에 대한 액세스를 허가할 수 있으며, 일부 기술 개발자 및 모델 빌더는 빌더 내의 특정 피처에 액세스할 수 있고; 일부 모델 빌더는 새로운 프로젝트를 시작하거나, 주어진 레벨보다 많은 연산 자원을 소비하거나, 자신이 소유하지 않은 프로젝트에 새로운 사용자를 초대하도록 인증될 수 있다.
일부 실시예에서, 관리자는 프로젝트 레벨에서 액세스, 허가 및 책임을 할당할 수 있다. 액세스는 특정 프로젝트 내의 임의의 정보에 액세스하는 능력을 포함할 수 있다. 권한은 프로젝트에 대한 특정 동작을 수행하는 능력을 포함할 수 있다. 액세스 및 권한은 시스템-수준 권한을 무시하거나 보다 세부적인 제어를 제공할 수 있다. 전자의 예로서, 통상적으로 전체 빌더 권한을 가진 사용자는 특정 프로젝트에 대한 부분 빌더 권한으로 제한될 수 있다. 후자의 예로서, 특정 사용자는 새로운 데이터를 기존 프로젝트로 로드하는 것에서 제한될 수 있다. 책임은, 사용자가 프로젝트를 위해 완료하도록 예상되는 액션 항목을 포함할 수 있다.
개발자로서 역할하는 사용자는 인터페이스의 빌더 영역에 액세스하여 모델링 방법, 기술 및 작업을 생성 및 수정할 수 있다. 전술한 바와 같이, 각 빌더는 대응 논리적 동작을 수행하는 상이한 유형의 사용자 인터페이스를 가진 하나 이상의 도구를 제시할 수 있다. 일부 실시예에서, 사용자 인터페이스(120)는, 개발자가 기술에 첨부된 메타데이터를 편집하기 위해 "속성" 시트를 사용할 수 있게 할 수 있다. 기술은 또한 특정 작업에 대한 변수에 대응하는 튜닝 파라미터를 가질 수 있다. 개발자는 이러한 튜닝 파라미터를 기술-레벨 속성 시트에 게시하여, 디폴트 값과 모델 빌더가 이러한 디폴트를 무시할 수 있는지 여부를 특정할 수 있다.
일부 실시예에서, 사용자 인터페이스(120)는 조건부 로직에 대한 임의의 빌트인 동작과 함께 작업의 계층적 지향 그래프를 특정하고, 출력을 필터링하고, 출력을 변환하고, 출력을 분할하고, 입력을 조합하고, 서브-그래프에 대해 반복하는 것 등을 위해 그래픽 흐름도 도구를 제공할 수 있다. 일부 실시예에서, 사용자 인터페이스(120)는 각 작업에 대해 설정될 수 있는 속성을 포함하여, 리프-레벨 작업을 구현하기 위한 기존 소프트웨어 주위에 래퍼(wrapper)를 생성하기 위한 설비를 제공할 수 있다.
일부 실시예에서, 사용자 인터페이스(120)는 리프-레벨 작업을 구현하기 위한 상호 작용 개발 환경(IDE)에 대한 빌트인 액세스를 고급 개발자에게 제공할 수 있다. 개발자는 대안적으로 외부 환경의 컴포넌트를 코딩하고 리프-레벨 작업으로서 코드를 래핑할 수 있지만, 이러한 환경에 직접 액세스할 수 있으면 더 편리할 수 있다. 이러한 실시예에서, IDE 자체는 인터페이스에 래핑되어 논리적으로 작업 빌더에 통합될 수 있다. 사용자 관점에서 볼 때, IDE는 동일한 인터페이스 프레임워크 내에서 작업 빌더와 동일한 연산 인프라스트럭처 상에서 실행될 수 있다. 이러한 기능은 고급 개발자가 개발 및 수정 기술을 보다 신속하게 반복하게 할 수 한다. 일부 실시예는 동일한 리프-레벨 작업을 동시에 프로그래밍하는 복수의 개발자 간의 조정을 용이하게 하는 코드 협업 피처를 추가로 제공할 수 있다.
모델 빌더는 개발자에 의해 생성된 기술을 활용하여 자신의 특정 데이터 세트에 대한 예측 모델을 구축할 수 있다. 상이한 모델 빌더는 상이한 레벨의 경험을 가질 수 있으므로, 사용자 인터페이스와는 상이한 지원을 필요로 할 수 있다. 비교적 새로운 사용자의 경우, 사용자 인터페이스(120)는 가능한 한 자동 프로세스를 제시할 수 있지만, 여전히 사용자에게 옵션을 탐색할 능력을 제공할 수 있고, 이에 의해 예측 모델링에 대해 더 많이 학습할 수 있다. 중간 사용자의 경우, 사용자 인터페이스(120)는 특정 문제가 얼마나 쉽게 해결될지를 신속하게 평가하고, 기존의 예측 모델이, 예측 모델링 시스템(100)이 자동으로 생성할 수 있는 것에 대해 어떻게 적층하는지 비교하고, 궁극적으로 실질적인 수동 튜닝으로부터 이익을 얻을 복잡한 프로젝트에 대한 가속화된 개시를 얻는 것을 용이하게 하기 위해 정보를 제시할 수 있다. 고급 사용자의 경우, 사용자 인터페이스(120)는 기존의 예측 모델에 대한 정확도의 약간의 여분의 소수점 이하의 자리수의 추출, 작업한 문제에 대한 새로운 기술의 적용 가능성의 신속한 평가, 및 그 조직이 직면할 수 있는 문제의 전체 클래스에 대한 기술의 개발을 용이하게 할 수 있다. 고급 사용자에 대한 지식을 포착함으로써, 일부 실시예는 조직의 나머지에 전반적으로 그 지식의 전파를 용이하게 한다.
이러한 사용자 요구의 폭을 지원하기 위해, 사용자 인터페이스(120)의 일부 실시예는 모델 구축 프로세스를 반영하는 인터페이스 도구의 시퀀스를 제공한다. 또한, 각 도구는 기본에서 고급까지 다양한 피처를 제공할 수 있다. 모델 구축 프로세스의 제1 단계는 데이터 세트를 로드 및 준비하는 것을 포함할 수 있다. 전술한 바와 같이, 사용자는 파일을 업로드하거나 온라인 시스템으로부터 어떻게 데이터에 액세스하는지를 특정할 수 있다. 프로젝트 그룹 또는 계층 구조를 모델링하는 관점에서, 사용자는 또한 현재 프로젝트에 사용할 부모 데이터 세트의 부분과 추가할 부분을 특정할 수 있다.
기본 사용자에 대해, 예측 모델링 시스템(100)은, 데이터 세트가 특정된 후에 모델을 구축하는 것으로 즉시 진행할 수 있으며, 파싱 불가능한 데이터, 양호한 결과를 예측하기에는 너무 적은 관측치, 합리적인 양의 시간으로 실행하기에는 너무 많은 관측치, 너무 많은 누락값, 또는 그 분산이 비정상적인 결과로 이어질 수 있는 변수에 한정되지 않지만 이를 포함하는 난처한 문제를 사용자 인터페이스(120)가 플래깅하는 경우에만 중지된다. 중간 사용자에 대해, 사용자 인터페이스(120)는 데이터 세트 특성의 테이블 및 변수 중요도의 그래프, 변수 효과 및 효과 핫스팟을 제시함으로써 데이터를 보다 깊이 이해하는 것을 용이하게 할 수 있다. 또한, 사용자 인터페이스(120)는 상관 매트릭스, 부분 의존도 플롯 및/또는 k- 수단 및 계층적 클러스터링과 같은 비감독 머신-학습 알고리즘의 결과에 한정되지 않지만 이를 포함하는 시각화 도구를 제공함으로써 변수들 간의 관계의 이해 및 시각화를 용이하게 할 수 있다. 일부 실시예에서, 사용자 인터페이스(120)는, 기존 피처 또는 이들의 조합을 변환하는 공식을 특정함으로써 고급 사용자가 완전히 새로운 데이터 세트 피처를 생성할 수 있게 한다.
일단 데이터 세트가 로드되면, 사용자는 최적화될 모델-맞춤 메트릭을 특정할 수 있다. 기본 사용자에 대해, 예측 모델링 시스템(100)은 모델-맞춤 메트릭을 선택할 수 있고, 사용자 인터페이스(120)는 선택에 대한 설명을 제시할 수 있다. 중간 사용자에 대해, 사용자 인터페이스(120)는, 사용자가 특정 데이터 세트에 대한 상이한 메트릭을 선택함에 있어 상충 관계를 이해하는 것을 돕도록 정보를 제시할 수 있다. 고급 사용자에 대해, 사용자 인터페이스(120)는, 사용자가 탐색 엔진(110)에 의해 수집된 저-레벨 성능 데이터에 기초하여 공식(예를 들어, 목적 함수)을 작성함으로써, 또는 심지어 커스텀 메트릭 계산 코드를 업로드함으로써 커스텀 메트릭을 특정할 수 있게 할 수 있다.
데이터 세트가 로드되고 모델-맞춤 메트릭이 선택되면, 사용자는 탐색 엔진을 론칭할 수 있다. 기본 사용자에 대해, 탐색 엔진(110)은 모델링 기술에 대한 디폴트 우선 순위 설정을 사용할 수 있고, 사용자 인터페이스(120)는 모델 성능, 데이터 세트로 얼마나 멀리 실행이 진행되었는지, 및 연산 자원의 일반적인 소비에 대한 고-레벨 정보를 제공할 수 있다. 중간 사용자에 대해, 사용자 인터페이스(120)는, 사용자가 초기 우선 순위들 중 일부를 고려하고 약간 조정하는 기술의 서브세트를 특정할 수 있게 할 수 있다. 일부 실시예에서, 사용자 인터페이스(120)는 보다 세부적인 성능 및 진행 데이터를 제공하여, 중간 사용자가 전술한 바와 같이 인-플라이트(in-flight) 조정을 할 수 있다. 일부 실시예에서, 사용자 인터페이스(120)는 중간 사용자에게 연산 자원 소비의 더 많은 직관 및 제어를 제공한다. 일부 실시예에서, 사용자 인터페이스(120)는 고려된 기술 및 그 우선 순위, 이용 가능한 모든 성능 데이터 및 중요한(예를 들어, 완전한) 자원 소비의 제어의 중요한(예를 들어, 완전한) 제어를 고급 사용자에게 제공할 수 있다. 상이한 레벨의 사용자에게 별개의 인터페이스를 제공하거나 디폴트로 보다 낮은 고급 사용자를 위한 보다 고급 피처를 "붕괴"시키는 것에 의해, 사용자 인터페이스(120)의 일부 실시예는 그 대응 레벨에서 사용자를 지원할 수 있다.
검색 공간의 탐색 중에 그리고 그 후에, 사용자 인터페이스는 하나 이상의 모델링 기술의 수행에 관한 정보를 제시할 수 있다. 일부 성능 정보는 테이블 포맷으로 표시될 수 있지만 다른 성능 정보는 그래픽 포맷으로 표시될 수 있다. 예를 들어, 테이블 포맷으로 제시된 정보는 기술별 모델 성능의 비교, 평가된 데이터의 부분, 기술 속성 또는 연산 자원의 현재 소비에 한정되지 않지만 이를 포함할 수 있다. 그래픽 포맷으로 제시되는 정보는 모델링 절차의 작업의 지향 그래프, 데이터 세트의 상이한 분할에 걸친 모델 성능의 비교, 수신기 작동 특성 및 리프트 차트와 같은 모델 성능의 표현, 예측값 대 실제값 및 시간 경과에 따른 연산 자원의 소비를 포함할 수 있지만 이에 한정되지 않는다. 사용자 인터페이스(120)는 어느 유형의 새로운 성능 정보의 용이한 포함을 허용하는 모듈식 사용자 인터페이스 프레임워크를 포함할 수 있다. 또한, 일부 실시예는 각 데이터 분할 및/또는 각 기술에 대한 일부 유형의 정보의 표시를 허용할 수 있다.
전술한 바와 같이, 사용자 인터페이스(120)의 일부 실시예는 복수의 프로젝트에 대한 복수의 사용자의 협업을 지원한다. 프로젝트에 걸쳐, 사용자 인터페이스(120)는, 사용자가 데이터, 모델링 작업 및 모델링 기술을 공유하도록 허용할 수 있다. 프로젝트 내에서, 사용자 인터페이스(120)는, 사용자가 데이터, 모델 및 결과를 공유하도록 허용할 수 있다. 일부 실시예에서, 사용자 인터페이스(120)는, 사용자가 프로젝트의 속성을 수정하고 프로젝트에 할당된 자원을 사용하도록 허용할 수 있다. 일부 실시예에서, 사용자 인터페이스(120)는, 복수의 사용자가 프로젝트 데이터를 수정하고 모델을 프로젝트에 추가한 다음 이들 기여도를 비교하도록 허용할 수 있다. 일부 실시예에서, 사용자 인터페이스(120)는, 어떤 사용자가 프로젝트에 대한 특정의 변경을 하였는지, 변경이 언제 이루어졌는지, 및 사용자가 어떤 프로젝트 자원을 사용했는지를 식별할 수 있다.
모델 배치 엔진
모델 배치 엔진(140)은 동작 환경에서 예측 모델을 배치하기 위한 도구를 제공한다. 일부 실시예에서, 모델 배치 엔진(140)은 배치된 예측 모델의 성능을 모니터링하고, 배치된 모델을 생성한 모델링 기술과 연관된 성능 메타데이터를 갱신하여, 성능 데이터가 배치된 모델의 성능을 정확하게 반영한다.
사용자는, 맞춤화된 모델이 현장 테스트를 보증하거나 값을 추가할 수 있다고 믿을 때 맞춤화된 예측 모델을 배치할 수 있다. 일부 실시예에서, 사용자 및 외부 시스템은 (예를 들어, 예측 모델링 시스템(100)의 인터페이스 서비스 층에서) 예측 모듈에 액세스하고, 사용될 하나 이상의 예측 모델을 특정하고, 새로운 관측치를 제공할 수 있다. 그 후, 예측 모듈은 그 모델에 의해 제공된 예측을 반환할 수 있다. 일부 실시예에서, 관리자는, 어떤 사용자 및 외부 시스템이 이 예측 모듈에 대한 액세스를 갖는지를 제어할 수 있고 및/또는 단위 시간당 허용되는 예측의 수와 같은 사용 제한을 설정할 수 있다.
각각의 모델에 대해, 탐색 엔진(110)은 계수 및 하이퍼-파라미터값을 포함하여, 모델을 생성하는 데 사용된 모델링 기술의 기록 및 맞춤화 후의 모델의 상태를 저장할 수 있다. 각 기술이 이미 머신-실행 가능하기 때문에, 이 값은, 실행 엔진이 새로운 관측치 데이터에 대한 예측을 생성하는 데 충분할 수 있다. 일부 실시예에서, 모델의 예측은 모델링 기술에서 설명된 사전-프로세싱 및 모델링 단계를 새로운 입력 데이터의 각 인스턴스에 적용함으로써 생성될 수 있다. 그러나 일부 경우에, 장래의 예측 계산의 속도를 높이는 것이 가능할 수 있다. 예를 들어, 맞춤화된 모델은 특정 변수의 값을 몇몇 독립적인 확인을 행할 수 있다. 이러한 확인의 일부 또는 전부를 조합한 다음 편리할 때 단순히 참조하는 것은 예측을 생성하는 데 사용되는 총 연산량을 줄일 수 있다. 마찬가지로, 혼합 모델의 몇몇 컴포넌트 모델이 동일한 데이터 변환을 수행할 수 있다. 따라서, 일부 실시예는 중복 계산을 식별하고, 단지 한 번만 이를 수행하고, 이를 사용하는 컴포넌트 모델에서 계산 결과를 참조함으로써 연산 시간을 감소시킬 수 있다.
일부 실시예에서, 배치 엔진(140)은 병렬 프로세싱을 위한 기회를 식별함으로써 예측 모델의 성능을 향상시키고, 이에 의해 기본 하드웨어가 복수의 명령어를 병렬로 실행할 수 있을 때 각각의 예측을 수행하는 응답 시간을 감소시킨다. 일부 모델링 기술은 일련의 단계를 순차적으로 설명할 수 있지만, 실제로 일부 단계는 논리적으로 독립적일 수 있다. 각 단계 중의 데이터 흐름을 조사함으로써, 배치 엔진(140)은 논리적 독립의 상황을 식별한 다음 예측 모델의 실행을 재구성할 수 있어 독립적인 단계가 병렬로 실행된다. 혼합 모델은, 임의의 공통 데이터 변환이 완료되면 구성 예측 모델이 병렬로 실행될 수 있기 때문에, 특별한 클래스의 병렬화를 제시할 수 있다.
일부 실시예에서, 배치 엔진(140)은 예측 모델의 상태를 메모리에 캐싱(caching)할 수 있다. 이 접근법을 사용하면, 동일한 모델의 연속적인 예측 요청이 모델 상태를 로드하는 데 시간을 소비하지 않을 수 있다. 상대적으로 적은 수의 관측치에 대한 예측에 대한 많은 요청이 있는 경우 캐싱이 특히 잘 작동될 수 있으므로, 이 로딩 시간은 전체 실행 시간 중 잠재적으로 큰 부분이다.
일부 실시예에서, 배치 엔진(140)은 서비스-기반 및 코드-기반의 적어도 2개의 예측 모델의 구현을 제공할 수 있다. 서비스-기반 예측에 대해, 계산은 후술하는 바와 같이, 분산 컴퓨팅 인프라스트럭처 내에서 실행된다. 최종 예측 모델은 분산 컴퓨팅 인프라스트럭처의 데이터 서비스 층에 저장될 수 있다. 사용자 또는 외부 시스템이 예측을 요청할 때, 어떤 모델이 사용될 것인지 그리고 적어도 하나의 새로운 관측치를 제공하는지를 나타낼 수 있다. 그 후, 예측 모듈은 데이터 서비스 층 또는 모듈의 메모리 내 캐시로부터 모델을 로드하고, 제출된 관측치가 원래 데이터 세트의 구조와 매칭되는지를 검증하고, 각 관측에 대한 예측값을 연산할 수 있다. 일부 구현에서, 예측 모델은 클라우드 작업자의 전용 풀(pool)에서 실행될 수 있으며, 이에 의해 낮은 분산의 응답 시간을 갖는 예측의 생성을 용이하게 한다.
서비스-기반 예측은 상호 작용으로 또는 API를 통해 발생할 수 있다. 상호 작용 예측에 대해, 사용자는 각각의 새로운 관측치에 대한 피처의 값을 입력하거나 하나 이상의 관측치에 대한 데이터를 포함하는 파일을 업로드할 수 있다. 그 후, 사용자는 사용자 인터페이스(120)를 통해 직접 예측을 수신하거나 파일로서 다운로드할 수 있다. API 예측에 대해, 외부 시스템은 로컬 또는 원격 API를 통해 예측 모듈에 액세스하고, 하나 이상의 관측치를 제출하고, 반환으로 대응하는 계산된 예측을 수신할 수 있다.
배치 엔진(140)의 몇몇 구현은, 조직이 서비스-기반 예측을 수행할 목적으로 분산 컴퓨팅 인프라스트럭처의 하나 이상의 소형화된 인스턴스를 생성하도록 허용할 수 있다. 분산 컴퓨팅 인프라스트럭처의 인터페이스 층에서, 이러한 각 인스턴스는 사용자-관련 기능에 액세스하지 않고도 외부 시스템에 의해 액세스할 수 있는 모니터링 및 예측 모듈의 부분을 사용할 수 있다. 분석 서비스 층은 기술 IDE 모듈을 사용하지 않을 수 있으며 이 층의 나머지 모듈은 제거되어 예측 요청을 서비스하기 위해 최적화될 수 있다. 데이터 서비스 층은 사용자 또는 모델-구축 데이터 관리를 사용할 수 없다. 이러한 독립형 예측 인스턴스는 클라우드 자원의 병렬 풀에 배치되거나, 다른 물리적 위치로 분산되거나, 심지어 "예측 어플라이언스"로 작동하는 하나 이상의 전용 머신에 다운로드될 수 있다.
전용 예측 인스턴스를 생성하기 위해, 사용자는 예를 들어, 클라우드 인스턴스의 세트인지 또는 전용 하드웨어의 세트인지 여부와 같은 타겟 컴퓨팅 인프라스트럭처를 특정할 수 있다. 그 후 대응 모듈이 제공되고 타겟 컴퓨팅 인프라스트럭처에 설치하거나 설치를 위해 패키지화할 수 있다. 사용자는 초기 예측 모델의 세트로 인스턴스를 구성하거나 "빈(blank)" 인스턴스를 생성할 수 있다. 초기 설치 후, 사용자는 새로운 것을 설치하거나 메인 설치로부터 기존 것을 갱신함으로써 이용 가능한 예측 모델을 관리할 수 있다.
코드-기반 예측에 대해, 배치 엔진(140)은 특정 모델에 기초하여 예측을 계산하기 위한 소스 코드를 생성할 수 있고, 사용자는 소스 코드를 다른 소프트웨어에 통합할 수 있다. 모델이, 그 리프-레벨 작업이 모두 사용자에 의해 요청된 것과 동일한 프로그래밍 언어로 구현되는 기술에 기초할 때, 배치 엔진(140)은 리프-레벨 작업을 위한 코드를 수집 분석함으로써 예측 모델에 대한 소스 코드를 생성할 수 있다. 모델이 다른 언어로부터의 코드를 통합하거나 언어가 사용자의 원하는 언어와 상이한 경우, 배포 엔진(140)은 보다 복잡한 접근법을 사용할 수 있다.
하나의 접근법은 소스-대-소스 컴파일러를 사용하여 리프-레벨 적업의 소스 코드를 타겟 언어로 번역하는 것이다. 다른 접근법은 타겟 언어로 함수 스터브(stub)를 생성한 다음 원래 언어로 링크-인(link-in)된 객체 코드를 호출하거나 이러한 객체 코드를 실행하는 에뮬레이터에 액세스하는 것이다. 전자의 접근법은 사용자의 타겟 컴퓨팅 플랫폼을 위해 특별히 객체 코드를 생성하기 위해 크로스-컴파일러를 사용하는 것을 포함할 수 있다. 후자의 접근법은 사용자의 타겟 플랫폼 상에서 실행될 에뮬레이터의 사용을 포함할 수 있다.
또 다른 접근법은 특정 모델의 추상적 설명을 생성한 다음 그 설명을 타겟 언어로 컴파일하는 것이다. 추상적 설명을 생성하기 위해, 배치 엔진(140)의 일부 실시예는 다수의 잠재적 사전-프로세싱, 모델-맞춤 및 사후-프로세싱 단계를 설명하기 위한 메타-모델을 사용할 수 있다. 그 후 배치 엔진은 완전한 모델에 대한 특정 동작을 추출하고 메타-모델을 사용하여 이를 인코딩할 수 있다. 이러한 실시예에서, 타겟 프로그래밍 언어에 대한 컴파일러는 메타-모델을 타겟 언어로 번역하는 데 사용될 수 있다. 따라서, 사용자가 지원되는 언어로 예측 코드를 원하면, 컴파일러가 이를 생성할 수 있다. 예를 들어, 결정-트리 모델에서, 트리의 결정은 광범위하게 다양한 프로그래밍 언어로 직접 구현 가능한 논리적 if/then/else 구문으로 추상화될 수 있다. 마찬가지로, 통상적인 프로그래밍 언어에서 지원되는 수학 연산의 세트가 선형 회귀 모델을 구현하는 데 사용될 수 있다.
그러나, 임의의 언어로 예측 모델의 소스 코드를 공개하는 것은 몇몇 경우에(예를 들어, 예측 모델링 기술 또는 예측 모델이 독점 기능 또는 정보를 포함하는 경우) 바람직하지 않을 수 있다. 따라서, 배치 엔진(140)은 그 절차의 상세 사항을 공개하지 않고 예측 모델의 예측 기능을 보존하는 규칙의 세트로 예측 모델을 변환할 수 있다. 하나의 접근법은 가상적인 관측치에 대한 응답으로 예측 모델이 생성되는 가상의 예측의 세트로부터 이러한 규칙을 생성하는 알고리즘을 적용하는 것이다. 이러한 일부 알고리즘은 예측을 수행하기 위한 if-then 규칙의 세트(예를 들어, RuleFit)를 생성할 수 있다. 이 알고리즘들에 대해, 배치 엔진(140)은 원래의 예측 모델을 변환하는 대신 결과적인 if-then 규칙을 타겟 언어로 변환할 수 있다. 예측 모델을 if-then 규칙의 세트로 변환하는 추가적인 이점은, 프로그래밍 언어들에서 조건부 로직의 기본 모델이 보다 유사하기 때문에, 임의의 제어 및 데이터 흐름을 갖는 예측 모델보다 if-then 규칙의 세트를 타겟 프로그래밍 언어로 변환하는 것이 일반적으로 더 용이하다는 것이다.
모델이 새로운 관측치에 대한 예측을 일단 시작하면, 배치 엔진(140)은 이들 예측을 추적하고, 그 정확도를 측정하며, 예측 모델링 시스템(100)을 개선하기 위해 이들 결과를 사용할 수 있다. 서비스-기반 예측의 경우에, 시스템의 나머지 부분과 동일한 분산 컴퓨팅 환경 내에서 예측이 발생하므로, 각 관측치 및 예측은 데이터 서비스 층을 통해 저장될 수 있다. 각각의 예측에 대한 식별자를 제공함으로써, 일부 실시예는, 사용자 또는 외부 소프트웨어 시스템이 기록된 경우 및 그 때의 실제 값을 제출하도록 허용할 수 있다. 코드-기반 예측의 경우, 일부 실시예는 로컬 시스템 또는 데이터 서비스 층의 인스턴스로 다시 관측치 및 예측을 저장하는 코드를 포함할 수 있다. 다시, 각 예측에 대한 식별자를 제공하는 것은 이용 가능하게 될 때 실제 타겟 값에 대한 모델 성능 데이터의 수집을 용이하게 할 수 있다.
예측의 정확도 및/또는 다른 채널을 통해 얻어진 관측치에 대해 배치 엔진(140)에 의해 직접 수집된 정보는 (예를 들어, 기존 모델을 "리프레시"하기 위해, 또는 모델링 검색 공간의 일부 또는 전체를 다시 탐색함으로써 모델을 생성하기 위해) 예측 문제에 대한 모델을 개선하는 데 사용될 수 있다. 모델을 생성하기 위해 원래 데이터가 추가되었던 것과 동일한 방식으로 모델을 개선하거나 이전에 예측에 사용된 데이터에 대한 타겟 값을 제출함으로써 새 데이터가 추가될 수 있다.
일부 모델은 대응하는 모델링 기술을 새로운 데이터에 적용하고 결과적인 새로운 모델을 기존 모델과 조합함으로써 리프레시(예를 들어, 재맞춤)될 수 있는 반면, 다른 모델은 대응하는 모델링 기술을 원본 및 새로운 데이터의 조합에 적용함으로써 리프레시될 수 있다. 일부 실시예에서, 모델을 리프레시하는 경우, 모델 파라미터 중 일부만이 (예를 들어, 모델을 보다 신속하게 리프레시하기 위해, 또는 새로운 데이터가 특정 파라미터에 특히 관련된 정보를 제공하기 때문에) 재계산될 수 있다.
대안적으로 또는 추가적으로, 데이터 세트에 포함된 새로운 데이터와 함께 부분적으로 또는 전체적으로 모델링 검색 공간을 탐색하는 새로운 모델이 생성될 수 있다. 검색 공간의 재탐색은 (예를 들어, 원래의 검색에서 잘 수행된 모델링 기술에 제한된) 검색 공간의 일부로 제한되거나 전체 검색 공간을 커버할 수 있다. 두 경우 모두 배치된 모델(들)을 생성한 모델링 기술(들)에 대한 초기 적절성 스코어는 예측 문제에 대한 배치된 모델(들)의 성능을 반영하도록 재계산될 수 있다. 사용자는 재계산을 수행하기 위해 일부 이전 데이터를 제외하도록 선택할 수 있다. 배치 엔진(140)의 일부 실시예는 데이터의 서브세트가 어떤 버전을 트레이닝하는 데 사용되었는지를 포함하여, 동일한 로직 모델의 상이한 버전을 추적할 수 있다.
일부 실시예에서, 이 예측 데이터는 시간 경과에 따른 입력 파라미터 또는 예측 자체의 경향의 사후-요청 분석을 수행하고, 모델 예측의 입력 또는 품질에 대한 잠재적 문제점을 사용자에게 경고하기 위해 사용될 수 있다. 예를 들어, 모델 성능의 집계 측정이 시간이 지남에 따라 저하되기 시작하면, 시스템은 모델을 리프레싱하거나 입력 자체가 시프팅하고 있는지 여부를 조사하는 것을 고려하도록 사용자에게 경고할 수 있다. 이러한 시프트는 특정 변수의 시간적 변화 또는 전체 모집단의 표류에 의해 야기될 수 있다. 일부 실시예에서, 이 분석의 대부분은 예측 응답이 느려지는 것을 피하기 위해 예측 요청이 완료된 후에 수행된다. 그러나, 시스템은 (예를 들어, 입력값이 원래 트레이닝 데이터, 모델링 기술 및 최종 모델 맞춤 상태의 유효한 주어진 특성으로서 연산된 값의 범위 외부에 있는 경우) 특히 나쁜 예측을 피하도록 예측 시간에 일부 검증을 수행할 수 있다.
사후 분석은, 사용자가 트레이닝에 사용된 모집단을 훨씬 초과하는 외삽법을 만들기 위해 모델을 배치한 경우에 중요할 수 있다. 예를 들어, 모델이 한 지리적 영역으로부터의 데이터에 대해 트레이닝되었지만, 완전히 다른 지리적 영역의 모집단에 대해 예측을 수행하는 데 사용될 수 있다. 때로는, 새로운 모집단에 대한 이러한 외삽법은 예상보다 실질적으로 더 나쁜 모델 성능으로 귀결될 수 있다. 이러한 경우에, 배치 엔진(140)은 사용자에게 경고하고 및/또는 새로운 값을 사용하여 하나 이상의 모델링 기술을 다시 맞춤화함으로써 모델을 자동으로 리프레시할 수 있고 원래 트레이닝 데이터를 확장한다.
일부 실시예의 이점
예측 모델링 시스템(100)은 임의의 스킬 레벨에서 분석자의 생산성을 상당히 개선할 수 있고 및/또는 주어진 양의 자원으로 달성 가능한 예측 모델의 정확도를 상당히 증가시킬 수 있다. 프로시저를 자동화하는 것은 작업 부하를 감소시키고, 프로세스를 시스템화하는 것은 일관성을 유지할 수 있어, 분석자가 고유한 직관을 생성하는 데 더 많은 시간을 쓸 수 있게 한다. 3개의 통상적인 시나리오가 결과 예상, 특성 예측 및 측정 추론과 같은 이점을 나타낸다.
결과 예상
조직이 결과를 정확하게 예상할 수 있다면, 조직은 보다 효율적으로 계획하고 그 거동을 향상시킬 수 있다. 따라서, 머신 학습의 통상적인 애플리케이션은 예상을 생성하는 알고리즘을 개발하는 것이다. 예를 들어, 많은 산업 분야는 대규모의 시간-소모적인 프로젝트에서 비용 예측 문제에 직면한다.
일부 실시예에서, 본원에 설명되는 기술은 비용 초과(예를 들어, 소프트웨어 비용 초과 또는 건설 비용 초과)를 예상하기 위해 사용될 수 있다. 예를 들어, 본원에 설명되는 기술은 다음과 같이 비용 초과를 예상하는 문제에 적용될 수 있다:
1. 응답 변수 유형(예를 들어, 숫자 또는 바이너리, 근사적으로 가우시안(Gaussian) 또는 강한 논(non)-가우시안)에 적절한 모델 맞춤 메트릭을 선택한다: 예측 모델링 시스템(100)은 사용자에 의한 더 적은 기술 및 노력을 필요로 하는, 데이터 특성에 기초한 메트릭을 추천할 수 있지만, 사용자가 최종 선택을 할 수 있게 한다.
2. 아웃라이어 및 누락 데이터값을 해결하기 위해 데이터를 사전-프로세싱한다: 예측 모델링 시스템(100)은 데이터 특성의 상세한 개요를 제공하여, 사용자가 모델링 문제의 보다 나은 상황 인식을 개발하고 잠재적인 모델링 과제를 보다 효과적으로 평가할 수 있게 한다. 예측 모델링 시스템(100)은 아웃라이어 검출 및 대체, 누락값 전가(imputation), 및 사용자에 의한 기술 및 노력을 덜 요구하는 다른 데이터 이상의 검출 및 처리를 위한 자동화된 절차를 포함할 수 있다. 이러한 과제를 해결하기 위한 예측 모델링 시스템의 절차는 체계적일 수 있어, 임시 데이터 편집 절차보다 방법, 데이터 세트 및 시간에 걸쳐 보다 일관된 모델링 결과로 이어질 수 있다.
3. 모델링 및 평가를 위해 데이터를 분할한다: 예측 모델링 시스템(100)은 데이터를 트레이닝, 검증 및 홀드아웃 세트로 자동 분할할 수 있다. 이 분할은 일부 데이터 분석자에 의해 사용되는 트레인 및 테스트 분할보다 더욱 유연할 수 있으며, 머신 학습 커뮤니티로부터 광범위하게 수용되는 추천과 일관될 수 있다. 방법, 데이터 세트 및 시간에 걸쳐 일관된 분할 접근법의 사용은 결과를 보다 쉽게 비교 가능하게 만들 수 있어, 상업적 상황에서 자원 배치의 보다 효과적인 할당을 가능하게 한다.
4. 모델 구조를 선택하고, 도출된 피처를 생성하고, 모델 튜닝 파라미터를 선택하고, 모델을 맞춤화하고, 평가한다: 일부 실시예에서, 예측 모델링 시스템(100)은 결정 트리, 신경 네트워크, 지원 벡터 머신 모델, 회귀 모델, 부스팅된 트리, 랜덤 포리스트, 심층 학습(deep learning) 신경망 등에 한정되지 않지만 이를 포함하는 많은 상이한 모델 유형을 맞춤화할 수 있다. 예측 모델링 시스템(100)은 최상의 개별 성능을 나타내는 이러한 컴포넌트 모델로부터 앙상블을 자동으로 구성하는 옵션을 제공할 수 있다. 잠재적인 모델의 더 큰 공간을 탐색하는 것은 정확도를 향상시킬 수 있다. 예측 모델링 시스템은 상이한 데이터 유형(예를 들어, Box-Cox 변환, 텍스트 사전-프로세싱, 주요 컴포넌트 등)에 적절한 다양한 도출된 피처를 자동으로 생성할 수 있다. 잠재적인 변환의 더 큰 공간을 탐색하는 것은 정확도를 향상시킬 수 있다. 예측 모델링 시스템(100)은 상호 유효성 검증을 사용하여 모델 구축 프로세스의 일부로서 이들 튜닝 파라미터에 대한 최상의 값을 선택할 수 있고, 이에 의해 튜닝 파라미터의 선택을 개선하고 파라미터의 선택이 결과에 어떻게 영향을 주는지에 대한 감사 추적을 생성할 수 있다. 예측 모델링 시스템(100)은 이 자동화된 프로세스의 일부로서 고려되는 상이한 모델 구조를 맞춤화하고 평가할 수 있어, 검증 세트 성능의 관점에서 결과를 등급화한다.
5. 최종 모델을 선택한다: 최종 모델의 선택은 예측 모델링 시스템(100) 또는 사용자에 의해 이루어질 수 있다. 후자의 경우, 예측 모델링 시스템은 예를 들어, 모델에 대한 등급화된 검증 세트 성능 평가, 맞춤 프로세스에서 사용된 것과 다른 품질 측정에 의해 성능의 비교 및 등급화의 옵션, 및/또는 최상의 개별 성능을 나타내는 컴포넌트 모델로부터 앙상블 모델을 구축할 수 있는 기회를 포함하여, 사용자가 이러한 결정을 내리는 것을 돕도록 지원을 제공할 수 있다.
예측 모델링 시스템의 모델 개발 프로세스의 하나의 중요한 실제적인 양태는, 일단 초기 데이터 세트가 어셈블링되면, 모든 후속 연산이 동일한 소프트웨어 환경 내에서 발생할 수 있다는 것이다. 이 양태는 종종 상이한 소프트웨어 환경의 조합을 포함하는 통상의 모델-구축 노력과 중요한 차이점을 나타낸다. 이러한 다중-플랫폼 분석 접근법의 중요한 실용적인 단점은 결과를 다른 소프트웨어 환경들 간에 공유될 수 있는 공통 데이터 포맷으로 변환할 필요가 있다는 것이다. 종종 이 변환은 수동으로 또는 커스텀 "1회용" 재포맷 스크립트로 수행된다. 이 프로세스에서의 에러는 매우 심각한 데이터 왜곡으로 이어질 수 있다. 예측 모델링 시스템(100)은 하나의 소프트웨어 환경에서 모든 연산을 수행함으로써 이러한 재포맷팅 및 데이터 전송 에러를 피할 수 있다. 보다 일반적으로, 이는 매우 자동화되어 있고, 많은 상이한 모델 구조를 맞춤화하고 최적화하기 때문에, 예측 모델링 시스템(100)은 실질적으로 더 빠르고 보다 체계적이고, 따라서 보다 쉽게 설명 가능하고 보다 반복 가능하게 최종 모델로 라우팅될 수 있다. 또한, 예측 모델링 시스템(100)이 더욱 다른 모델링 방법을 탐색하고 가능한 예측자를 포함하기 때문에, 결과적인 모델은 종래의 방법에 의해 얻어진 것보다 더 정확할 수 있다.
속성 예측
많은 분야에서, 조직은 생산 프로세스의 결과에 있어서 불확실성에 직면하고 주어진 조건의 세트가 출력의 최종 속성에 어떻게 영향을 미칠지 예측하기를 원한다. 따라서, 머신 학습의 공통적인 애플리케이션은 이러한 속성을 예측하는 알고리즘을 개발하는 것이다. 예를 들어, 콘크리트는 통상적인 건축 자재로, 그 최종 구조 속성이 상황마다 크게 다를 수 있다. 시간에 따른 콘크리트 속성의 상당한 변화와 매우 가변적인 조성에 대한 의존성으로 인해, 제1 원리로부터 개발된 모델도 전통적인 회귀 모델로부터 개발된 모델도 적절한 예측 정확도를 제공하지 못한다.
일부 실시예에서, 본원에 설명되는 기술은 생산 프로세스의 결과의 속성(예를 들어, 콘크리트의 속성)을 예측하는 데 사용될 수 있다. 예를 들어, 본원에 설명되는 기술은 다음과 같은 콘크리트의 속성을 예측하는 문제에 적용될 수 있다:
1. 트레이닝, 검증 및 테스트 서브세트로 데이터 세트를 분할한다.
2. 모델링 데이터 세트를 클리닝한다: 예측 모델링 시스템(100)은 누락 데이터, 아웃라이어 및 다른 중요한 데이터 이상을 자동으로 확인하고, 처리 전략을 추천하고, 사용자에게 이들을 수용 또는 거절하는 옵션을 제공할 수 있다. 이 접근법은 사용자에 의한 적은 기술과 노력을 요구할 수 있고, 및/또는 방법, 데이터 세트 및 시간에 걸쳐 보다 일관된 결과를 제공할 수 있다.
3. 응답 변수를 선택하고 1차 맞춤 메트릭을 선택한다: 사용자는 모델링 데이터 세트에서 이용 가능한 것으로부터 예측되는 응답 변수를 선택할 수 있다. 일단 응답 변수가 선택되었으면, 예측 모델링 시스템(100)은, 사용자가 수용하거나 무시할 수 있는 호환 가능한 맞춤 메트릭을 추천할 수 있다. 이 접근법은 사용자에 의한 적은 기술과 노력을 요구할 수 있다. 예측 모델링 시스템은, 응답 변수 유형과 선택된 맞춤 메트릭에 기초하여, 통상의 회귀 모델, 신경망 및 다른 머신 학습 모델(예를 들어, 랜덤 포리스트, 부스팅된 트리, 지원 벡터 머신)을 포함하는 예측 모델의 세트를 제공할 수 있다. 가능한 모델링 접근법의 공간 중에서 자동 검색함으로써, 예측 모델링 시스템(100)은 최종 모델의 예상 정확도를 증가시킬 수 있다. 모델 선택의 디폴트 세트는 특정 모델 유형을 고려 대상에서 제외하거나, 예측 모델링 시스템에 의해 지원되지만 디폴트 목록의 일부가 아닌 다른 모델 유형을 추가하거나, 사용자 자신의 커스텀 모델 유형(예를 들어, R 또는 파이썬(Python)으로 구현됨)을 추가하기 위해 무시될 수 있다.
4. 입력 피처를 생성하고, 모델을 맞춤화하고, 모델-특유 튜닝 파라미터를 최적화하고, 성능을 평가한다: 일부 실시예에서, 피처 생성은 수치 공변량, Box-Cox 변환, 주요 컴포넌트 등을 위한 스케일링을 포함할 수 있다. 모델에 대한 파라미터를 튜닝하는 것은 상호 유효성 검증을 통해 최적화될 수 있다. 검증 세트 성능 측정은 다른 개요 특성(예를 들어, 회귀 모델에 대한 모델 파라미터, 부스트된 트리 또는 랜덤 포리스트에 대한 변수 중요도 측정)과 함께 각 모델에 대해 연산되고 제시될 수 있다.
5. 최종 모델을 선택한다: 최종 모델의 선택은 예측 모델링 시스템(100) 또는 사용자에 의해 이루어질 수 있다. 후자의 경우, 예측 모델링 시스템은 예를 들어, 모델에 대한 등급화된 검증 세트 성능 평가, 맞춤 프로세스에서 사용된 것과 다른 품질 측정에 의한 성능을 비교 및 등급화하는 옵션, 및/또는 최상의 개별 성능을 나타내는 이러한 컴포넌트 모델로부터 앙상블 모델을 구축할 수 있는 기회를 포함하여 사용자가 결정을 내리는 것을 돕도록 지원을 제공할 수 있다.
측정의 추론
일부 측정은 다른 측정보다 비용이 훨씬 많이 들기 때문에, 조직은 보다 비싼 메트릭에 대해 보다 저렴한 메트릭으로 대체하기를 원할 수 있다. 따라서, 머신 학습의 통상적인 애플리케이션은 보다 저렴한 것의 알려진 출력으로부터 고가의 측정 가능성 있는 출력을 추론하는 것이다. 예를 들어, "컬(curl)"은 종이 제품이 평면 형상에서 벗어나는 경향을 포착하는 속성이지만, 이는 통상적으로 제품이 완성된 후에만 판정할 수 있다. 제조 과정에서 쉽게 측정되는 기계적 속성으로부터 용지의 컬을 추론할 수 있는 것은 주어진 레벨의 품질을 달성하는 데 엄청난 비용 절감으로 귀결될 수 있다. 통상적인 최종-사용 속성에 대해, 이들 속성과 제조 프로세스 조건 사이의 관계는 잘 이해되지 않는다.
일부 실시예에서, 본원에 설명되는 기술은 측정을 추론하는 데 사용될 수 있다. 예를 들어, 본원에 설명되는 기술은 다음과 같이 측정을 추론하는 문제에 적용될 수 있다:
1. 모델링 데이터 세트를 특성화한다: 예측 모델링 시스템(100)은 주요 개요 특성을 제공하고, 사용자가 자유롭게 수용하거나, 거절하거나, 더 많은 정보를 요청하는 중요한 데이터 이상의 처리에 대한 추천을 제공할 수 있다. 예를 들어, 변수의 주요 특성이 연산되고 표시될 수 있으며, 누락 데이터의 출현이 표시될 수 있고, 처리 전략을 추천될 수 있으며, 수치 변수의 아웃라이어가 검출될 수 있고, 발견되면, 처리 전략이 추천될 수 있고 및/또는 기타 데이터 이상이 자동으로 검출될 수 있고(예를 들어, 인라이어, 그 값이 변경되지 않는 정보가 없는 변수), 추천된 처리가 사용자에게 이용 가능하게 될 수 있다.
2. 트레이닝/검증/홀드아웃 서브세트로 데이터 세트를 분할한다.
3. 피처 생성/모델 구조 선택/모델 맞춤: 예측 모델링 시스템(100)은 이들 단계를 조합 및 자동화하여 넓은 내부 반복을 허용할 수 있다. 주요 컴포넌트와 같은 고전적인 기술과 부스팅된 트리와 같은 더 새로운 방법 모두를 사용하여 복수의 피처가 자동으로 생성 및 평가될 수 있다. 회귀 모델, 신경망, 지원 벡터 머신, 랜덤 포리스트, 부스팅된 트리 및 다른 것을 포함하여 많은 상이한 모델 유형이 맞춤화 및 비교될 수 있다. 또한, 사용자는 이 디폴트 컬렉션의 일부가 아닌 다른 모델 구조를 포함하는 옵션을 가질 수 있다. 모델 하위-구조 선택(예를 들어, 신경망의 숨은 유닛의 수의 선택, 다른 모델-특유 튜닝 파라미터의 특정 등)은 이 모델 맞춤 및 평가 프로세스의 일부로서 넓은 상호 유효성 검증에 의해 자동으로 수행될 수 있다.
4. 최종 모델을 선택한다: 최종 모델의 선택은 예측 모델링 시스템(100) 또는 사용자에 의해 이루어질 수 있다. 후자의 경우, 예측 모델링 시스템은, 예를 들어, 모델에 대한 등급화된 검증 세트 성능 평가, 맞춤 프로세스에서 사용된 것과 다른 품질 측정에 의한 성능의 비교 및 등급화의 옵션, 및/또는 최상의 개별 성능을 나타내는 이러한 컴포넌트 모델로부터 앙상블 모델을 구축할 수 있는 기회를 포함하여, 사용자가 이러한 결정을 내리는 것을 돕도록 지원을 제공할 수 있다.
일부 실시예에서는, 예측 모델링 시스템(100)이 데이터 사전 프로세싱(예를 들어, 비정상 검출), 데이터 분할, 다중 피처 생성, 모델 맞춤 및 모델 평가를 자동화하고 효율적으로 구현하기 때문에, 모델을 개발하는 데 필요한 시간은 종래의 개발 사이클에서 이루어지는 것보다 훨씬 더 짧을 수 있다. 또한, 일부 실시예에서, 예측 모델링 시스템은 누락 데이터 및 아웃라이어와 같은 공지의 데이터 이상과, 인라이어와 같은 덜 폭넓게 이해되는 이상(데이터 분포와 일관되지만 에러인 반복되는 관측치) 및 포스트딕터(postdictor)(즉, 정보 누락으로부터 발생하는 극도로 예측적인 공변량) 모두를 취급하기 위해 데이터 후-처리 절차를 자동으로 포함하기 때문에, 결과적인 모델이 더 정확하고 더 유용할 수 있다. 일부 실시예에서, 예측 모델링 시스템(100)은 종래의 실현 가능한 것보다 훨씬 광범위한 모델 유형 및 각 유형의 더 많은 특정 모델을 탐색할 수 있다. 이 모델의 다양성은 손상된 품질의 데이터 세트에 적용된 경우에도 불만족스러운 결과가 발생할 가능성을 크게 감소시킬 수 있다.
예측 모델 시스템의 구현
도 5를 참조하면, 일부 실시예에서, 예측 모델링 시스템(500)(예를 들어, 예측 모델링 시스템(100)의 일 실시예)은 적어도 하나의 클라이언트 컴퓨터(510), 적어도 하나의 서버(550) 및 하나 이상의 프로세싱 노드(570)를 포함한다. 나타내어진 구성은 단지 예시적인 목적을 위한 것이며, 임의의 수의 클라이언트(510) 및/또는 서버(550)가 있을 수 있는 것으로 의도된다.
일부 실시예에서, 예측 모델링 시스템(500)은 방법(300)의 하나 이상의(예를 들어, 전부) 단계를 수행할 수 있다. 일부 실시예에서, 클라이언트(510)는 사용자 인터페이스(120)를 구현할 수 있고, 서버(550)의 예측 모델링 모듈(552)은 예측 모델링 시스템(100)의 다른 컴포넌트(예를 들어, 모델링 공간 탐색 엔진(110), 모델링 기술의 라이브러리(130), 예측 문제의 라이브러리 및/또는 모델링 배치 엔진(140))를 구현할 수 있다. 일부 실시예에서, 모델링 검색 공간의 탐색을 위해 탐색 엔진(110)에 의해 할당된 연산 자원은 하나 이상의 프로세싱 노드(570)의 자원일 수 있고, 하나 이상의 프로세싱 노드(570)는 자원 할당 스케줄에 따라 모델링 기술을 실행할 수 있다. 그러나, 실시예는, 예측 모델링 시스템(100) 또는 예측 모델링 방법(300)의 컴포넌트가 클라이언트(510), 서버(550) 및 하나 이상의 프로세싱 노드(570) 사이에 분산되는 방식에 의해 제한되지 않는다. 또한, 일부 실시예에서, 예측 모델링 시스템(100)의 모든 컴포넌트는 (클라이언트(510), 서버(550) 및 프로세싱 노드(들)(570) 사이에 분산되는 대신에) 단일 컴퓨터 상에 구현될 수 있거나 2개의 컴퓨터(예를 들어, 클라이언트(510) 및 서버(550)) 상에 구현될 수 있다.
하나 이상의 통신 네트워크(530)가 클라이언트(510)를 서버(550)와 접속시키고, 하나 이상의 통신 네트워크(580)가 서버(550)를 프로세싱 노드(들)(570)와 접속시킨다. 통신은 표준 전화 회선, LAN 또는 WAN 링크(예를 들어, T1, T3, 56kb, X.25), 광대역 접속(ISDN, 프레임 릴레이, ATM) 및/또는 무선 링크(IEEE 802.11, Bluetooth)와 같은 임의의 매체를 통해 이루어질 수 있다. 바람직하게는, 네트워크(530/580)는 TCP/IP 프로토콜 통신을 수행할 수 있고 클라이언트(510), 서버(550) 및 프로세싱 노드(들)(570)에 의해 송신된 데이터(예를 들어, HTTP/HTTPS 요청 등)는 TCP/IP 네트워크와 같은 것을 통해 통신될 수 있다. 그러나, 네트워크 유형은 제한되지 않고, 임의의 적절한 네트워크가 사용될 수 있다. 통신 네트워크(530/580)로서 역할을 할 수 있거나 그 일부가 될 수 있는 네트워크의 비한정적인 예는 무선 또는 유선 이더넷-기반 인트라넷, 로컬 또는 광역 네트워크(LAN 또는 WAN), 및/또는 많은 다른 통신 매체 및 프로토콜을 수용할 수 있는 인터넷으로 알려진 글로벌 통신 네트워크를 포함한다.
클라이언트(510)는 하드웨어 상에서 실행되는 소프트웨어(512)로 구현되는 것이 바람직하다. 일부 실시예에서, 하드웨어는 미국 워싱토주 레드몬드에 소재한 Microsoft Corporation으로부터의 운영 체제의 MICROSOFT WINDOWS 패밀리, 미국 캘리포니아주 쿠퍼티노에 소재한 Apple Computer로부터의 MACINTOSH 운영 체제, 및/또는 SUN MICROSYSTEMS로부터의 SUN SOLARIS와 같은 다양한 Unix 계열, 및 미국 노스 캐롤라이나주 더럼에 소재한 RED HAT, INC.로부터의 GNU/Linux와 같은 운영 체제와 같이 실행할 수 있는 퍼스널 컴퓨터(예를 들어, INTEL 프로세서를 갖는 PC 또는 APPLE MACINTOSH)를 포함할 수 있다. 클라이언트(510)는 또한 스마트 또는 덤(dumb) 단말, 네트워크 컴퓨터, 무선 디바이스, 무선 전화, 정보 어플라이언스, 워크스테이션, 미니컴퓨터, 메인프레임 컴퓨터, 개인용 데이터 어시스턴트, 태블릿, 스마트 폰 또는 범용 컴퓨터로서 동작되는 다른 컴퓨팅 디바이스, 또는 클라이언트(510)로서 역할을 하기 위해 단독으로 사용되는 특수 목적 하드웨어 디바이스와 같은 하드웨어 상에서 구현될 수 있다.
일반적으로, 일부 실시예에서, 클라이언트(510)는 전자 메일 및/또는 인스턴트 메시지의 송신 및 수신, 월드 와이드 웹 상에서 이용 가능한 컨텐츠의 요청 및 시청, 채팅 룸에의 참여, 또는 컴퓨터, 휴대용 디바이스 또는 셀룰러 전화를 사용하여 통상적으로 수행되는 다른 작업을 수행하는 것을 포함하여 다양한 활동을 위해 동작 및 사용될 수 있다. 클라이언트(510)는 또한 클라이언트(510)를 그들의 고용의 일부로서 사용자에게 제공하는 고용주와 같이 다른 사람들을 대신하여 사용자에 의해 운영될 수 있다.
다양한 실시예에서, 클라이언트 컴퓨터(510)의 소프트웨어(512)는 클라이언트 소프트웨어(514) 및/또는 웹 브라우저(516)를 포함한다. 웹 브라우저(514)는, 클라이언트(510)가 (예를 들어, 서버(550)로부터) 웹 페이지 또는 다른 다운로드 가능한 프로그램, 애플릿 또는 문서를 웹-페이지 요청으로 요청할 수 있게 한다. 웹 페이지의 일례는 컴퓨터 실행 가능 또는 인터프리팅 가능한 정보, 그래픽, 사운드, 텍스트 및/또는 비디오를 포함하며, 표시, 실행, 재생, 프로세싱, 스트리밍 및/또는 저장될 수 있고, 다른 웹 페이지에 대한 링크 또는 포인터를 포함할 수 있는 데이터 파일이다. 상업적으로 이용 가능한 웹 브라우저 소프트웨어(516)의 예는 Microsoft Corporation에 의해 제공되는 INTERNET EXPLORER, AOL/Time Warner에 의해 제공되는 NETSCAPE NAVIGATOR, Mozilla Foundation에 의해 제공되는 FIREFOX, 또는 Google에 의해 제공되는 CHROME이다.
일부 실시예에서, 소프트웨어(512)는 클라이언트 소프트웨어(514)를 포함한다. 클라이언트 소프트웨어(514)는 예를 들어, 사용자가 전자 메일, 인스턴트 메시지, 전화 호출, 비디오 메시지, 스트리밍 오디오 또는 비디오, 또는 다른 컨텐츠를 송신 및 수신할 수 있게 하는, 클라이언트(510)에 대한 기능을 제공한다. 클라이언트 소프트웨어(514)의 예는 Microsoft Corporation에 의해 제공되는 OUTLOOK 및 OUTLOOK EXPRESS, Mozilla Foundation에 의해 제공되는 THUNDERBIRD, 및 AOL/Time Warner에 의해 제공되는 INSTANT MESSENGER를 포함하지만, 이에 한정되지 않는다. 중앙 처리 장치, 휘발성 및 비휘발성 저장소, 입력/출력 디바이스 및 디스플레이를 포함하여 클라이언트 컴퓨터와 연관된 표준 컴포넌트는 나타내어지지 않는다.
일부 실시예에서, 웹 브라우저 소프트웨어(516) 및/또는 클라이언트 소프트웨어(514)는, 클라이언트가 예측 모델링 시스템(100)에 대한 사용자 인터페이스(120)에 액세스하는 것을 허용할 수 있다.
서버(550)는 클라이언트(510)와 상호 작용한다. 서버(550)는 충분한 메모리, 데이터 저장 및 프로세싱 능력을 갖고, 서버-클래스 운영 체제(예를 들어, SUN Solaris, GNU/Linux 및 MICROSOFT WINDOWS 운영 체제 패밀리)를 실행하는 하나 이상의 서버-클래스 컴퓨터 상에서 구현되는 것이 바람직하다. 디바이스의 용량 및 사용자 베이스의 크기에 따라, 본원에 구체적으로 설명되는 것과 다른 시스템 하드웨어 및 소프트웨어가 또한 사용될 수 있다. 예를 들어, 서버(550)는 서버 팜(farm) 또는 서버 네트워크와 같은 하나 이상의 서버의 논리적 그룹이거나 그 일부일 수 있다. 다른 예로서, 서로 연관되거나 접속되는 복수의 서버(550)가 존재할 수 있거나, 복수의 서버가 독립적으로 동작할 수 있지만, 공유된 데이터를 갖는다. 추가적인 실시예에서 그리고 대규모 시스템에서 통상적인 것처럼, 애플리케이션 소프트웨어는 상이한 서버 컴퓨터, 동일한 서버 또는 일부 조합에서 실행되는 상이한 컴포넌트를 갖는, 컴포넌트로 구현될 수 있다.
일부 실시예에서, 서버(550)는 예측 모델링 모듈(552), 통신 모듈(556), 및/또는 데이터 저장 모듈(554)을 포함한다. 일부 실시예에서, 예측 모델링 모듈(552)은 모델링 공간 탐색 엔진(110), 모델링 기술의 라이브러리(130), 예측 문제의 라이브러리, 및/또는 모델링 배치 엔진(140)을 구현할 수 있다. 일부 실시예에서, 서버(550)는 통신 모델(556)을 사용하여 예측 모델링 모듈(552)의 출력을 클라이언트(510)에 전달하고 및/또는 프로세싱 노드(들)(570) 상의 모델링 기술의 실행을 감독할 수 있다. 명세서 전체에 걸쳐 설명된 모듈들은 임의의 적절한 프로그래밍 언어 또는 언어들(C++, C#, Java, LISP, BASIC, PERL 등)을 사용하여 소프트웨어 프로그램으로서 및/또는 하드웨어 디바이스(예를 들어, ASIC, FPGA, 프로세서, 메모리, 저장소 등)로서 전체적으로 또는 부분적으로 구현될 수 있다.
데이터 저장 모듈(554)은 예를 들어, 예측 모델링 라이브러리(130) 및/또는 예측 문제의 라이브러리를 저장할 수 있다. 데이터 저장 모듈(554)은 예를 들어, 스웨덴 웁살라에 소재한 MySQL AB에 의한 MySQL Database Server, 미국 캘리포니아주 버클리에 소재한 PostgreSQL Global Development Group에 의한 PostgreSQL Database Server, 또는 미국 캘리포니아주 레드우드 쇼어스에 소재한 ORACLE Copr.에 의해 제공되는 ORACLE Database Server를 사용하여 구현될 수 있다.
도 6 내지 도 8은 예측 모델링 시스템(100)의 하나의 가능한 구현을 나타낸다. 도 6 내지 도 8의 논의는 일부 실시예의 예시의 방식으로 주어지며, 결코 한정적인 것은 아니다.
전술한 절차를 실행하기 위해, 예측 모델링 시스템(100)은 다양한 클라이언트 및 서버 컴퓨터 상에서 실행되는 분산 소프트웨어 아키텍처(600)를 사용할 수 있다. 소프트웨어 아키텍처(600)의 목적은 동시에 풍부한 사용자 경험 및 연산 집약적인 프로세싱을 전달하는 것이다. 소프트웨어 아키텍처(600)는 기본 4-계층 인터넷 아키텍처의 변형을 구현할 수 있다. 도 6에 나타낸 바와 같이, 애플리케이션 및 데이터 계층을 통해 조정된 클라우드-기반 연산을 활용하기 위해 이 토대를 확장한다.
아키텍처(600)와 기본 4-계층 인터넷 아키텍처 간의 유사점 및 차이점은 다음을 포함할 수 있다:
(1) 클라이언트(610). 아키텍처(600)는 임의의 다른 인터넷 애플리케이션과 클라이언트(610)에 대해 본질적으로 동일한 가정을 한다. 주요 사용-사례는 복잡한 작업을 수행하기 위해 오랜 시간 동안 자주 액세스하는 것을 포함한다. 따라서, 타겟 플랫폼은 랩톱 또는 데스크톱 상에서 실행되는 풍부한 웹 클라이언트를 포함한다. 그러나, 사용자는 모바일 디바이스를 통해 아키텍처에 액세스할 수 있다. 따라서, 아키텍처는 비교적 얇은 클라이언트-측 라이브러리를 사용하여 Interface Service API에 직접 액세스하는 네이티브 클라이언트(612)를 수용하도록 설계된다. 물론, Java 및 Flash와 같은 임의의 크로스-플랫폼 GUI 계층도 마찬가지로 이러한 API에 액세스할 수 있다.
(2) 인터페이스 서비스(620). 이 아키텍처 층은 기본 인터넷 표시 층의 확장 버전이다. 머신 학습을 지시하는 데 사용될 수 있는 복잡한 사용자 상호 작용으로 인해, 정적 HTML, 동적 HTML, SVG 시각화, 실행 가능한 Javascript 코드, 심지어 자체-포함 IDE를 포함하여 대안적인 구현이 이 층을 통해 광범위하게 다양한 컨텐츠를 지원할 수 있다. 또한, 새로운 인터넷 기술이 발전함에 따라, 구현은 사용자 상호 작용 로직을 실행하기 위해 클라이언트, 표현 및 애플리케이션 층 간에 새로운 형식의 컨텐츠를 수용하거나 노동 분업을 변경해야 할 필요가 있을 수 있다. 따라서, 인터페이스 서비스 층(620)은 다양한 풍부함을 갖는 복수의 컨텐츠 전달 메커니즘과, 인증, 액세스 제어 및 입력 검증과 같은 공통 지원 설비를 함께 통합하기 위한 유연한 프레임워크를 제공할 수 있다.
(3) 분석 서비스(630). 아키텍처는 예측 분석 해결책을 생성하는 데 사용될 수 있으므로, 그 애플리케이션 계층은 분석 서비스 전달에 중점을 둔다. 머신 학습의 연산 강도는 클라우드 환경에서 실행되는 다수의 가상 "작업자(worker)"에 대한 머신-학습 작업의 동적 할당과 같은 표준 애플리케이션 계층에 대한 주요 향상을 유도한다. 실행 엔진에 의해 생성된 모든 유형의 로직 연산 요구에 대해, 분석 서비스 층(630)은 요청을 수용하고, 요청을 작업으로 분해하고, 작업을 작업자에게 할당하고, 작업 실행에 필요한 데이터를 제공하고, 실행 결과를 대조하도록 다른 층과 조정한다. 표준 애플리케이션 계층으로부터의 연관된 차이점도 존재한다. 예측 모델링 시스템(100)은, 사용자가 그들 자신의 머신-학습 기술을 개발하도록 허용할 수 있고, 따라서 일부 구현은 하나 이상의 풀 IDE를 제공할 수 있으며, 클라이언트, 인터페이스 서비스 및 분석 서비스 층에 걸쳐 그 기능이 분할된다. 그 후, 실행 엔진은 이러한 IDE를 통해 생성된 새롭고 향상된 기술을 장래의 머신-학습 연산에 통합한다.
(4) 작업자 클라우드(640). 효율적으로 모델링 연산을 수행하기 위해, 예측 모델링 시스템(100)은 이들을 더 작은 작업으로 분해할 수 있어, 이들을 클라우드 환경에서 실행 중인 가상 작업자 인스턴스에 할당한다. 아키텍처(600)는 상이한 유형의 작업자 및 상이한 유형의 클라우드를 허용한다. 각 작업자 유형은 특정 가상 머신 구성에 대응한다. 예를 들어, 디폴트 작업자 유형은 신뢰할 수 있는 모델링 코드에 대한 일반적인 머신-학습 기능을 제공한다. 그러나, 또 다른 유형은 사용자- 개발한 코드에 대해 추가적인 보안 "샌드박싱(sandboxing)"을 실시한다. 대안적인 유형은 특정 머신-학습 기술에 최적화된 구성을 제공할 수 있다. 분석 서비스 층(630)이 각 작업자 유형의 목적을 이해하는 한, 작업을 적절하게 할당할 수 있다. 유사하게, 분석 서비스 층(630)은 상이한 유형의 클라우드에 있는 작업자를 관리할 수 있다. 조직은 사설 클라우드에 인스턴스의 풀을 유지할 수 있을 뿐만 아니라 공용 클라우드에서 인스턴스를 실행하는 옵션을 가질 수 있다. 다른 종류의 상업용 클라우드 서비스 또는 심지어 독점적인 내부 서비스 상에서 실행되는 인스턴스의 상이한 풀을 가질 수도 있다. 분석 서비스 층(630)이 기능과 비용의 상충 관계를 이해하는 한, 적절하게 작업을 할당할 수 있다.
(5) 데이터 서비스(650). 아키텍처(600)는, 다양한 층에서 실행되는 다양한 서비스가 대응하는 다양한 저장 옵션으로부터 이익을 얻을 수 있는 것으로 가정한다. 따라서, 예를 들어, 임의의 유형의 영구 데이터를 위한 파일 저장소, 캐싱과 같은 목적을 위한 임시 데이터베이스, 및 장기 기록 관리를 위한 영구 데이터베이스와 같은 데이터 서비스(650)의 풍부한 어레이를 전달하기 위해 프레임워크를 제공한다. 이러한 서비스는 클라우드 작업자 및 IDE 서버에 대해 사용되는 가상 머신 이미지 파일과 같은 특정 유형의 컨텐츠에 대해 특수화될 수도 있다. 일부 경우, 데이터 서비스 계층(650)의 구현은 특정 유형의 데이터에 대한 특정 액세스 관용구를 실시할 수 있어, 다른 계층이 원활하게 조정할 수 있다. 예를 들어, 데이터 세트 및 모델 결과에 대한 포맷을 표준화한다는 것은, 분석 서비스 계층(630)이 작업자에게 작업을 할당할 때 사용자의 데이터 세트에 대한 참조를 단순히 전달할 수 있음을 의미한다. 그 후, 작업자는 데이터 서비스 계층(650)으로부터 이 데이터 세트에 액세스하고, 차례로 갖고 있는, 데이터 서비스(650)를 통해 저장된 모델 결과에 대한 참조를 반환할 수 있다.
(6) 외부 시스템(660). 임의의 다른 인터넷 애플리케이션과 마찬가지로, API의 사용은, 외부 시스템이 아키텍처(600)의 임의의 계층에서 예측 모델링 시스템(100)과 통합될 수 있게 한다. 예를 들어, 비즈니스 대시보드 애플리케이션은 그래픽 시각화 및 모델링 결과를 인터페이스 서비스 계층(620)을 통해 액세스할 수 있다. 외부 데이터 웨어하우스 또는 심지어 라이브 비즈니스 애플리케이션도 데이터 통합 플랫폼을 통해 분석 서비스 계층(630)에 모델링 데이터 세트를 제공할 수 있다. 보고 애플리케이션은 데이터 서비스 계층(650)을 통해 특정 기간으로부터 모든 모델링 결과에 액세스할 수 있다. 그러나, 대부분의 상황에서, 외부 시스템은 작업자 클라우드(640)에 대한 직접 액세스를 갖지 않을 것이고; 분석 서비스 계층(630)을 통해 이를 활용할 것이다.
모든 다층 아키텍처와 마찬가지로, 아키텍처(600)의 계층은 논리적이다. 물리적으로, 상이한 계층으로부터의 서비스가 동일한 시스템 상에서 실행될 수 있고, 동일한 계층의 상이한 모듈이 별개의 머신 상에서 실행될 수 있으며, 동일한 모듈의 복수의 인스턴스가 몇몇 머신에 걸쳐 실행될 수 있다. 마찬가지로, 한 계층의 서비스는 복수의 네트워크 세그먼트에 걸쳐 실행될 수 있으며, 다른 계층으로부터의 서비스는 다른 네트워크 세그먼트 상에서 실행될 수 있거나 실행되지 않을 수 있다. 하지만 논리적 구조는 개발자와 운영자의, 상이한 모듈이 어떻게 상호 작용하는지에 대한 기대를 조정하는 것을 도울 뿐만 아니라, 운영자에게 확장성, 신뢰성 및 보안성과 같은 서비스-레벨 요건을 밸런싱하는 데 필요한 유연성을 제공한다.
고-레벨 계층은 통상적인 인터넷 애플리케이션의 것과 상당히 유사한 것처럼 보이지만, 클라우드-기반 연산의 추가는, 정보가 시스템을 통해 어떻게 흐르는지를 실질적으로 변화시킬 수 있다.
인터넷 애플리케이션은 통상적으로 동기 및 비동기의 2개의 별개 유형의 사용자 상호 작용을 제공한다. 항공기 찾기 및 예약과 같은 개념적으로 동기식 동작의 경우, 사용자는 다음 요청을 하기 전에 요청을 하고 응답을 기다린다. 특정 기준을 충족하는 온라인 거래에 대한 경보 설정과 같은 개념적으로 비동기 동작의 경우, 사용자는 요청을 하고 장래의 어느 시간에 시스템이 그에게 결과를 통지할 것으로 예상한다.(통상적으로, 시스템은 사용자에게 초기 요청 "티켓"을 제공하고, 지정된 통신 채널을 통해 통지를 제공한다.)
반대로, 머신-학습 모델을 구축하고 정제하는 것은 중간의 어느 지점에서 상호 작용 패턴을 포함할 수 있다. 모델링 문제를 설정하는 것은 초기의 일련의 개념적으로 동기적인 단계를 포함할 수 있다. 그러나, 사용자가 시스템에게 대안적인 해결책의 연산을 개시하도록 명령하면, 대응 연산의 규모를 이해하는 사용자는 즉각적인 응답을 기대할 가능성이 작다. 피상적으로, 지연된 결과에 대한 이러한 예상은 상호 작용의 이 단계를 비동기로 보이게 만든다.
그러나, 예측 모델링 시스템(100)은 통지를 수신할 때까지 사용자가 "발사 후 망각(fire-and-forget)"하도록 강제하지 않으며, 즉, 문제와 그 자신의 관여를 중지시키지 않는다. 실제로, 데이터 세트를 계속 탐색하고 예비 결과가 도착하자마자 이를 검토할 것을 그에게 권장한다. 이러한 추가적인 탐색 또는 초기 지관은 모델-구축 파라미터를 "인-플라이트"로 변경하도록 그에게 고무시킬 수 있다. 그 후, 시스템은 요청된 변경을 프로세싱하고 프로세싱된 작업을 재할당할 수 있다. 예측 모델링 시스템(100)은 사용자의 세션 전반에 걸쳐 이러한 요청-및-수정 다이내믹을 연속으로 허용할 수 있다.
따라서, 분석 서비스 및 데이터 서비스 계층은 한편으로는 사용자로부터의 요청-응답 루프와 다른 한편으로는 작업자 클라우드로의 요청-응답 루프 사이를 중재할 수 있다. 도 7은 이러한 관점을 나타낸다:
도 7은, 예측 모델링 시스템(100)이 계층화된 모델로 반드시 꼭 맞춤화되지는 않는다는 것을 강조하고, 이는 각 계층이 대부분 그 계층 바로 아래의 계층에만 의존한다고 가정한다. 오히려, 분석 서비스(630) 및 데이터 서비스(650)는 사용자 및 연산을 협업하여 조정한다. 이러한 관점에서, 정보 흐름의 3개의 "열"이 있다:
(1) 인터페이스 <-> 분석 + 데이터. 가장 왼쪽의 흐름의 열(710)은 우선 사용자의 미가공 데이터 세트 및 모델링 요건을 정제된 데이터 세트 및 연산 작업 목록으로 변환한 다음, 이를 합쳐 사용자가 쉽게 이해할 수 있는 포맷으로 결과를 사용자에게 전달한다. 따라서 목표와 제약은 인터페이스 서비스(620)에서 분석 서비스(630)로 흐르며, 진행과 예외는 반대로 돌아간다. 병렬적으로, 미가공 데이터 세트와 사용자 주석은 인터페이스 서비스(620)에서 데이터 서비스(650)로 흐르며, 트레이닝된 모델과 그 성능 메트릭은 반대로 흐른다. 사용자는, 임의의 지점에서 분석 서비스(630) 및 데이터 서비스(650) 계층에 의한 변경 및 강제 조정을 개시할 수 있다. 이 동적 순환 흐름에 더하여, (예를 들어, 인터넷 서비스(620)가 분석 서비스(640)로부터 시스템 상태를 리트리빙하고 데이터 서비스(650)로부터 정적 컨텐츠를 검색할 때) 보다 통상적인 선형 상호 작용이 또한 존재함에 유의한다.
(2) 분석 + 데이터 <-> 작업자. 가장 우측의 흐름의 열(730)은 작업자를 프로비저닝하고, 연산 작업을 할당하고, 이러한 작업에 대한 데이터를 제공한다. 따라서, 작업 할당, 그 파라미터 및 데이터 참조는 분석 서비스(630)에서 작업자 클라우드(640)로 흐르며, 진행 및 예외는 반대로 흐른다. 정제된 데이터 세트는 데이터 서비스(650)로부터 작업자 클라우드(640)로 흐르고, 모델링 결과는 반대로 흐른다. 사용자로부터의 갱신된 지시는 분석 서비스 계층(630)이 인-플라이트 작업자를 인터럽팅하고 갱신된 모델링 작업을 할당하는 것을 강제할 뿐만 아니라, 데이터 서비스 계층(650)으로부터의 데이터 세트의 리프레시를 강제할 수 있다. 차례로, 갱신된 할당 및 데이터 세트는 결과의 흐름을 작업자로부터 다시 변경한다.
(3) 분석 <-> 데이터. 중간의 2개의 계층은 왼쪽과 오른쪽 열 사이를 중재하기 위해 자체 사이에서 조정한다. 이 트래픽(720)의 대부분은 클라우드 작업자의 실행 진행 및 중간 계산을 추적하는 데 관련된다. 그러나, 모델-구축 명령어에 대한 전술한 인-플라이트 변경에 응답할 때 특히 흐름은 복잡해질 수 있으며; 분석 및 데이터 서비스는 현재 연산 상태를 평가하고, 어떠한 중간 계산이 여전히 유효한지를 결정하며 새로운 연산 작업을 올바르게 구성한다. 물론, (분석 서비스가 데이터 서비스로부터 클라우드 작업자에 대한 규칙 및 구성을 리트리빙할 때) 또한 보다 통상적인 선형 상호 작용이 여기에서도 존재한다.
이러한 정보 흐름의 개념적 모델은 계층들 내의 기능 모듈의 배열에 대한 컨텍스트를 제공한다. 이는 더 높은 레벨의 블록에 애플리케이션 프로그래밍 인터페이스(API)를 제공하고 더 낮은 레벨의 블록에서 API를 소비하는 단순한 비상태 블록이 아니다. 오히려, 이는 사용자와 연산 간의 협업에 동적인 참여자이다. 도 8은 이들 기능 모듈의 배열을 나타낸다. 사용자의 관점에서, 인터페이스 서비스 계층은 몇몇 기능의 구분된 영역을 제공한다.
(1) 사용자/프로젝트 관리자(802). 각각의 머신-학습 프로젝트는 인터페이스의 프로젝트 관리 컴포넌트를 사용하여 프로젝트-레벨 파라미터, 책임 및 자원을 관리할 수 있는 적어도 하나의 할당된 관리자를 갖는다. 이 기능적 컴포넌트는 또한 시스템-레벨 관리 기능을 지원한다.
(2) 모니터링(810). 이 모듈은 컴퓨팅 인프라스트럭쳐 상에서 진단을 제공한다. 이는 분석 서비스 계층에서 대응하는 모듈(818)과 협업하여 각 작업자 인스턴스에 대한 실시간 및 각 연산 작업에 대한 총계 모두에서 연산 자원 사용을 추적한다.
(3) 기술 설계자(804). 이 모듈은 전술한 방법, 기술 및 작업 빌더를 사용하기 위한 그래픽 인터페이스를 지원한다. 이 그래픽 인터페이스가 어떻게 구현될 수 있는지의 예는 클라이언트(610)에서 실행되고 AJAX 요청을 통해 기술 설계자(804)와 통신하는 Javascript이며, 그래프를 사용자에게 그래픽으로 렌더링하고 변경을 서버에 다시 푸싱(pushing)한다.
(4) 기술 IDE(812). 전술한 바와 같이, 예측 모델링 시스템(100)의 일부 구현은 리프-레벨 작업을 구현하기 위해 기술 개발자에게 IDE에 대한 빌트인 액세스를 제공할 수 있다. 이러한 IDE는 Python 또는 R과 같은 특수 과학 컴퓨팅 환경과 같은 머신-학습에 사용되는 범용 프로그래밍 언어를 지원할 수 있다. 이 기능은 클라이언트(610), 인터페이스 서비스(620) 및 분석 서비스(630) 계층에 걸쳐 실행될 수 있다. 클라이언트 컴포넌트(610)는 AJAX를 통해 인터페이스 서비스 컴포넌트로 세션을 우선 등록하는 IDE 환경에 대한 Javascript 컨테이너를 다운로드 및 실행할 수 있다. 등록 요청을 인증 및 검증한 후에, 인터페이스 서비스 컴포넌트는 사용자의 프로젝트 데이터를 클라이언트(610)로 다운로드하고 세션을 분석 서비스 계층에서 실행 중인 전용 IDE 서버 인스턴스로 넘긴다. 이 서버 인스턴스는 그 후 웹 소켓을 통해 클라이언트(610)와 직접 통신한다.
(5) 데이터 도구(806). 이 모듈은, 모델 빌더가 데이터 세트를 특정하고, 이를 이해하고, 모델-구축을 위해 이를 준비할 수 있게 한다.
(6) 모델링 대시보드(814). 각 프로젝트는 그 자체 모델링 대시보드를 갖는다. 이 모듈의 인스턴스는 모델 빌더에게 제어 및 척도를 제공하여 프로젝트에 대한 모델링 프로세스를 론칭하고 도착한 대로 결과를 측정하고, 인-플라이트 조정을 수행한다. 어떤 모델링 기술이 어떤 데이터 세트에 대해 실행되는지 계산하고, 이러한 요건을 분석 서비스 계층에 전달한다. 일단 실행 엔진이 모델 구축을 시작하면, 이 모듈은 실행 상태와 제어를 제공한다.
(7) 직관(808). 일단 머신-학습 프로세스가 실질적인 결과를 생성하기 시작하면, 이 모듈은 모델 빌더에게 더 깊은 직관을 제공한다. 예는 텍스트 마이닝 개요, 예측자 중요도 및 각 예측자와 타겟 간의 일방적 관계를 포함한다. 이러한 직관의 대부분은 이해하기 쉽고 통계에 대한 깊은 지식을 필요로 하지 않는다.
(8) 예측(816). 일단 실행 엔진이 적어도 하나의 모델을 구축하면, 이 모듈은 새로운 데이터에 기초하여 예측을 하기 위한 인터페이스를 제공한다.
인터페이스 서비스 계층의 활동은 분석 서비스 계층에서 활동을 트리거한다. 전술한 바와 같이, 기술 IDE 및 모니터링 모듈은, 부분적으로 분석 서비스 계층에서 실행되도록 분할된다(모니터링 모듈(818) 및 기술 IDE 모듈(820) 참조). 이 레이어의 다른 모듈은 이하를 포함한다:
(1) 작업 큐(822). 각각의 프로젝트는 대응하는 모델링 대시보드 인스턴스로부터의 모델 연산 요청을 서비스하는 자체 작업 큐 인스턴스를 가질 수 있다. 작업은 프로젝트의 데이터 세트의 파티션에 대한 참조, 모델링 기술 및 프로젝트 내의 우선 순위를 포함한다. 그 후, 이 모듈은 작업의 우선 순위화된 목록을 구성 및 유지 관리한다. 연산 자원이 이용 가능할 때, 브로커(824)는 작업 큐로부터 다음 작업을 요청한다. 충분한 권한을 가진 사용자는 임의의 시간에 큐에서 모델링 작업을 추가, 제거 또는 다시 우선 순위화할 수 있다. 큐는 일시적인 DB 모듈(826)을 통해 지속되며, 그 백엔드 저장은 극도로 빠른 응답 시간을 제공한다.
(2) 브로커(824). 이들 모듈은 작업자를 인스턴스화하고, 이들에 작업을 할당하고, 이들의 건강을 모니터링한다. 하나의 브로커가 각 작업자 클라우드에 대해 실행될 수 있다. 브로커는 작업자 인스턴스를 동적으로 제공하고 종료하여 열린 작업 큐 플러스(plus) 안전한 버퍼로부터의 현재 요구 레벨을 서비스한다. 론칭시에, 각각의 작업자는 그 클라우드 환경에 대한 브로커에 자동으로 등록하여, 그 연산 기능에 대한 정보를 제공한다. 브로커 및 작업자는 매 수초마다 서로 심박 메시지를 전송한다. 작업자는 그 브로커와 충돌하거나 연락이 끊어지면 자동으로 재시작하고 재등록할 것이다. 브로커는 이용 가능한 자원의 풀에서 작업자를 폐기하고 너무 많은 심박 메시지가 누락되면 경고를 로그한다. 작업 큐에서 새로운 작업이 도착하고 작업자가 기존 작업을 완료하면, 브로커는 지속적으로 작업자 수와 이러한 작업자에 대한 작업의 할당을 재계산한다.
(3) 작업자 클라우드(640). 이 모듈은 작업자들의 풀(pool)을 포함한다. 각 작업자는 해당 클라우드 환경 내에서 실행 중인 가상 머신 인스턴스 또는 자체-포함 연산 자원의 다른 유닛이며, 대응 브로커로부터 작업을 수신한다. 작업자의 관점에서 볼 때, 작업은 프로젝트에 대한 참조, 프로젝트의 데이터 세트의 분할 및 모델링 기술을 포함한다. 할당된 모델링 기술의 각 작업에 대해, 작업자는 우선 모델링 결과에 대한 특별한 디렉토리 서브트리를 갖는 파일 저장 모듈(830)에 질의하여 프로젝트의 그 데이터 세트 분할에 대해 임의의 다른 작업자가 완료했는지를 확인할 수 있다. 단계를 프로세싱하는 것이 제1 작업자라면, 제1 작업자는 계산을 수행하고 이를 파일 저장소(830)에 저장하여 다른 작업자가 이를 재사용할 수 있다. 모델링 기술은 공통 모델링 작업 라이브러리의 작업으로부터 어셈블링되기 때문에, 모델링 기술에 걸쳐 작업 실행의 공통성의 상당한 레벨일 있을 수 있다. 작업 실행의 결과를 캐싱하는 것은 소비되는 연산 자원의 양을 상당히 감소시키도록 구현을 허용할 수 있다.
데이터 서비스 계층(650)은 다른 계층의 모듈을 지원하기 위해 다양한 상이한 저장 메커니즘을 제공한다.
(1) 임시 DB(826). 이 모듈은, 극히 빠른 액세스로부터 이익을 얻고 및/또는 일시적인 데이터를 위한 저장 메커니즘에 대한 인터페이스를 제공하고 그 저장 메커니즘을 관리한다. 일부 구현에서 자동 장애 조치가 있는 마스터-슬레이브 구성에 배치된 인-메모리 DBMS를 사용한다. 이 모듈은 객체를 키-값 쌍으로 저장하기 위한 인터페이스를 제공한다. 키는 특정 사용자 및 프로젝트에 링크되지만 여전히 매우 작다. 값은 스트링, 목록 또는 세트일 수 있다.
(2) 영구 DB(828). 이 모듈은 영구적인 데이터에 대한 저장 메커니즘에 대한 인터페이스를 제공하고 그 저장 메커니즘을 관리한다. 일부 구현에서, 이 모듈에 의해 처리되는 주요 유형의 데이터에는 JSON 객체를 포함할 수 있으며, 높은 가용성 및 고성능 모두를 위해 자동 장애 조치를 갖춘 클러스터에 배치되는, 확장성이 큰 논(non)-SQL 데이터베이스를 사용할 수 있다. 이 모듈을 통해 저장된 객체는 통상적으로 그 크기가 수 메가바이트까지의 범위이다.
(3) 파일 저장(830). 이 모듈은 파일에 대한 저장 메커니즘에 대한 인터페이스를 제공하고 그 저장 메커니즘을 관리한다. 이 모듈을 통해 저장된 데이터 유형은 업로드된 데이터 세트, 도출된 데이터, 모델 연산 및 예측을 포함한다. 이 모듈은 클라우드 저장소 톱 상의 파일 디렉토리 및 명명 규칙에 겹칠 수 있다. 또한, 클라우드 작업자가 이 모듈에 액세스하면, 저장된 파일을 로컬 저장소에 또한 일시적으로 캐싱할 수 있다.
(4) VM 이미지 저장소(832). 이 모듈은 IDE 및 작업자 인스턴스를 실행하는 데 사용되는 VM 이미지에 대한 저장소에 대한 인터페이스를 제공하고 그 저장소를 관리한다. 이는 이미지를 자족형 VM 컨테이너 포맷으로 저장한다. IDE 인스턴스의 경우, 세션에 걸쳐 사용자의 상태를 유지하면서, 새로운 작업자 인스턴스를 해당 작업자 유형의 템플릿으로부터 빈 사본으로서 로드한다.
이들 서비스는 함께, 다음을 비롯한, 광범위하게 다양한 정보를 관리한다:
(1) UI 세션(834): 활성 사용자 세션의 현재 상태를 렌더링하고 간단한 요청 인증 및 액세스 제어를 수행하는 데이터.
(2) UI 객체(836): UI에 의해 표시되는 컨텐츠.
(3) 캐시(838): 캐싱된 애플리케이션 컨텐츠.
(4) 시스템 구성(840): 컴퓨팅 인프라 스트럭처를 론칭하고 모델 검색 서비스를 실행하는 구성 파라미터.
(5) 시스템 상태(842): 시스템(600)의 모듈로부터 수집된 실시간 데이터.
(6) 사용자/프로젝트 관리자(844): 각 프로젝트의 설정 및 사용자 특권뿐만 아니라 개별 사용자 설정.
(7) 데이터 세트(846): 사용자에 의해 프로젝트를 위해 업로드된 데이터 파일.
(8) 모델링 계산(848): 중간 모델링 결과, 최종 맞춤화된 모델 및 계산된 예측.
(9) VM 이미지(850): 새로운 IDE 서버를 론칭하는 데 사용되는 이미지.
이 경우에도 전술한 특정 모듈(802-850)은 논리적 구성이다. 각 모듈은 많은 다른 소스 파일로부터의 실행 코드를 포함할 수 있으며, 주어진 소스 파일은 많은 다른 모듈에 기능을 제공할 수 있다.
시간외 예측
일부 실시예에서, 예측 모델링 시스템(100)은 시간 t 및 선택적으로 t+1,..., t+i에서 타겟 X의 값을 예측할 수 있는 시계열 모델을 포함하고, t 이전의 시간들에서 X의 관측을 하고, 선택적으로 t 이전의 시간들에서 다른 예측자 변수 P의 관측을 행한다. 일부 실시예에서, 예측 모델링 시스템(100)은 과거의 관측치를 분할하여 감독 학습 모델을 트레이닝하고, 그 성능을 측정하며, 정확도를 향상시킨다. 일부 실시예에서, 시계열 모델은 예를 들어, 상이한 래그(lag)에서의 타겟의 이전 값을 예측하는 유용한 시간-관련 예측 피처를 제공한다. 일부 실시예에서, 예측 모델링 시스템(100)은 시간이 진행되고 새로운 관측치가 도달함에 따라, 이러한 관측치 및 모델을 다시 맞춤화하는 비용에 있어서 새로운 정보의 양을 고려하여 시계열 모델을 리프레시한다.
시계열 모델의 유익한 사용을 예시하는 예가 이하에 설명된다. 이 예에서 슈퍼마켓 체인은 슈퍼마켓의 각 위치에 대해 다음 6주간의 일일 판매를 예측하기를 원한다. 이용 가능한 데이터는 10,000개의 위치로부터 이전 일일 판매의 3년치 및 다른 변수(예를 들어, 각 위치 주변의 인구 및 경제 성장, 휴일 및 주요 사회적 이벤트의 이력 및 계획 날짜, 및 체인 프로모션의 계획된 날짜)를 포함한다. 일부 실시예에서, 이용 가능한 데이터에 대해 트레이닝된 시계열 모델은 슈퍼마켓의 각 위치에 대한 다음 6 주간의 일일 판매를 정확하게 예측할 수 있다.
시계열 모델을 생성하고 사용하기 위한 기술의 일부 실시예가 이하에 설명된다. 데이터 과학자가 모델링 기술 빌더(220)로 예측 모델링 기술을 개발할 때, 데이터 과학자는 모델링 기술이 시계열 예측 문제에 특유하다는 것을 나타낼 수 있다. 모델링 기술 빌더(220)는 그 후 모델링 기술의 메타데이터에서 이러한 특성을 인코딩한다. 데이터 세트 자체는 또한 시계열 특정 메타데이터(예를 들어, 데이터가 생성된 날짜 범위, 관측치의 시간 분해능, 이미 발생한 다운-샘플링 등)를 가질 수 있다.
탐색 엔진(110)이 (예를 들어, 도 4에 나타낸 방법(400)의 단계(404)에서) 데이터 세트를 로드할 때, 데이터 세트가 시계열 데이터를 포함하는 것으로 보이는지 여부를 자동으로 검출할 수 있으며, 검출된다면, 시간 인덱스가 있는 것으로 보인다. 시간 인덱스는 시간 분해능 및 시간 스텝("시간 간격")을 포함할 수 있다. 시간 분해능은 시간이 유지되는 단위(예를 들어, 초 또는 일)이다. 예를 들어, 날짜(예를 들어, 모든 날짜)가 표준 날짜 포맷(예를 들어, mm/dd/yyyy)으로 인코딩되는 경우, 엔진(110)은 날짜를 분해능으로서 사용할 수 있다. 다른 예로서, 날짜(예를 들어, 모든 날짜)가 시, 분 및 초를 포함하는 경우, 엔진(110)은 시간 분해능으로서 초를 사용할 수 있다. 유사하게, 엔진(110)은 공통 시간 분해능으로서 임의의 적절한 시간 메트릭(예를 들면, 천년, 백년, 십년, 년, 분기, 계절, 월, 주, 일, 시간, 분, 초, 밀리 초, 마이크로초, 나노초 등)을 사용할 수 있다. 시간 스텝은 연속 관측치(예를 들어, 매일, 매주 또는 매년의 데이터) 사이의 시기간(예를 들어, 최소 시기간, 가장 통상적인 시기간, 사용자 특정 시기간 등)이다.
데이터 세트가 시간 분해능의 혼합을 갖는 시계열 데이터를 포함하는 경우, 엔진(110)은 시간 인덱스의 일부로서 가장 공통적인 분해능을 사용할 수 있거나, 모든 시간 데이터를 공통 분해능으로 변환한 후 "최저 공통 분해능"을 사용할 수 있다. 일부 실시예에서, 엔진(110)은 인덱스(예를 들어, 최적 인덱스)를 선택하기 위해 잠재적인 인덱스의 빈도 및 불일치를 가중화하는 내부 목적 함수를 사용한다. 예를 들어, 날짜 변수의 90%가 일(day) 분해능이고 10%가 초의 분해능인 경우, 목적 함수는, 일 분해능이 최상의 선택인 것으로 결정할 수 있다. 역의 혼합(90%의 초의 분해능, 10%의 일 분해능)은, 초의 분해능이 최상의 선택이라는 결정을 산출할 수 있다. 50% 혼합에서, 목적 함수는 일과 초 사이의 분해능(예를 들어, 시간)에 대한 절충이 최적인 것으로 결정할 수 있다. 목적 함수의 선택은 이전에 사용된 목적 함수의 공간에 대한 메타-머신 학습과 다양한 특성을 갖는 예측 문제에 대한 정확도에 의해 추가로 결정될 수 있다.
일부 실시예에서, 사용자는, 데이터 세트가 시계열 데이터 세트인지 또는 아닌지에 대한 탐색 엔진의 결정을 (예를 들어, 방법(400)의 단계(406)에서) 무시할 수 있으며, 데이터 세트의 처리를 시계열 데이터 세트로서 차단 또는 강제한다. 사용자가 데이터 세트의 처리를 시계열 데이터 세트로 강제로 선택하는 경우, 사용자는 어떠한 변수가 시간-기반인지, 데이터 포맷을 어떻게 인터프리팅하는지, 및/또는 시간 인덱스를 특정할 수 있다. 일부 경우에, 사용자는 주어진 시간 인덱스를 사용하도록 변수를 어떻게 변환하는지에 대한 정보를 제공할 수 있다.
자동으로 검출된 시계열 데이터 세트에 대해, 사용자는 제안된 시간 인덱스를 수용하거나, 임의의 자동으로 검출된 대안으로부터 선택하거나, 또는 커스텀 시간 인덱스를 특정할 수 있으며, 이는 또한 커스텀 시간 인덱스를 사용하기 위해 변수를 어떻게 변환할지에 대해 특정하는 것을 필요로 할 수 있다. 일단 시간 인덱스가 수용, 선택 또는 특정되면, 다른 시간 변수가 서로 오프셋으로 변환되어 예측 피처로 사용될 수 있다. 예를 들어, 데이터 세트가 시간 인덱스로서 mm/dd/yyyy를 사용하고 변수들 중 하나가 "생일"인 경우, 엔진(110)은 다른 이벤트(예를 들어, "결혼", "자녀 생일" 등)에 대한 "생일"("연령"으로도 알려짐)로부터의 오프셋을 연산할 수 있다.
사용자가 시계열 데이터 세트를 확인 또는 지시하고 시간 인덱스를 확인, 선택 또는 특정한 후에, 엔진(110)은 (예를 들어, 방법(400)의 단계(408)에서) 데이터 세트를 평가하고 (예를 들어, 방법(400)의 단계(410)에서) 이 평가를 사용자에게 제시한다. 이 표현은 시간에 따라 타겟 및 예측자 변수값을 개별적으로 또는 그룹별로 나타내는 도면을 포함할 수 있다. 일부 실시예에서, 표현은 하나 이상의 시간 래그에서 과거 값에 대한 각 시계열 변수의 현재값의 의존성을 나타낸다. 데이터 세트가 시계열과 단면 변수의 혼합을 포함하는 패널 데이터 세트인 경우, 표현은 같은 시기간에서 또는 서로 다른 래그에서 단면 변수들 간의 종속성을 나타낼 수 있다.
사용자는 트레이닝 윈도우의 끝(예를 들어, 트레이닝에 사용된 데이터의 시간 범위)과 검증 윈도우의 시작(예를 들어, 검증에 사용된 데이터의 시간 범위) 또는 홀드아웃 윈도우(예를 들어, 홀드아웃 테스트에 사용된 데이터의 시간 범위) 사이의 갭인 데이터에서 "스킵 범위"를 나타낼 수 있다. 일부 경우에, 최종 이력 관측치와 최초 예측 사이의 지연에 대한 운영 또는 물류 상의 이유가 존재한다. 슈퍼마켓 예에서, 지난 주에 대한 데이터는 일요일에 본사에 모두 도달하여 완벽하게 깨끗할 수 있다. 그러나, 예측 모델이 완료된 후에도 운영상 모든 매장 위치에 대한 예측 정보를 전달하고 매장이 예측에 응답하여 운영을 조정하는 데 며칠이 걸릴 수 있다. 마찬가지로, 이력 데이터를 수신하거나 클리닝하는 데 지연이 있을 수 있다. 어느 경우에도, 실용적인 목적은 최종의 이용 가능한 이력 관측치로부터 특정 갭 이후에 예측을 개시하는 것일 수 있다. 스킵 범위는, 엔진(110)이 그 자리에서 이 갭을 갖는 후보 예측 모델을 평가할 수 있게 한다.
사용자는 원하는 예측 범위(예를 들어, 모델에 의해 예측될 장래 시기간의 수 또는 모델에 의해 예측될 별개의 장래 이벤트의 수)를 나타낼 수 있다. 일부 경우에, 이 범위는 예를 들어, 다음 분기 매출과 같이 단지 하나의 관측치일 수 있다. 다른 것 중에서, 슈퍼마켓 체인의 예와 같이, 범위는 몇몇 장래 시기간을 포함할 수 있으며, 이 예에서는 42일이다.
일부 경우, 엔진(110)은 데이터의 빈도 및/또는 데이터의 총 시기간 수에 기초하여 예상 범위를 제시할 수 있다. 예를 들어, 일일 데이터 및 비교적 적은 수의 시기간으로, 엔진(110)은 7일 예상을 제시할 수 있는 반면, 비교적 많은 수의 시기간으로, 30일 예상을 제안할 수 있다. 월별 데이터의 경우, 엔진(110)은 시기간의 수에 따라 3개월, 6개월 또는 12개월 예상을 제시할 수 있다. 분기별 데이터로, 엔진(110)은 4분기, 8분기 또는 12분기 예상을 제시할 수 있다. 연간 데이터의 경우, 엔진(110)은 5년, 10년 또는 20년 예상을 제시할 수 있다.
일부 경우에, 엔진(110)은 (예를 들어, 사용자가 비정상적으로 짧은 예상 범위를 특정한 경우) 예상 범위의 관측치 범위 또는 배수(예를 들어, 논리적 배수)와 동등한 검증 범위를 사용한다.
시계열 데이터의 경우, 엔진(110)은 트레이닝 범위의 세트, 스킵 범위에 의해 오프셋된 대응하는 검증 범위 세트의 세트 및 홀드아웃 범위로 (예를 들어, 방법(400)의 단계(418 및 422)에서) 크로스 검증 및 홀드아웃을 구현할 수 있다. 엔진(110)은 이용 가능한 데이터의 양에 따라 조정할 수 있는 트레이닝 및 검증 범위의 디폴트 타겟 수를 가질 수 있다. 상대적으로 적은 시기간을 갖는 데이터 세트는 더 적은 트레이닝 및 검증 범위로 분할될 수 있으며, 상대적으로 많은 시기간을 갖는 데이터 세트는 더 많은 트레이닝 및 검증 범위로 분할될 수 있다.
데이터의 크기, 데이터의 빈도, 스킵 범위의 길이, 및/또는 예상 범위에 따라, 엔진(110)은 트레이닝 범위에 대한 길이를 선택할 수 있다. 예를 들어, 일일 관측치및 스킵 및 예상 범위가 주, 월 또는 년(또는, 대응하여 7, 30 및 365와 같은 일의 배수)으로 표시되면, 엔진은 주, 월 또는 년의 전체 수의 트레이닝 범위를 선택할 수 있다. 이러한 트레이닝 윈도우의 길이는 총 관측치 수, 총 데이터 양, 시간 경과에 따른 타겟 및 예측자 변수의 총 변동량, 변수에 의해 나타나는 계절적 변동량, 상이한 시간 윈도우에 대한 이 변수의 변동성의 일관성, 및/또는 예상 기간의 타겟 길이에 따를 수 있다. 엔진(110)은 트레이닝 윈도우의 길이(예를 들어, 최적 길이)를 선택하기 위해 이들 요인을 가중화하는 내부 목적 함수를 사용할 수 있다. 예를 들어, 디폴트는 전체 데이터 세트에 대해 균등하게 분할되어진 5개의 트레이닝 및 검증 범위일 수 있다. 그러나, 보다 긴 시기간 상에서의 변동량이 낮으면, 엔진(110)은 시간 윈도우를 단축시킬 수 있다. 또는, 데이터에 연간 계절성이 있는 경우, 엔진(110)은 단지 3개의 윈도우를 사용하여 수 년간의 데이터를 각 범위에 배치한다. 또는, 데이터 세트 내에 높은 변동을 나타내는 특정 기간이 수 개인 경우, 엔진(110)은 각 윈도우가 이들 기간 중 하나를 포함하도록 데이터를 분할할 수 있다. 목적 함수의 선택은 이전에 사용된 목적 함수의 공간에 대한 메타-머신 학습과 다양한 특성을 갖는 예측 문제에 대한 정확도에 의해 결정될 수 있다.
원하는 수의 트레이닝 및 검증 범위와 이들 범위의 길이에 스킵 범위를 더한 길이로, 엔진(110)은 데이터 세트를 트레이닝 및 검증 범위의 일관된 시리즈로 분할할 수 있다. 패널 데이터의 경우, 각 트레이닝 및 검증 쌍은 (예를 들어, 섹션 관측치를 폴드에 랜덤하게 할당함으로써) 폴드로 추가로 분할될 수 있다. 슈퍼마켓 예에서, 트레이닝 범위는 30주, 스킵 범위는 1주, 검증 범위는 6주이고, 3년 동안 근사적으로 4개의 트레이닝 세트를 산출할 수 있다. 그러나 10,000개의 매장이 있기 때문에, 성능 향상을 위해 후술하는 바와 같이 대로 이 매장은 추가로 "다운-샘플링"될 수 있다. 또한, 엔진은 모델 하이퍼-파라미터 및 혼합 모델을 튜닝하는 데 사용할 트레이닝 및 검증 윈도우 내의 서브-윈도우를 예약할 수 있다.
일부 실시예에서, 홀드아웃 데이터는 최종 시간 윈도우에만 있다. 그러나, 데이터 세트가 패널 데이터이고, 다운-샘플링된 경우, 홀드아웃 데이터는 다른 데이터와 동일한 기간으로부터의 데이터일 수 있지만, 다른 중첩되지 않는 샘플로부터의 데이터일 수 있다.
단면 모델(예를 들어, 방법(300)의 단계(350)의 설명 참조)과 같이, 엔진(110)은 데이터 세트를 통해 반복할 수 있으며, 트레이닝 윈도우의 작은 부분에 대해 각각의 모델을 트레이닝하고, 그 부분에 대해 그 성능을 평가하고, 그 성능에 기초하여 추가 데이터에 대한 모델을 계속 테스트할지 여부를 결정할 수 있다. 시계열 데이터의 경우, 각 부분은 트레이닝 윈도우의 최종 관측에서 종료될 수 있으며, 초기 부분은, 그 부분 트레이닝 윈도우가 검증 윈도우의 논리적 배수가 되도록 시작할 수 있으며, 더 큰 부분은 더 큰 배수를 사용할 수 있다. 예를 들어, 주 단위로 측정된 검증 윈도우는 트레이닝 윈도우의 종료 4주 전에 시작하는 제1 부분, 8주 전에 시작하는 제2 부분, 12주 전에 시작하는 제3 부분을 사용할 수 있다. 월 단위로 측정된 검증 윈도우는 트레이닝 윈도의 종료 3월 전에서 시작하는 제1 부분, 6월 전에 시작하는 제2 부분, 9월 전에 시작하는 제3 부분, 12월 전에 시작하는 제4 부분 등을 사용할 수 있다. 년 단위로 측정되는 검증 윈도우는 트레이닝 윈도우의 종료 4년 전에 시작하는 제1 부분, 8년 전에 시작하는 제2 부분, 12년 전에 시작하는 제3 부분을 사용할 수 있고, 대안적으로, 부분 기간은 트레이닝 윈도우의 종료 전 5, 10 및 15년일 수 있다. 부분은 선형적으로(예를 들어, 3, 6, 9, 12 기간 또는 4, 8, 12, 16 기간) 또는 기하학적으로(예를 들어, 3, 6, 12, 24 기간 또는 4, 8, 16, 32 기간) 증가할 수 있다. 문제 도메인 및/또는 데이터 분석에 기초한 특이한 스케줄은 부분의 지수적 증가도 가능하다(예를 들어, 3, 6, 24, 192 기간 또는 4, 8, 32, 256 기간).
실행 속도를 향상시키고 자원 소비를 감소시키기 위해, 엔진(110)은 디폴트 다운-샘플링을 제안할 수 있다. 다운-샘플링에는 연대순 및 단면의 2개의 유형이 있다. 연대순 다운-샘플링에서, 각 분할 내의 전체 관측치 수는 고정된 퍼센티지로 감소될 수 있거나, 더 긴 시간 분해능으로 집계될 수 있다. 예를 들어, 100억 회의 관측치를 포함하는 시간 윈도우는 천만 회의 관측치로 감소될 수 있다. 또는, 매 밀리초마다 관측치가 있는 데이터의 윈도우는 매 분마다 집계된 관측치를 가질 수 있다. 이 경우, 다운-샘플링 윈도우 내의 모든 관측치는 집계된 관측에 대한 단일값으로 축소될 수 있다. 이 집계값은 예를 들어, 시작값, 종료값, 최대 극값, 평균값 또는 몇몇 변동 특성을 설명하기 위해 가중화 함수를 통해 연산된 값일 수 있다. 엔진(110)은 대응 시간 윈도우 내의 타겟 및 예측자의 변동성에 의한 관측치의 잠재적인 감소를 가중화하는 목적 함수를 사용할 수 있다. 예를 들어, 관측치의 1000x 감소는 변동성에서 5%로 자리 맞춤(justify)될 수 있다. 목적 함수의 선택은 이전에 사용된 목적 함수의 공간에 대한 메타-머신 학습과 다양한 특성을 갖는 예측 문제에 대한 정확도에 의해 추가로 결정될 수 있다.
연대순 다운-샘플링은, 예를 들어, 데이터의 변동이 데이터의 주파수보다 낮은 극도로 높은 주파수 데이터에 대해 사용될 수 있다. 일반적으로 단면 다운-샘플링은 시간이 지남에 따라 그 거동이 크게 변하지 않는 매우 많은 수의 섹션이 있을 수 있기 때문에 보다 통상적이다. 슈퍼마켓 체인의 예의 경우, 각 매장 위치마다 하나씩 10,000개의 섹션이 있다. 변동의 대부분은 매장에 걸친 상대적으로 낮은 단면 변동과 함께 연대순 요인으로 인한 것일 수 있다. 예를 들어, 유사한 매장은 실제로 훨씬 적은 수의 대표 그룹에 속할 수 있다. 따라서, 엔진(110)은 섹션의 랜덤 서브샘플, 이 경우에는 저장 위치를 단지 구성하고, 하나 이상의 서브샘플에 대한 예측 모델을 트레이닝시킬 수 있다. 예를 들어, 10,000개의 모든 매장을 사용하는 대신에, 엔진(110)은 1,000개의 매장을 랜덤하게 선택하여 트레이닝할 수 있다. 또한, 크로스 검증이 단면 차원을 따라 사용되는 경우, 엔진(110)은 이러한 다운-샘플링을 적용할 수 있다. 예를 들어, 5-폴드 교차-검증의 경우, 엔진은 2,000개의 매장의 5 폴드 대신 400개 매장의 5 폴드를 사용할 수 있다. 다운-샘플링의 퍼센티지는 샘플의 다중 특성의 균형을 맞추거나 사용자에 의해 특정되는 목적 함수에 의해 결정되는 섹션 수의 함수에 의해 결정될 수 있다. 일부 경우에, 많은 상이한 예측 문제에 대한 메타-머신 학습에 의해 다운-샘플링 퍼센티지의 선택이 정제될 수 있다.
시계열 모델로부터 정확한 예측을 생성하는 한가지 과제는, 이들 예측이 트레이닝 및 검증 시간 윈도우의 선택에 민감할 수 있다는 것이다. 일부 실시예에서, 엔진은 이 감도를 자동으로 평가한다. 예를 들어, 엔진(110)은 실행될 때 모든 모델링 기술에 대한 시간 윈도우 선택에 대한 감도를 평가할 수 있다. 다른 예로서, 엔진(110)은 모델이 예측 정확도의 특정 임계값을 초과한 후에 이 감도를 평가할 수 있다. 세번째 옵션은 상대적인 예측 정확도에 기초하여 톱 모델의 감도를 평가하는 것이다. 네번째 옵션은 사용자가 요청할 때 요구에 따라 감도 분석을 실행하는 것이다. 감도 분석은 모델을 슬라이딩 트레이닝 및 검증 윈도우로 맞춤화한 후 윈도우에 포함된 포인트들에 따라 모델 정확도가 어떻게 변하는지 측정하는 것을 포함할 수 있다. 예를 들어, 그래프는 수직 축에 모델 정확도를 플롯팅하고 수평 축에 트레이닝 윈도우의 시작 관측치를 플롯팅할 수 있다.
일단 엔진이 시계열 모델의 맞춤을 완료하고 이를 사용자에게 제시하면(예를 들어, 방법(400)의 단계(446)), 사용자는 모델 성능에 대한 상이한 트레이닝 데이터 윈도우의 영향을 추가로 탐구할 수 있다. 사용자 인터페이스는, 사용자가 특정 맞춤 모델 또는 맞춤 모델의 그룹을 선택하고, 트레이닝 및 검증 윈도우를 조정하도록 허용할 수 있어, 홀드아웃 윈도우에 있지 않은 임의의 관측치를 포함할 수 있다. 엔진이 하이퍼-파라미터 튜닝을 위해 서브-윈도우를 사용하지 않은 경우, 모델의 원래 맞춤 중에 계산된 최적의 하이퍼-파라미터가 새로운 윈도우로 모델을 다시 맞춤화할 때 사용될 수 있다. 네스팅된 트레이닝 및 검증 윈도우가 이용 가능한 경우, 엔진은 예약된 윈도우에서 최적의 하이퍼-파라미터를 자동으로 재계산하고 및/또는 최적의 하이퍼-파라미터를 재계산할지 또는 원래 계산된 것을 사용할지 여부를 사용자가 선택하도록 허용할 수 있다.
사용자가 홀드아웃 결과를 검토한 후에(예를 들어, 방법(400)의 단계(450)), 사용자는 트레이닝, 검증 및 홀드아웃 윈도우로부터의 데이터의 임의의 조합을 사용하여 모델의 임의의 서브세트를 다시 맞춤화할 수 있다. 홀드아웃 윈도우로부터의 데이터는 통상적으로 가장 최근 데이터이므로, 모델의 맞춤에서 이를 포함시키는 것은 장래 값을 예측하는 데 있어 모델의 정확도를 향상시킬 수 있다. 따라서, 새로운 예측자를 만들기 위해 모델을 배치하기 전에, 그 최종 관측치가 홀드아웃 윈도우의 최종 관측치인 트레이닝 데이터에 대해 모델을 다시 맞춤화할 수 있다. 이러한 다시 맞춤화에 사용하기 위한 제1 관측치의 선택은 감도 분석 동안 계산된 트레이닝 윈도우의 크기(예를 들어, 최적 크기)에 의존할 수 있다. 사용자는 예측 문제의 감도 및/또는 도메인 지식에 대한 사용자의 분석에 기초하여 계산된 시작 포인트를 무시할 수 있다.
시계열 모델링 기술의 일부 실시예
도 9를 참조하면, 시계열 예측 모델링을 위한 방법(900)은 단계(910-980)를 포함할 수 있다. 단계(910)에서, 시계열 데이터가 얻어진다. 시계열 데이터는 하나 이상의 데이터 세트를 포함할 수 있다. 각각의 데이터 세트는 복수의 관측치를 포함할 수 있다. 각각의 관측치는 (1) 관측치와 연관된 시간의 표시 및 (2) 하나 이상의 변수의 값을 포함할 수 있다. 단계(920)에서, 시계열 데이터의 시간 간격이 결정된다. 단계(930)에서, 시계열 데이터의 하나 이상의 변수가 타겟으로서 식별된다. 선택적으로, 시계열 데이터의 하나 이상의 변수가 또한 피처로서 식별될 수 있다. 단계(940)에서, 시계열 데이터에 의해 표현된 예측 문제와 연관된 "예상 범위" 및 "스킵 범위"가 결정된다. 예상 범위는 타겟의 값이 예측되는 시기간의 지속 시간을 나타낼 수 있다. 스킵 범위는 예상 범위에서 가장 빠른 예측과 연관된 시간과, 예측 범위에서의 예측이 기초로 하는 최근 관측치와 연관된 시간 사이의 시간 래그를 나타낼 수 있다.
단계(950)에서, 트레이닝 데이터가 시계열 데이터로부터 생성된다. 트레이닝 데이터는 적어도 하나의 데이터 세트의 관측치의 제1 서브세트를 포함한다. 관측치의 제1 서브세트는 관측치의 트레이닝-입력 및 트레이닝-출력 컬렉션을 포함한다. 트레이닝-입력 및 트레이닝-출력 컬렉션에서 관측치와 연관된 시간은 각각 트레이닝-입력 시간 범위 및 트레이닝-출력 시간 범위에 대응한다. 스킵 범위는 트레이닝-입력 시간 범위의 끝을 트레이닝-출력 시간 범위의 시작으로부터 분리한다. 트레이닝-출력 시간 범위의 지속 시간은 적어도 예상 범위만큼 길다. 단계(960)에서, 테스팅 데이터가 시계열 데이터로부터 생성된다. 테스팅 데이터는 적어도 하나의 데이터 세트의 관측치의 제2 서브세트를 포함한다. 관측치의 제2 서브세트는 관측치의 테스트-입력 및 테스트-유효성 검증 컬렉션을 포함한다. 테스트-입력 및 테스트-유효성 검증 컬렉션 내의 관측치와 연관된 시간은 각각 테스트-입력 시간 범위 및 테스트-유효성 검증 시간 범위에 대응한다. 스킵 범위는 테스트-입력 시간 범위의 끝을 테스트-유효성 검증 검사 시간 범위의 시작 부분에서 분리한다. 시험-검증 시간 범위의 지속 시간은 적어도 예상 범위만큼 길다. 단계(970)에서, 예측 모델이 트레이닝 데이터에 맞춤화된다. 단계(980)에서, 맞춤화된 모델이 테스팅 데이터에 대해 테스트된다.
단계(910)에서, 시계열 데이터가 획득된다. 시계열 데이터는 임의의 적절한 기술(센서를 사용하여 측정되거나, 통신 네트워크를 통해 수신되거나, 컴퓨터-판독 가능 매체 등으로부터 로드되는 것, 등)을 사용하여 임의의 적절한 소스로부터 얻어질 수 있다. 시계열 데이터는 하나 이상의 데이터 세트를 포함할 수 있으며, 그 각각은 하나 이상의 관측치를 포함할 수 있다. 데이터 세트는 전술한 바와 같이, 데이터의 각각의 "섹션"에 대응할 수 있다. 데이터 세트 내의 각각의 관측치는 그 관측치와 연관된 시간의 표시(예를 들어, 타임스탬프)를 포함할 수 있다. 관측치와 연관된 시간은, 관측치의 값이 측정, 보고, 수신될 때 등의 시간일 수 있다. 관측치와 연관된 "시간"은 날짜 및/또는 시간, 또는 임의의 다른 적절한 시간 데이터를 포함할 수 있다.
단계(920)에서, 시계열 데이터의 시간 간격이 결정된다. 일부 실시예에서, 데이터의 시간 간격은 데이터와 연관된 메타데이터에 의해 명시적으로 나타내어진다. 일부 실시예에서, 데이터의 시간 간격은 데이터를 분석함으로써(예를 들어, 관측치와 연관된 시간 표시자의 시간 분해능 및/또는 연속 관측치와 연관된 시간들 사이의 간격에 기초하여) 결정된다.
데이터 세트에서의 관측치 사이의 시간 간격은 균일하거나 불균일할 수 있다. 데이터 세트의 관측치 사이의 시간 간격이 균일하면, 균일한 간격은 데이터 세트의 시간 간격일 수 있다. 데이터 세트의 관측치 간의 시간 간격이 불균일한 경우, 수정된 데이터 세트의 관측치 간의 시간 간격이 균일하도록 데이터 세트가 수정될 수 있다. 수정된 데이터 세트에 대한 시간 간격은, 예를 들어, 목적 함수(예를 들어, 가중화된 목적 함수)를 원래의 데이터 세트에 적용함으로써 결정될 수 있다. 목적 함수는, 예를 들어, (1) 불균일한 시간 간격들 각각을 나타내는 연속 관측치 쌍의 각각의 비율, 및/또는 (2) 불균일 시간의 지속 시간에 기초하여, 수정된 시간 간격을 결정할 수 있다. 일부 실시예에서, 수정된 시간 간격은 최단 공통 기간(예를 들어, 불균일 기간 각각의 정수배인 최단 기간)이다.
불균일 시간 간격을 갖는 원래의 데이터 세트는 원래의 데이터 세트의 관측치를 샘플링(예를 들어, 다운-샘플링) 및/또는 집계함으로써 수정된 균일 시간 간격을 갖는 수정된 데이터 세트로 변환될 수 있다. 원래의 데이터 세트의 관측치를 다운-샘플링하는 것은 원래의 데이터 세트의 관측치에 의해 커버되는 시기간의 수정된 시간 간격의 각 인스턴스에 대해: 시계열 데이터의 시간 간격의 인스턴스에 대응하는 시간과 연관된 원래의 데이터 세트의 모든 관측치를 식별하는 것, 식별된 관측치를 집계하여 집계 관측치를 생성하고, 집계 관측치를 수정된 데이터 세트에 삽입하는 것을 포함할 수 있다. 식별된 관측치의 세트를 집계하는 것은 집계 관측치에서 각 변수의 값을 (1) 식별된 관측치 중 가장 초기에 포함된 대응 변수값, (2) 가장 최근의 식별된 관측치에 포함된 대응 변수값, (3) 식별된 관측치 포함된 대응하는 변수값의 최대값, (4) 식별된 관측치에 포함된 대응하는 변수값의 최소값, (5) 식별된 관측치에 포함된 대응하는 변수값의 평균, (6) 식별된 관측치에 포함된 대응 변수값의 함수의 값으로 설정함으로써 수행될 수 있다.
시계열 데이터의 데이터 세트들 간의 시간 간격은 균일하거나 불균일할 수 있다. 데이터 세트들 사이의 시간 간격이 균일하다면, 그 균일한 간격은 시계열 데이터의 시간 간격일 수 있다. 데이터 세트들 사이의 시간 간격이 불균일하다면, 수정된 데이터 세트들 사이의 시간 간격이 균일하도록 하나 이상의 데이터 세트가 수정될 수 있다. 시계열 데이터의 수정된 시간 간격은 데이터 세트의 간격으로부터 선택되거나 임의의 다른 적절한 기술을 사용하여 결정될 수 있다. 예를 들어, 시계열 데이터의 수정된 시간 간격은, (1) 불균일 시간 간격의 각각을 나타내는 데이터 세트에 포함된 관측치의 각각의 비율, 및/또는 (2) 데이터 세트의 불균일 시간 간격의 지속 시간에 기초하여 목적 함수(즉, 가중화된 목적 함수)를 사용하여 계산될 수 있다. 일부 실시예에서, 시계열 데이터의 수정된 시간 간격은 가장 짧은 공통 기간(예를 들어, 데이터 세트의 불균일 시간 간격 각각의 정수배인 최단 기간)이다. 데이터 세트의 시간 간격을 수정하기 위한 기술의 일부 실시예가 위에 설명되었다.
방법(900)의 일부 실시예에서, 피처 엔지니어링이 시계열 데이터에 대해 수행될 수 있다. 이러한 피처 엔지니어링은 예를 들어, 시계열 데이터의 시간 간격이 결정되기 전 또는 후에 수행될 수 있다. 일부 실시예에서, 시계열 데이터에 대한 피처 엔지니어링을 수행하는 것은: 시간을 나타내는 값을 갖는 시계열 데이터에서 제1 변수를 식별하는 것; 제2 변수의 값들을 생성하는 것으로서, 제2 변수의 각각의 값은 제1 변수의 시간 값과 기준 시간 값 사이의 오프셋이고; 및 제2 변수를 시계열 데이터에 가산하는 것(예를 들어, 제2 변수의 값이 도출된 제1 변수의 값을 포함하는 관측치에 제2 변수의 각 값을 가산함)을 포함할 수 있다. 일부 실시예에서, 제1 변수는 시계열 데이터로부터 제거될 수 있다. 일부 실시예에서, 기준 시간은 이벤트의 날짜(예를 들어, 출생, 결혼, 학교 졸업, 고용주에 대한 고용 개시, 학교 졸엄, 특정 직책에서의 업무 개시 등)이다. 이 피처 엔지니어링 기술은 절대 시간값을 상대 시간값으로 변환하는 데 사용될 수 있으며, 이는 상이한 기간의 상이한 데이터 세트의 데이터에서 패턴(예를 들어, 엔티티의 연령과 관련된 패턴)의 식별을 매우 용이하게 할 수 있으므로, 이러한 패턴과 관련된 값의 정확한 예측을 매우 용이하게 할 수 있다.
일부 실시예에서, 피처 엔지니어링을 수행하는 것은 시계열 데이터를 시간적으로 다운-샘플링하는 것을 포함한다. 시계열 데이터를 시간적으로 다운-샘플링하기 위한 몇몇 기술을 전술하였다. 시계열 데이터를 시간적으로 다운-샘플링하는 것은 시계열 데이터에 기초하여 시계열 모델링 기술의 효율성을 향상시킬 수 있다(예를 들어, 연산 자원 사용을 감소시킴).
방법(900)의 일부 실시예에서, 그래픽 정보(예를 들어, 그래프 또는 차트)는 사용자 인터페이스를 통해 제시(예를 들어, 표시)될 수 있다. 그래픽 정보는 하나의 변수값의 변화와 다른 변수값의 상관된 변화 사이의 시간 래그를 나타낼 수 있다. 이러한 상관은 임의의 적절한 기술을 사용하여 검출될 수 있다.
단계(930)에서, 시계열 데이터의 하나 이상의 변수가 타겟으로서 식별된다. 타겟은 예를 들어, 시계열 데이터와 연관된 메타데이터, 예측 문제에 대한 설명 및/또는 사용자 입력에 기초하여 식별될 수 있다. 선택적으로, 시계열 데이터의 하나 이상의 변수가 또한 피처로서 식별될 수 있다. 피처는 예를 들어, 시계열 데이터와 연관된 메타데이터, 예측 문제에 대한 설명, 및/또는 사용자 입력에 기초하여 식별될 수 있다.
단계(940)에서, 시계열 데이터에 의해 표현된 예측 문제와 연관된 예상 범위가 결정된다. 예상 범위는 타겟의 값이 예측되는 기간의 지속 시간을 나타낼 수 있다. 예상 범위는 (1) 시계열 데이터의 시간 간격, (2) 시계열 데이터에 포함된 관측치의 수, (3) 관측치에 의해 시계열 데이터에 포함되는 시기간, (4) 마이크로초, 밀리초, 초, 분, 시간, 일, 주, 개월, 분기, 계절, 년, 십년, 백년 및 천년으로 구성된 그룹에서 선택된 자연 기간, (5) 사용자 입력 등에 기초하여 결정될 수 있다. 일부 실시예에서, 예상 범위는 시계열 데이터의 시간 간격의 정수배이다. 일반적으로, 시계열 데이터의 관측치 수가 증가함에 따라 예상 범위가 증가할 수 있다.
단계(940)에서, 시계열 데이터에 의해 표현된 예측 문제와 관련된 스킵 범위가 결정된다. 스킵 범위는 예상 범위에서 가장 빠른 예측과 연관된 시간과 예상 범위에서의 예측이 기초로 하는 최근 관측치와 연관된 시간 사이의 시간 래그를 나타낼 수 있다. 스킵 범위는 적어도 부분적으로, 시계열 데이터의 컬렉션에서의 대기 시간(latency), 시계열 데이터의 통신에서의 대기 시간, 시계열 데이터 분석에서의 대기 시간, 시계열 데이터의 분석의 통신에서의 대기 시간, 및/또는 시계열 데이터의 분석에 기초한 액션 구현의 대기 시간에 기초하여 결정될 수 있다. 이러한 대기 시간은 예를 들어, 사용자 입력 및/또는 시계열 데이터와 연관된 메타데이터에 기초하여 결정될 수 있다. 일부 실시예에서, 스킵 범위는 시계열 데이터와 연관된 메타데이터에 기초하여 결정되거나 사용자에 의해 특정된다.
단계(950)에서, 트레이닝 데이터가 시계열 데이터로부터 생성된다. 트레이닝 데이터는 적어도 하나의 데이터 세트의 관측치의 제1 서브세트를 포함한다. 관측치의 제1 서브세트는 관측치의 트레이닝-입력 및 트레이닝-출력 컬렉션을 포함한다. 트레이닝-입력 및 트레이닝-출력 컬렉션 내의 관측치와 연관된 시간은 각각 트레이닝-입력 시간 범위 및 트레이닝-출력 시간 범위에 대응한다. 스킵 범위는 트레이닝-입력 시간 범위의 끝을 트레이닝-출력 시간 범위의 시작으로부터 분리한다. 트레이닝-출력 시간 범위의 지속 시간은 적어도 예상 범위만큼 길다.
일부 실시예에서, 트레이닝-입력 시간 범위의 지속 시간은 시계열 데이터의 관측치의 총수, 변수 중 적어도 하나의 값의 시간에 따른 변화량, 적어도 하나의 변수의 값의 정기적인 변동의 양, 복수의 기간에 걸친 변수 중 적어도 하나의 변수의 값의 변동의 일관성, 및/또는 예상 범위의 지속 시간에 기초하여 결정된다.
일부 실시예에서, 모든 트레이닝 데이터에 대해 모델을 트레이닝하기보다는, 서브세트에 대한 예측 모델을 트레이닝할 목적으로 트레이닝 데이터의 서브세트가 식별된다. 트레이닝 데이터의 서브세트에 기초하여 모델을 트레이닝하는 것은 모든 트레이닝 데이터에 기초하여 모델을 트레이닝하는 것보다 적은 연산 자원(및 시간)을 사용할 수 있다. 일부 실시예에서, 트레이닝 데이터의 각 서브세트는 트레이닝-입력 시간 범위의 종료 시간에서 끝난다. 트레이닝 데이터 서브세트는 트레이닝-입력 시간 범위 내에서 상이한 시간에 시작될 수 있고 및/또는 상이한 샘플링 레이트로 트레이닝-입력 시간 범위에서 관측치를 샘플링할 수 있다. 트레이닝 데이터 서브세트의 지속 시간은 예상 범위의 지속 시간의 정수배일수 있다.
일부 실시예에서, 트레이닝 데이터는 다운-샘플링될 수 있다(예를 들어, 시간적으로 다운-샘플링되거나 단면 다운-샘플링됨). 트레이닝 데이터는 다운-샘플링된 시간 간격을 선택하고 다운-샘플링된 시간 간격에 따라 트레이닝 데이터의 각각의 데이터 세트를 다운 샘플링함으로써(예를 들어, 전술한 기술들을 사용하여) 시간적으로 다운-샘플링될 수 있다. 트레이닝 데이터는 하나 이상의 데이터 세트를 트레이닝 데이터로부터 제거함으로써 단면 다운-샘플링될 수 있다. 일부 실시예에서, 트레이닝 데이터는 시간적으로도 다운-샘플링되고 단면으로도 다운-샘플링된다.
단계(960)에서, 테스팅 데이터가 시계열 데이터로부터 생성된다. 테스팅 데이터는 적어도 하나의 데이터 세트의 관측치의 제2 서브세트를 포함한다. 관측치의 제2 서브세트는 관측치의 테스트-입력 및 테스트-유효성 검증 컬렉션을 포함한다. 테스트-입력 및 테스트-유효성 검증 컬렉션 내의 관측치와 연관된 시간은 각각 테스트-입력 시간 범위 및 테스트-유효성 검증 시간 범위에 대응한다. 스킵 범위는 테스트-입력 시간 범위의 끝을 테스트-유효성 검증 시간 범위의 시작에서 분리한다. 테스트-유효성 검증 시간 범위의 지속 시간은 적어도 예상 범위만큼 길다.
일부 실시예에서, 테스트-입력 시간 범위의 지속 시간은 시계열 데이터의 전체 관측치수, 변수 중 적어도 하나의 값의 시간에 따른 변화량, 적어도 하나의 변수의 값의 정기적인 변화량, 복수의 기간에 걸친 변수들 중 적어도 하나의 변수의 값의 변화의 일관성, 및/또는 예상 범위의 지속 시간에 기초하여 결정된다.
일부 실시예에서, 테스팅 데이터의 서브세트는 모든 트레이닝 데이터에 대해 모델을 트레이닝하기보다는 서브세트에 대한 예측 모델을 테스트하기 위한 목적으로 식별된다. 테스팅 데이터의 서브세트에 대해 모델을 테스트하는 것은 모든 트레이닝 데이터에 대해 모델을 테스트하는 것보다 적은 연산 자원(및 시간)을 사용할 수 있다. 일부 실시예에서, 테스팅 데이터의 각 서브세트는 테스트-입력 시간 범위의 종료 시간에 종료한다. 테스팅 데이터 서브세트는 테스트-입력 시간 범위 내에서 다른 시간에 시작될 수 있고, 및/또는 상이한 샘플링 레이트로 테스트-입력 시간 범위에서 관측치를 샘플링할 수 있다. 테스팅 데이터 서브세트의 지속 시간은 예상 범위의 지속 시간의 정수배일 수 있다.
일부 실시예에서, 테스팅 데이터는 다운-샘플링(예를 들어, 시간적 다운-샘플링 및/또는 단면 다운-샘플링)될 수 있다. 시간 및 단면 다운-샘플링에 대한 일부 기술은 전술하였다.
단계(970)에서, 예측 모델이 트레이닝 데이터에 맞춤화된다. 단계(980)에서, 맞춤화된 모델은 테스팅 데이터에 대해 테스트된다. 상호 유효성 검증(네스팅된 상호 유효성 검증을 포함하되 이에 한정되지 않음) 및 홀드아웃 기술은 예측 모델을 맞춤화 및/또는 테스트하는 데 사용될 수 있다. 상호 유효성 검증을 위해, 시계열 데이터는 단면 및/또는 시간적으로 분할될 수 있다.
예측 문제에 대한 예측 모델을 선택하기 위한 방법(300)의 일부 실시예가 시계열 예측 문제에 대한 시계열 예측 모델을 선택하는 데 사용될 수 있다. 일부 실시예에서, 시계열 데이터의 하나 이상의 피처의 모델-특유 예측값이 (예를 들어, 이하에서 설명되는 방법(1000)의 실시예를 사용하여) 결정될 수 있다. 일부 실시예에서, 시계열 예측 모델은 (예를 들어, 본원에 설명되는 기술을 사용하여) 혼합될 수 있다. 일부 실시예에서, (예를 들어, 본원에 설명되는 기술 및/또는 성능 향상을 사용하여) 시계열 예측 모델이 배치 및/또는 리프레시될 수 있다. 일부 실시예에서, 시계열 데이터의 2개 이상의 변수(예를 들어, 피처) 간의 상호 작용 강도가 (예를 들어, 본원에 설명되는 기술을 사용하여) 결정될 수 있다.
유니버셜 피처 중요도
감독 머신 학습 문제를 고려할 때, 중요한 과제는 종종 어떤 피처가 타겟에 대해 가장 예측 가능한 값을 갖는지를 측정하는 것이다. 이러한 피처의 중요도를 측정하는 것은, (1) 일반적으로 예측 문제를 이해하고, (2) 특정의 맞춤화된 모델이 예측 결과를 어떻게 생성하는지를 이해하는, 예측 모델링의 2개의 개별 스테이지에서 유용할 수 있다.
목적 (1)을 위해, 피처 중요도의 메트릭은 데이터 세트의 평가(예를 들어, 방법(400)의 단계(408)), 사용자에 대한 평가의 제시(예를 들어, 방법(400)의 단계(410)), 사용자가 데이터 세트를 어떻게 정제하는지(예를 들어, 방법(400)의 단계(412)), 및/또는 어떤 모델링 기술이 시도하거나 시도를 제시하는지(예를 들어, 단계(422 및 424))를 알릴 수 있다. 목적 (2)를 위해, 피처 중요도의 메트릭은 혼합된 모델의 자동화 개발(예를 들어, 방법(400)의 단계(432))을 알릴 수 있고, 대안적인 모델의 상대적인 성능을 이해하도록 사용자를 도울 수 있다(예를 들어, 방법(400)의 단계(446)).
실제로, 제1 목적을 위해 피처 중요도를 결정하는 것은 일반적으로 특정 모델 또는 모델 패밀리(예를 들어, 랜덤 포레스트)의 컨텍스트 내에서 발생한다. 물론, 각 모델은 피처 중요도를 측정하기 위한 디바이스로서 이점과 단점을 가질 수 있다. 따라서 몇몇 상이한 유형의 모델을 사용하여 피처 중요도를 계산하는 것은 향상된 이해를 전달할 수 있다. 예를 들어, 랜덤 포리스트, 일반화된 가산 모델, 및 지원 벡터 머신은 머신 학습을 위한 근본적으로 상이한 유형의 모델이며 동일한 데이터 세트에 대해 동일한 피처의 중요도의 상이한 척도를 생성할 수 있다. 이러한 차이는 예측 문제의 구조에 대한 더 깊은 직관을 제공할 수 있으며 추가 탐색의 길을 제시한다. 목적 (2)를 위해, 피처 중요도는 일반적으로 고려 중인 모델(들)에특유하다.
임의의 모델에 대한 피처 중요도를 계산하기 위한 기술의 일부 실시예가 이하 설명된다.
탐색 엔진(110)은, 데이터 세트(또는 그 임의의 샘플) 및 모델링 기술이 주어지면, 유니버설 부분 의존성을 사용하여 임의의 피처의 중요도를 계산할 수 있다. 먼저, 엔진(110)은 모델링 기술을 사용하여 샘플에 맞춤화된 예측 모델에 대한 정확도 메트릭을 얻는다. 엔진(110)은 처음부터 이러한 맞춤을 수행하거나 이전 맞춤을 사용할 수 있다. 그 후, 주어진 피처에 대해, 엔진(110)은 모든 관측치에 걸쳐 모든 값을 취하고, 이들을 셔플링(shuffling)하고, 관측치에 이를 재할당한다(예를 들어, 랜덤하게 이를 재할당함). 이러한 랜덤 셔플링은 그 피처에 대한 임의의 예측값을 감소(예를 들어, 파기)시킬 수 있다. 그 후, 엔진은 셔플링된 피처 값으로 데이터 세트에 대해 모델을 리스코어링하여, 정확도 메트릭에 대한 새로운 값을 생성할 수 있다. (선택적으로, 셔플링된 데이터 세트에 대해 맞춤화된 모델을 리스코어링하기 전에, 엔진은 모델을 셔플링된 데이터 세트로 다시 맞춤화할 수 있음.) 모델의 정확도의 감소는, 예측값이 얼마나 많이 손실되었는지를 나타내며, 따라서 모델에 대한 그리고/또는 모델링 기술의 범위 내에서 피처의 중요도를 나타낸다.
모델링 기술 및/또는 하나의 모델에 대한 하나의 피처의 중요도를 계산하기 위한 전술한 기술을 사용하여, 엔진은 피처를 반복하여 모델 및/또는 모델링 기술 내의 피처의 상대적 중요도 결정하고, 모델 및/또는 모델링 기술 또는 모두에 걸쳐 피처의 상대적 중요도를 결정하기 위해 모델 및/또는 모델에 대해 반복할 수 있다.
목적 (1)을 충족시키기 위해, 엔진(110)은 일반적으로 피처 중요도에 대한 예시적인 결과를 생성하는 모델링 기술의 목록을 유지할 수 있다. 데이터 세트를 평가할 때, 엔진(110)은 이러한 모델링 기술의 전부 또는 일부를 자동으로 실행할 수 있다. 엔진은 데이터 세트의 속성을 기초로 실행할 모델링 기술을 선택할 수 있다. 사용자 인터페이스는 사용된 각각의 모델링 기술에 대해 개별적으로, 또는 사용된 모든 모델링 기술에 걸쳐 상대적으로 피처 중요도 값을 표시할 수 있다. 엔진(110)은 또한 사용자로 하여금 모델링 기술 라이브러리(130)로부터 임의의 모델링 기술을 선택하여 피처 중요도를 측정하는 데 사용하도록 허용할 수 있다.
사용자가 예측 문제를 이해하는 것을 돕는 것 이외에, 엔진(110)은 추가적인 자동화된 분석을 가이드하기 위해 피처 중요도의 이러한 애플리케이션으로부터의 결과를 사용할 수 있다. 예를 들어, 전반적으로 중요도가 높게 스코어링된 피처의 경우, 엔진이 이러한 피처의 상호 작용을 탐색하는 데 더 많은 자원을 할당할 수 있다. 전반적으로 중요도가 낮게 스코어링된 피처의 경우, 엔진은 데이터 세트로부터 이러한 피처를 완전히 탈락시킬 수 있다. 일부 피처가 일부 모델 또는 모델링 기술에 대해 높은 중요도를 갖고 다른 모델 또는 모델링 기술에 대해 낮은 중요도를 갖는 낮은 경우, 엔진은 예측 모델에 대한 더 깊은 검색을 지시하고, 더 많은 모델링 기술을 시도하고 모델 공간 탐색 프로세스에서 더 많은 데이터를 더 일찍 사용할 수 있다.
목적 (2)를 충족시키기 위해, 엔진은 맞춤화된 모델에 대한 피처 중요도 값을 자동으로 또는 요구에 따라 계산할 수 있다. 자동으로, 엔진(110)은 모든 모델 또는 그 부분에 대한 피처 중요도 값을 계산할 수 있다. 부분은 임의의 적절한 방식으로 계산될 수 있다. 예를 들어, 부분은 N개의 톱 수행 모델, 특정 성능 메트릭에 대해 최소한 일정 수준의 성능 임계값을 충족하는 모든 모델, 또는 그 성능 메트릭이 톱 모델의 성능의 주어진 부분 내에 있는 모든 모델을 포함할 수 있다. 일부 실시예에서, 엔진은 이용 가능한 연산 자원을 고려하여, 이들 자원에 비례하여 더 크거나 작게 되도록 부분을 조정할 수 있다.
일부 실시예에서, 사용자는 요구시에 피처 중요도 계산을 요청할 수 있다. 일부 경우에, 사용자는 주어진 모델에 대한 일부 또는 모든 피처의 중요도를 확인하기를 원할 수 있다. 다른 경우에, 사용자가 다른 모델에 걸쳐 일부 또는 모든 피처의 중요도를 확인하기를 원할 수 있다.
일반적으로 예측 문제 또는 특정 모델에 대한 피처 중요도 값을 제공하기 위해 전술한 기술을 사용하는 것은 많은 이점을 가질 수 있다. 예를 들어:
(1) 피처가 일반적으로 또는 적어도 모든 정확한 모델에 있어서 유익하지 않다면, 그 피처에 대응하는 데이터의 수집이 중지될 수 있다. 일부 경우에 소스 위치로부터 데이터를 추출하는 노동 또는 심지어 데이터 공급자에게 지불하는 비용과 같이, 피처를 이용 가능하게 만드는 데 실제로 비용이 든다.
(2) 피처 중요도와 측정된 피처 중요도의 사용자의 기대 차이가 추가적인 조사를 보증할 수 있다. 불일치를 설명하는 데이터 세트에 오류가 있는 것으로 판명될 수 있거나, 그 차이가 실제이며 예측 문제에 대한 새로운 직관을 제공하는 것으로 판명될 수 있다.
(3) 일부 경우에, 가능한 한 적은 피처를 사용하여 예측을 하는 모델을 생성하는 것이 바람직할 수 있다. 이러한 경우, 사용자는 특정 모델링 기술을 재실행할 수 있거나 모든 모델링 기술 중에서 가장 중요한 중요도의 N개 피처만을 사용하거나 특정 임계값을 초과하는 중요도 값을 갖는 피처만으로 검색을 재실행할 수 있다.
(4) 어떤 피처가 중요한 도움인지 아는 것은 가장 중요한 피처를 변환하고 조합하는 다른 방식을 실험함으로써 사용자가 예측 모델을 향상시키는 것을 도울 수 있다.
데이터 세트의 하나 이상의 피처의 예측값을 결정하기 위한 기술의 일부 실시예
도 10은 초기 예측 문제를 나타내는 초기 데이터 세트의 하나 이상의 피처의 예측값(예를 들어, "중요도")을 결정하기 위한 방법(1000)을 나타낸다. 일부 실시예에서, 예측 모델링 시스템(100)은 데이터 세트의 평가 중에(예를 들어, 방법(400)의 단계(408)), 및/또는 데이터 세트를 프로세싱할 때(예를 들어, 방법(300)을 참조하여 전술한 바와 같음), 방법(1000)(또는 그 일부)을 수행할 수 있다. 일부 실시예에서, 방법(1000)은 임의의 예측 모델 또는 예측 모델링 기술에 대한 임의의 데이터 세트 피처의 예측값을 결정하는 데 사용될 수 있다.
단계(1010)에서, 시스템(100)은 복수의 예측 모델링 절차를 수행한다. 각 예측 모델링 절차는 예측 모델과 연관된다. 각 모델링 절차를 수행하는 것은 연관된 예측 모델을, 초기 예측 문제를 나타내는 초기 데이터 세트의 적어도 일부에 맞추는 것을 포함한다. 초기 데이터 세트는 이전 관측치를 포함하고, 각 관측치는 일반적으로 초기 데이터 세트의 피처 중 적어도 일부의 값을 포함한다.
단계(1020)에서, 시스템(100)은 맞춤화된 예측 모델 각각의 제1 정확도 스코어를 결정한다. 맞춤화된 모델의 제1 정확도 스코어는, 맞춤화된 모델이 초기 예측 문제의 하나 이상의 결과를 예측하는 정확도를 나타낸다. 초기 데이터 세트의 홀드아웃 부분에 대해 모델을 테스트하는 것에 한정되지 않지만 이를 포함하여, 모델의 정확도를 결정하기 위한 임의의 적절한 메트릭 및/또는 기술이 사용될 수 있다.
단계(1030)에서, 시스템(100)은 초기 데이터 세트 내의 관측치에 걸쳐 특정 피처 F의 값을 "셔플링"하고, 이에 의해 수정된 예측 문제를 나타내는 수정된 데이터 세트를 생성한다. 일부 실시예에서, 셔플링은 피쳐 F의 값을 원래 관측치로부터 상이한 관측치로 (예를 들어, 랜덤하게) 재할당함으로써 수행된다. 이 셔플링 동작은 피처 F에 대한 임의의 예측값을 감소(예를 들어, 파기)시킬 수 있다. 데이터 세트로부터 피처 F를 제거하거나 각 관측치에 피처 F에 대한 동일값을 할당하는 것에 한정되지 않지만 이를 포함하여, 데이터 세트 내의 피처 F의 예측값을 감소(예를 들어, 파기)하기 위한 다른 기술이 가능하다. 일부 실시예에서, 피처 F의 예측값을 임계값 미만으로 감소시키는 임의의 기술이 사용될 수 있다.
단계(1040)에서, 시스템(100)은 수정된 예측 문제에 대한 맞춤화된 예측 모델의 제2 정확도 스코어를 결정한다. 제2 정확도 스코어는, 맞춤화된 모델이 수정된 예측 문제의 하나 이상의 결과를 예측하는 정확도를 나타낸다. 수정된 데이터 세트의 홀드아웃 부분에 대해 모델을 테스트하는 것에 한정되지 않지만 이를 포함하여, 모델의 정확도를 결정하기 위한 임의의 적절한 메트릭 및/또는 기술이 사용될 수 있다. 일부 실시예에서, 맞춤화된 모델은 제2 정확도 스코어를 결정하기 전에 수정된 데이터 세트에 다시 맞춤화된다.
단계(1050)에서, 예측 모델링 절차(또는 맞춤화된 모델) 각각에 대해, 시스템(100)은 피처 F의 예측값을 계산한다. 일부 실시예에서, 모델링 절차 또는 모델에 대한 피처 F의 예측값은 (예를 들어, 모델에 대한 제1 및 제2 정확도 스코어 간의 차이에 기초하여) 정확도의 변화에 기초하여 계산된다. 일부 실시예에서, 제1 및 제2 정확도 스코어에 기초하여 모델링 절차 또는 모델에 대한 피처의 예측값을 결정하기 위해, 제1 정확도 스코어와 제2 정확도 사이의 차이가 증가함에 따라 예측값이 일반적으로 증가하게 하는 함수가 사용된다. 개별적인 예측값이 특정 모델링 절차 또는 모델에 특유할 수 있기 때문에, 단계(1050)에서 결정된 예측값은 본원에서 "모델-특유 예측값"으로 칭해질 수 있다.
단계(1060)에서, 시스템(100)은 다른 피처의 예측값을 분석할지 여부를 결정한다. 일부 실시예에서, 이러한 결정은 사용자 입력에 기초하여 이루어진다(예를 들어, 사용자에 의해 특정된 모든 피처가 분석될 때까지 시스템이 피처의 예측값을 계속하여 분석함). 일부 실시예에서, 시스템은 데이터 세트의 모든 피처를 분석한다. 일부 실시예에서, 시스템은 데이터 세트 내의 피처의 서브세트만을 분석한다. 이러한 피처는 임의의 적절한 기준에 기초하여 선택될 수 있다. 시스템이 단계(1060)에서 분석할 다른 피처가 있는 것으로 결정하면, 시스템은 그 피처에 대해 단계(1030-1050)를 반복한다.
일부 실시예에서, 방법(1000)은 단계(1010)에서 수행되는 예측 모델링 절차를 선택하는 추가 단계(미도시)를 포함한다. 시스템(100)은 예를 들어, 예측 모델링 기술의 라이브러리(130)로부터 모델링 절차를 선택할 수 있다. 일부 실시예에서, 시스템(100)은 2개 이상의 상이한 예측 모델링 패밀리로부터 2개 이상의 모델링 절차를 선택한다. 예측 모델링 패밀리의 예는 선형 회귀 기술(예를 들어, 일반화된 가산 모델), 트리-기반 기술(예를 들어, 랜덤 포리스트), 지원 벡터 머신, 신경망(예를 들어, 다층 퍼셉트론(perceptron)) 등을 포함할 수 있다. 예를 들어, 시스템(100)은 트리 패밀리(예를 들어, 랜덤 포리스트 모델링 절차), 선형 회귀 패밀리로부터의 다른 모델링 절차(예를 들어, 일반화된 가산 모델) 및 지원 벡터 머신 모델링 절차를 선택할 수 있다.
시스템(100)은, (1) 모델-특유 예측값에 기초하여 데이터 세트를 프로세싱하고, (2) 사용자에게 데이터 세트의 평가를 제시하고, (3) 모델-특유 예측값에 기초하여 혼합을 위한 예측 모델을 선택하고, (4) 평가된 모델 및 연관된 모델-특유 예측값을 사용자에게 제시하고, (5) 모델-특유 예측값에 기초하여 예측 문제에 대한 잠재적인 예측 모델링 해결책의 공간을 평가하는 프로세스 중에 자원을 할당하고, (6) 피처의 모델-특유 예측값에 기초하여 피처의 모델-독립 예측값(피처 중요도 값)을 계산하는 것에 한정되지 않지만 이를 포함하여, 방법(1000)을 통해 결정된 하나 이상의 모델-특유 예측값(피처 중요도 값)을 사용하여 임의의 적절한 작업(예를 들어, 예측 모델링 작업)을 수행할 수 있다. 일부 실시예에서, 모델-독립 피처 중요도 값을 계산한 후에, 시스템(100)은 모델-독립 피처 중요도 값을 사용하여 임의의 적절한 작업(예를 들어, 이전 문장에서 설명된 바와 같은 작업들 (1)-(5))을 수행할 수 있다.
일부 실시예에서, (예를 들어, 방법(400)의 단계(408)에서) 데이터 세트의 평가 중에 및/또는 (예를 들어, 방법(300)을 참조하여 전술한 바와 같이) 데이터 세트를 프로세싱할 때, 예측 모델링 절차의 일부로서, 시스템(100)은 모델-특유 예측값에 기초하여 피처 생성 및/또는 피처 엔지니어링을 수행한다. 예를 들어, 시스템(100)은 데이터 세트로부터 "덜 중요한" 피처를 정리할 수 있다. 이러한 맥락에서, 피처의 예측값이 임계 전압 미만인 경우, 피처가 데이터 세트 내의 피처의 M개의 최저 예측값 중 하나를 갖는 경우, 피처가 데이터 세트 내의 피처의 N개의 최고 예측값 중 하나를 갖지 않는 경우 등의 경우에 피처는 "덜 중요함"으로 분류될 수 있다. 다른 예로서, 시스템은 데이터 세트 내의 "더 중요한" 피처로부터 도출된 피처를 생성할 수 있다. 이러한 맥락에서, 피처의 예측값이 임계값보다 큰 경우, 피처가 데이터 세트 내의 피처의 N개의 최고 예측값 중 하나를 갖는 경우, 피처가 데이터 세트 내의 M개의 최저 예측값 중 하나를 갖지 않는 경우 등의 경우에, 피처는 "더 중요함"으로 분류될 수 있다. 일부 실시예에서, 시스템(100)은 방법(1000)을 사용하여 도출된 피처의 예측값을 계산할 수 있다.
일부 실시예에서, 시스템(100)은 (예를 들어, 방법(400)의 단계(410)에서) 데이터 세트의 평가를 사용자에게 제시(예를 들어, 표시)할 수 있고, 제시된 평가는 데이터 세트 내의 피처의 예측값 및/또는 이로부터 도출된 정보를 포함할 수 있다. 예를 들어, 하나 이상의 모델링 절차 또는 모델에 대해, 시스템(100)은 (1) "더 중요한" 및/또는 "덜 중요한 피처"를 식별하고, (2) 피처의 예측값을 표시하고, (3) 그 예측값에 의해 피처를 등급화하고, 및/또는 (4) 덜 중요한 피처의 수집이 중단되고 및/또는 덜 중요한 피처가 데이터 세트로부터 제거될 것을 추천할 수 있다. 사용자에게 데이터 세트의 평가를 제시하는 것에 응답하여, 시스템(100)은 (예를 들어, 방법(400)의 단계(412)에서) 데이터 세트의 정제를 특정하는 사용자 입력을 수신할 수 있다.
일부 실시예에서, 시스템(100)은 모델-특유 예측값에 기초하여 혼합을 위한 예측 모델을 선택하고 (예를 들어, 방법(400)의 단계(432)에서) 선택된 모델을 혼합한다. 시스템(100)은 혼합을 위한 예측 모델을 선택하기 위해 임의의 적절한 기술을 사용할 수 있다. 예를 들어, 시스템(100)은 혼합을 위한 "상보적인 톱 모델"을 선택할 수 있다. 이러한 맥락에서 "보완적인 톱 모델"은 다른 메커니즘을 통해 높은 정확도를 달성하는 정확한 모델을 포함할 수 있다. 시스템(100)은, 모델의 정확도가 임계 정확도보다 큰 경우, 모델이 맞춤화된 모델 중에서 N개의 최고 정확도 값 중 하나를 갖는 경우, 모델이 맞춤화된 모델 중에서 M개의 최저 정확도 값 중 하나를 갖지 않는 경우 등의 경우에 모델을 "톱" 모델로서 분류할 수 있다. 시스템은, (1) 모델에 대한 가장 중요한 피처(예를 들어, 모델에 대한 최고 예측값을 갖는 피처)가 상이한 경우, 또는 (2) 제1 모델에 중요한 피처가 제2 모델에 중요하지 않고, 제1 모델에 중요하지 않은 피처가 제2 모델에 중요한 경우, 2개의 모델을 "상보적" 모델로서 분류할 수 있다. 이러한 맥락에서, 피처가 모델에 대해 높은 예측값을 갖는 경우, 피처는 모델에 대해 "중요"할 수 있다(예를 들어, 최고 예측값, 최고의 N개의 예측값 중 하나, 임계값보다 큰 예측값, 등). 이러한 맥락에서, 피처가 모델에 대한 낮은 예측값을 갖는 경우, 피처는 모델에 대해 "중요하지 않을" 수 있다(예를 들어, 최저 예측값, 최저 N개의 예측값 중 하나, 임계값보다 낮은 예측값, 등). 일부 실시예에서, 시스템(100)은 혼합을 위한 2개 이상의 상보적인 톱 모델을 선택하기 위해 전술한 분류 기술을 사용할 수 있다.
일부 경우에, 상보적인 톱 모델을 혼합하는 것은 컴포넌트 모델에 비해 매우 높은 정확도를 갖는 혼합된 모델을 산출할 수 있다. 반대로, 비상보적인 모델을 혼합하는 것은 컴포넌트 모델보다 상당히 더 높은 정확도로 혼합된 모델이 산출하지 않을 수 있다.
일부 실시예에서, 시스템(100)은 (예를 들어, 방법(400)의 단계(446)에서) 평가된 예측 모델 및 연관된 모델-특유 예측값을 사용자에게 제시할 수 있다. 일부 실시예에서, 시스템(100)은 예측 모델(예를 들어, 톱 모델)의 서브세트에 대해서만 피처 중요도 값을 계산 및/또는 표시한다. 피처 중요도 값을 사용자에게 제시하는 것은, 사용자가 평가된 모델의 상대적인 성능을 이해하는 것을 도울 수 있다. 예를 들어, 제시된 피처 중요도 값에 기초하여, 사용자(또는 시스템(100))는 다른 톱 모델보다 우수한 톱 모델 M 및 모델 M에 중요하지만 다른 톱 모델에는 중요하지 않은 하나 이상의 피처 F를 식별할 수 있다. 사용자는 다른 톱 모델에 비해, 모델 M이 피처 F에 의해 나타내어지는 정보를 더 잘 사용하는 것으로 결론을 내릴 수 있다(또는 시스템(100)이 이를 나타낼 수 있다). 이러한 발견에 기초하여, 모델 M에 의해 예상되는 결과에 관심이 있는 당사자는 피처 F를 측정 또는 제어하기 위해 시스템에 투자할 수 있으며, 이는, 모델이 예상하고 있는 결과를 개선할 수 있다.
일부 실시예에서, 예측 문제에 대한 잠재적인 예측 모델링 해결책의 공간을 평가하는 프로세스 동안(예를 들어, 방법(300)을 수행하는 동안), 시스템(100)은 예측 문제를 나타내는 데이터 세트 내의 피처의 예측값에 기초하여 모델링 절차의 평가를 위한 자원을 할당할 수 있다. 예를 들어, 시스템(100)은 (예를 들어, 방법(300)의 단계(310)에서, 또는 방법(400)의 단계(424)에서) 평가할 예측 모델링 절차를 선택하거나 제시할 수 있다. 전술한 바와 같이, 시스템(100)은 데이터 세트에 적절하거나 매우 적절한 것으로 예측되는 예측 모델링 절차를 선택하거나 제시할 수 있다. 특정의 특성을 갖는 데이터 세트에 대한 모델링 절차의 적절성을 결정하기 위한 일부 기술을 전술하였다. 예측 문제의 특성에 기초하여 예측 문제에 대한 예측 모델링 절차의 적절성을 결정할 때, 시스템(100)은 데이터 세트의 보다 중요한 피처의 특성을 예측 문제의 특성으로서 취급할 수 있다. 이러한 방식으로, 시스템(100)에 의해 생성된 적절성 스코어는 데이터 세트의 더 중요한 피처에 맞춤화될 수 있다. 시스템(100)은 적절성 스코어에 기초하여 자원을 할당하기 때문에, 데이터 세트의 보다 중요한 피처에 적절성 스코어를 맞춤화하는 것은 피처 중요도에 부분적으로 기초하여 예측 모델링 절차의 평가에 할당되는 자원으로 귀결될 수 있다.
추가적으로 또는 대안적으로, 시스템(100)은 (예를 들어, 방법(300) 또는 방법(400)의 단계(408)를 참조하여 전술한 바와 같이, 데이터 세트의 평가 중에 및/또는 데이터 세트를 프로세싱할 때) 데이터 세트의 더 중요한 피처를 갖는 피처 생성 작업에 더 많은 자원을 할당하고, 및/또는 (예를 들어, 방법(400)의 단계(432)에서) 상보적인 톱 모델의 혼합에 더 많은 자원을 할당할 수 있다.
일부 실시예에서, 시스템(100)은 피처의 모델-특유 예측값에 기초하여 피처 F의 모델-독립 예측값을 계산할 수 있다. 시스템(100)은 (1) 모델-특유 예측값의 통계적 측정을 계산하거나((예를 들어, 평균(mean), 중앙값(median), 표준 편차 등), (2) 모델-특유 예측값의 조합을 결정하는 것에 한정되지 않지만 이를 포함하여, 임의의 적절한 기술을 사용하여 피처의 모델-독립 예측값을 계산할 수 있다. 후자의 경우, 조합은 가중화된 조합일 수 있다. 가중화된 조합에서, 보다 정확한 모델에 대한 모델-특유 피처 값은 보다 덜 정확한 모델에 대한 모델-특유 피처 값보다 더 크게 가중화될 수 있다. 일부 실시예에서, 가장 덜 정확한 모델링 절차에 대한 모델-특유 피처 값은 이 단락에서 설명된 계산 및/또는 조합으로부터 배제될 수 있다.
2차 모델
(예를 들어, "모델 배치 엔진"이라는 제목의 섹션에서) 전술한 바와 같이, 예측 코드 생성 작업을 단순화하고 모델을 생성하는 데 사용되는 모델링 기술의 독점적인 세부 사항의 공개를 방지하기 위해 적절한 2차 모델링 기술(예를 들어, RuleFit)을 사용하여 모델 중의 모델(“2차 모델")을 생성하는 것이 바람직할 수 있다. 또한 사람들은 원래 모델보다 2차 모델을 더 쉽게 인터프리팅할 수 있으며; 2차 모델은 그렇지 않은 "블랙 박스" 모델에 대한 직관을 제공할 수 있다.
그러나, 2차 모델이 소스 모델보다 예측에 대해 체계적으로 덜 정확할 수도 있다는 우려가 있다. 소스 모델로부터 2차 모델로(그리고 일부 경우, 소스 모델보다 더 높은 정확도를 갖는 2차 모델을 생성하기 위해) 이동하는 것과 연관된 정확성의 임의의 손실을 감소시키기 위한(예를 들어, 최소화하는) 기술의 일부 실시예가 아래에 설명된다.
일부 실시예에서, 사용자가 맞춤화된 모델(예를 들어, 방법(400)의 단계(446)) 및/또는 톱 모델에 대한 홀드아웃 테스트의 결과(예를 들어, 방법(400)의 단계(450))를 제시한 후에, 사용자는 (a) 정확한 예측을 생성하기 위해 피처를 어떻게 사용하는지를 이해하기 위해 모델을 인터프리팅하고 및/또는 (b) 배치 엔진(140)을 사용하여 모델을 배치하기를 원할 수 있다. 특정 모델링 기술은 모델을 구축하기 위해 불투명한 및/또는 복잡한 모델을 사용할 수 있으며, 이에 의해 적어도 일부 경우에, 모델을 이해하기 어렵게 만들고 예측 코드 생성의 어려움을 증가시킬 수 있다. 독점적인 모델 구축 기술의 공개를 방지하는 것은 모델을 이해할 수 있게 만들고 모델에 대한 예측 코드를 생성하는 과제를 더욱 악화시킬 수 있다.
일부 실시예에서, 예측 모델링 시스템(100)은 소스 모델의 2차 모델을 구축함으로써 이러한 문제를 해결한다. 일부 실시예에서, 예측 모델링 시스템(100)은 일반적으로 비교적 인터프리팅하기 쉬운 모델을 생성하는 하나 이상의 모델링 기술(예를 들어, RuleFit, 일반화된 가산 모델, 등)을 사용하여 2차 모델을 구축하고, 이를 위해 예측 코드는 비교적 쉽게 생성될 수 있다. 이러한 기술이 본원에서 "2차 모델링 기술"로 칭해진다. 엔진(110)이 맞춤화된 "1차" 모델(예를 들어, 사용자가 더 잘 이해하기 원하는 1차 모델, 사용자가 예측 코드를 생성하기 원하는 1차 모델 및/또는 독점적 피처를 갖는 1차 모델)을 생성한 후, 시스템(100)은 2차 모델링 기술을 사용하여 1차 모델의 2차 모델을 생성할 수 있다.
1차 모델 내의 각 피처에 대해, 원래 데이터 세트로부터의 또는 원래 데이터 세트로부터 도출된 피처 값의 대응하는 세트가 존재한다. 2차 모델링 기술은 1차 모델과 동일한 피처를 사용할 수 있으며, 따라서 2차 모델링 기술의 트레이닝 및 테스팅 데이터를 위해, 이러한 피처의 원래 값 또는 그 서브세트를 사용할 수 있다. 일부 실시예에서, 데이터 세트로부터의 타겟의 실제 값을 사용하는 대신, 2차 모델링 기술은 1차 모델로부터의 타겟의 예측된 값을 사용한다.
일부 경우에, 2차 모델링 기술은 대안적인 또는 보충적인 트레이닝 및/또는 테스팅 데이터를 사용할 수 있다. 이러한 대안은 동일하거나 다른 데이터 소스로부터의 다른 실세계 데이터, (예를 들어, 실세계 샘플에 존재하는 것보다 더 넓은 범위의 가능성을 커버하기 위한 목적으로)(예를 들어, 내삽법 및 외삽법을 통해) 머신-생성 데이터와 조합된 실세계 데이터, 또는 머신-기반의 확률론적 모델에 의해 완전히 생성된 데이터를 포함할 수 있다. 일부 실시예에서, 2차 모델을 트레이닝하는 데 사용되는 타겟 변수의 값은 1차 모델로부터의 예측된 값이다.
한 가지 고려 사항은, 2차 모델을 구축할 때 1차 모델의 임의의 에러가 합성 또는 확대될 수 있고, 이에 의해 2차 모델의 정확도를 체계적으로 감소시킬 수 있다는 것이다. 첫째, 본 발명자들은 이것이 경험적으로 사실인지 여부에 대한 의문이 있다는 것을 인식하고 이해하고 있다. 둘째로, 어떤 경우에 그것이 사실이라면, 본 발명자들은 보다 정확한 1차 모델을 사용하는 것이 정확도의 손실을 감소시킬 가능성이 있음을 인식하고 이해하고 있다. 예를 들어, (예를 들어, "모델링 공간 탐색 엔진"이라는 제목의 섹션 끝 부분에 설명된 바와 같이) 혼합 모델은 어떤 단일 모델보다도 때로 더 정확하기 때문에, 2차 모델을 1차 모델의 혼합에 맞춤화하는 것은 2차 모델링과 연관된 정확도의 임의의 손실을 감소시킬 수 있다.
본 발명자들은 2차 모델의 정확도에 대한 우려가 크게 잘못된 것으로 경험적으로 결정했다. 1195개 분류 및 1849개 회귀 1차 모델을 초래한 381개의 데이터 세트에 대한 시스템의 테스트가 수행되었다. 테스트된 분류 모델의 경우, 2차 모델의 43%가 대응하는 1차 모델보다 덜 정확했지만 정확도의 로그 손실 측정에 따르면 10% 이상 악화되지 않았다. 2차 모델의 30%는 실제로 1차 모델보다 정확했다. 그 경우의 27%만이 2차 모델이 1차 모델보다 10% 덜 정확했다. 이 경우의 약 1/3(전체 모집단의 약 9%)은 데이터 세트가 매우 작을 때 발생했다. 1차 모델이 0.1 로그 손실 미만에서 매우 정확하고 2차 모델이 또한 여전히 0.1 로그 손실 미만에서 매우 정확했을 때, 이 경우의 1/3(다시 전체 모집단의 약 9%)이 발생했다. 따라서, 데이터 세트가 충분히 큰 경우의 90% 초과에서, 2차 모델은 1차 모델의 10% 내이거나 2차 모델은 절대 표준에 따라 매우 정확했다. 그 경우의 41%에서 최상의 2차 모델이 1차 모델의 혼합으로부터 도출되었다.
테스트된 회귀 모델에 대해, 2차 모델의 39%는 대응하는 1차 모델보다 덜 정확했지만, 정확도의 잔류 평균 제곱 에러 측정에 따르면 10% 이하로 악화되었다. 2차 모델의 47%는 실제로 1차 모델보다 더 정확했다. 그 경우 14%만이 2차 모델이 1차 모델보다 10% 덜 정확했다. 그 경우의 약 10%(전체 모집단의 약 1.5%)는 데이터 세트가 매우 작을 때 발생했다. 모든 경우의 35%에서, 최상의 2차 모델은 1차 모델의 혼합으로부터 도출되었다.
이러한 경험적 데이터에 기초하여, 본 발명자들은 2차 모델이 일반적으로, 원래의 데이터 세트가 적절하게 큰 경우, 비교적 정확하거나 절대적으로 정확하다는 것을 인식하고 이해하고 있다. 많은 경우, 2차 모델은 실제로 1차 모델보다 더 정확하다. 마지막으로, 테스트된 모든 분류 및 회귀 문제 중 1/3 초과에서 가장 정확한 2차 모델이 1차 모델의 혼합에서 도출되었다.
본 발명자들은 2차 모델이, (a) 복잡한 1차 모델을 이해하고, (b) 예측 모델에 대한 예측 코드를 생성하는 작업을 단순화하고 (c) 독점적인 모델-구축 기술을 보호하는 데 유리할 수 있음을 인식하고 이해하였다. 혼합 모델은 많은 때에 최상의 예측 결과를 생성하지만, 혼합에 포함된 모든 모델의 모든 컴포넌트의 복잡성을 조합하기 때문에 일반적으로 또한 더 복잡하다. 또한, 혼합 모델에 대한 예측 코드를 생성하는 것은 일반적으로 혼합에 포함된 모든 컴포넌트 모델에 대한 예측 코드를 생성하는 과제를 조합한다. 이러한 컴포넌트 과제의 최상측에서, 모든 혼합 모델이 일반적으로 각 예측치를 생성하기 위해 연산되므로, 혼합 모델은 일반적으로 예측치를 생성하는 데 더 느리다(및/또는 예측치를 생성하기 위해 더 많은 연산 자원이 필요함). 2차 모델은 일반적으로 이 시간(및/또는 연산 자원의 사용)을 단일 모델을 연산하는 시간으로 감소시킨다. 또한, 혼합 모델에는 각 컴포넌트 모델의 독점 피처를 포함한다. 따라서, 2차 모델과 혼합 모델은 매우 상보적인 방식으로 동작한다.
또한, 시스템(100)이 데이터 세트를 트레이닝, 테스트 및 홀드아웃 분할로 자동 분리할 수 있기 때문에, 시스템은 임의의 특정 2차 모델이 1차 모델과 비교하여 적절하게 수행되는지 여부를 용이하게 결정할 수 있다.
2차 모델링 기술의 일부 실시예
도 11a를 참조하면, 2차 예측 모델을 생성하기 위한 방법(1100)은 단계(1110 및 1120)를 포함할 수 있다. 단계 1110에서, 맞춤화된 1차 예측 모델이 획득된다. 1차 예측 모델은 하나 이상의 제1 입력 변수의 값에 기초하여 예측 문제의 하나 이상의 출력 변수의 값을 예측하도록 구성된다. 1차 모델은 임의의 적절한 기술을 사용하여(예를 들어, 예측 모델링 절차를 구현하는 머신-실행 가능 모듈을 실행하고, 예측 모델링 방법(300)의 실시예를 수행하고, 2개 이상의 예측 모델을 혼합하는 것 등) 획득될 수 있으며, 예측 모델(예를 들어, 시계열 모델 등)의 임의의 적절한 유형일 수 있다. 단계(1120)에서, 2차 예측 모델링 절차는 맞춤화된 1차 모델에 대해 수행된다. 2차 모델링 절차는 2차 예측 모델(예를 들어, RuleFit 모델, 일반화된 가산 모델, 조건부 규칙의 세트로서 조직된 임의의 모델, 이전 유형의 모델 중 2개 이상의 혼합, 등)과 연관된다.
도 11b를 참조하면, 2차 예측 모델링 절차를 수행하기 위한 방법(1120)은 ㄷ단계(1122, 1144, 1126 및 1128)를 포함할 수 있다. 단계(1122)에서, 2차 입력 데이터가 생성된다. 2차 입력 데이터는 복수의 2차 관측치를 포함한다. 각각의 2차 관측치는 하나 이상의 제2 입력 변수의 관측치 및 제2 입력 변수의 값에 대응하는 제1 입력 변수의 값에 기초하여 1차 모델에 의해 예측된 출력 변수의 값을 포함한다. 2차 입력 데이터를 생성하는 것은 각각의 2차 관측치에 대해 이하를 포함할 수 있다: 제2 입력 변수의 관측된 값 및 제1 입력 변수의 대응 관측된 값을 획득하는 것, 및 출력 변수의 예측된 값을 생성하기 위해 1차 예측 모델을 제1 입력 변수의 대응하는 관측된 값에 적용하는 것.
1차 모델 및 2차 모델은 입력 변수의 동일한 세트를 사용할 수 있다. 대안 적으로, 2차 모델은 1차 모델의 입력 변수 중 하나 이상(예를 들어, 모두)을 사용할 수 있고, 하나 이상의 다른 입력 변수를 또한 사용할 수 있다. 대안적으로, 2차 모델은 1차 모델의 입력 변수 중 어느 것도 사용하지 않고, 하나 이상의 다른 입력 변수를 사용할 수 있다.
단계(1124)에서, 2차 입력 데이터 및 2차 테스팅 데이터가는 2차 입력 데이터로부터 생성된다. 트레이닝 데이터를 생성하고 입력 데이터 세트로부터 데이터를 테스트하기 위한 기술의 일부 실시예가 본원에 설명된다.
단계(1126)에서, 2차 예측 모델을 2차 트레이닝 데이터에 맞춤화함으로써 맞춤화된 1차 모델의 맞춤화된 2차 예측 모델이 생성된다. 단계(1128)에서, 맞춤화된 1차 모델의 맞춤화된 2차 예측 모델이 2차 테스팅 데이터에 대해 테스트된다. 상호 유효성 검증(네스팅된 상호 유효성 검증을 포함하나 이에 한정되지 않음) 및 홀드아웃 기술이 예측 모델을 맞춤화 및/또는 테스트하는 데 사용될 수 있다.
일부 실시예에서, 1차 및 2차 맞춤화 모델이 비교될 수 있다. 예를 들어, 각각의 맞춤화 모델에 대한 정확도 스코어가 결정될 수 있다. 각 맞춤화 모델의 정확도 스코어는, 맞춤화 모델이 하나 이상의 예측 문제의 결과를 예측하는 정확도를 나타낼 수 있다. (일부 실시예에서, 2차 모델의 정확도 스코어는 맞춤화된 모델이 1차 모델에 의해 예측된 타겟 변수 값을 예측하는 정확도가 아니라 맞춤화된 모델이 타겟 변수의 관측치를 예측하는 정확도를 나타낸다. 다른 실시예에서, 2차 모델의 정확도 스코어는, 맞춤화된 모델이 1차 모델에 의해 예측된 타겟 변수 값을 예측하는 정확도를 나타낸다.) 일부 경우에, 맞춤화된 2차 모델의 정확도 스코어는 맞춤화된 1차 모델의 정확도 스코어를 초과한다. 다른 예로서, 하나 이상의 예측 문제의 결과를 예측하기 위해 각각의 맞춤화된 예측 모델에 의한 연산 자원의 양이 사용된다. 일부 실시예에서, 맞춤화된 2차 모델에 의해 사용된 연산 자원의 양은 맞춤화된 1차 모델에 의해 사용되는 연산 자원의 양보다 적다.
일부 실시예에서, 복수의 2차 모델링 절차가 수행되고, 1차 모델의 복수의 2차 모델이 생성된다. 일부 실시예에서, 2차 모델의 정확도 스코어 및/또는 연산 자원 사용이 결정되고 비교된다. 하나 이상의 2차 모델은 모델의 정확도 스코어 및/또는 연산 자원 사용에 적어도 부분적으로 기초하여 배치를 위해 선택될 수 있다.
예측 문제에 대한 예측 모델을 선택하기 위한 방법(300)의 일부 실시예가 예측 문제에 대한 2차 예측 모델을 선택하는 데 사용될 수 있다. 일부 실시예에서, 입력 데이터의 하나 이상의 피처의 모델-특유 예측값이 (예를 들어, 후술하는 방법(1000)의 실시예를 사용하여) 2차 모델에 대해 결정될 수 있다. 일부 실시예에서, (예를 들어, 본원에 설명되는 기술을 사용하여) 2차 예측 모델이 혼합될 수 있다. 일부 실시예에서, (예를 들어, 본원에 설명되는 기술 및/또는 성능 향상을 사용하여) 2차 예측 모델이 배치 및/또는 리프레시될 수 있다.
예측 문제에 대한 예측 모델을 선택하기 위한 방법(300)의 일부 실시예가 예측 문제에 대한 2차 예측 모델을 선택하는 데 사용될 수 있다.
텍스트 언어 조건
데이터 세트의 일부 피처는 구조화되지 않은 텍스트 블록을 포함할 수 있다. 다른 언어는 다른 특성을 가지므로, 최상의 예측 모델링 단계는 구조화되지 않은 텍스트 피처에 어떤 언어 또는 언어들이 존재하는지에 따를 수 있다.
일부 실시예에서, 시스템(100)은 텍스트 스트링으로 언어를 검출하거나, 보다 일반적으로 스트링이 주어진 언어에 있을 가능성을 계산한다. 시스템(100)은 텍스트 언어의 지식을 조건부 텍스트 프로세싱을 통해 예측 모델링 프로세스에 통합할 수 있다. 예를 들어, 모델링 기술은 텍스트로부터 구조화된 피처를 추출하는 것을 포함하는 사전-프로세싱 단계를 포함할 수 있다. 피처 추출 절차는 언어에 기초하여 다를 수 있다. 또 다른 예로서, 일부 모델링 기술은 특정 언어에 특정되거나 다른 언어에 대해 다르게 수행할 수 있다.
예를 들어, 문자 n-gram은 중국어 텍스트에서 효과적이다. 영어 텍스트에서 종종 좋은 결과를 만들지만 일관성이 떨어지므로, 통상적으로 영어 텍스트의 프로세싱을 위해서는 n-gram이 선호된다. 독일어와 핀란드어와 같은 많은 형태소에서 한 단어를 형성하는 "합성" 언어도 있다. 단어 n-gram은 이 구조에서 정보 중 많은 것을 잃을 수 있으므로, 이러한 언어의 프로세싱 텍스트는 일반적으로 단어로부터 형태소를 추출하기 위해 특수화된 토큰화를 추가로 요구한다. 또한, 다른 언어로부터의 텍스트의 프로세싱은 중지 단어 제거, 스테밍(stemming) 및 표제어 추출(lemmatization)을 위한 다른 처리로부터 이익을 받을 수 있다.
일부 실시예에서, 개별 모델링 기술은 검출된 언어에 의존하는 텍스트 프로세싱을 위한 조건부 로직을 가질 수 있다. 예를 들어, 모델링 기술은 유럽 언어에 대한 단어 n-gram 및 중국어 언어에 대한 문자 n-gram을 사용할 수 있다. 엔진(110)은 실행을 위해 디스패치될 때 검출된 언어 또는 언어들을 모델링 기술로 전달할 수 있다.
일부 실시예에서, 엔진(110)은 언어에 기초한 평가로부터 모델링 기술 또는 모델링 기술의 패밀리를 배제하거나, 언어에 기초하여 그 자원 할당(예를 들어, 프로세싱 우선 순위)을 변경할 수 있다. 일부 실시예에서, 모델링 기술은, 그 기술이 적절한 언어 또는 언어들을 특정하는 연관 메타데이터를 가질 수 있다. 일부 실시예에서, 모델링 기술은, 그 기술이 언어의 세트에 대해 얼마나 잘 수행할 것인지를 나타내는 연관된 메타데이터를 가질 수 있다. 이러한 성능 추정은 모델링 기술에 대한 이전 정보에 기초할 수 있거나, 상이한 모델링 기술이 상이한 언어로 얼마나 잘 수행되는지에 기초하여 메타 머신 학습을 통해 계산될 수 있다.
상호 작용 강도
예측 모델에서, 함께 취해진 2개 이상의 예측 변수(예를 들어, 피처)는 개별적으로 취해진 이들 변수에 추가하여 또는 그 대신에 타겟 변수에 영향을 줄 수 있다. 일부 실시예에서, 시스템은 광범위하게 다양한 예측 문제에 걸쳐 이러한 상호 작용을 나타내는 메트릭 또는 메트릭 세트의 값을 결정한다. 일부 실시예에서, 엔진(110)은 적절한 상호 작용 모델링 기술을 자동으로 적용하는 프로세스에 메트릭을 통합한다. 일부 실시예에서, 엔진(110)은 사용자로 하여금 대안적인 사전-패키지화된 상호 작용 모델링 기술 중에서 선택하거나 그 자신의 커스텀 기술을 적용할 수 있게 한다.
예를 들어, 자동차 보험의 맥락에서, "연령"과 "성별" 피처 간의 상호 작용이 있을 수 있다. 일부 연령에서는 여성이 남성보다 안전한 운전자이다. 다른 연령에서는, 남성과 여성은 동등하게 안전하다. 그리고 또 다른 연령에서는 남성이 더 안전하다. 또 다른 예로서, 지리학적 분석의 맥락에서, 위도와 경도 사이의 상호 작용이 있을 수 있다. 상호 작용 없이 위도와 경도의 피처만을 사용하면, 모델은 싱가포르가 1인당 매우 높은 GDP 대신 1인당 낮은 GDP를 갖는 것으로 예측할 수 있지만, 상호 작용 정보를 사용하면, 모델은 싱가포르가 1인당 높은 GDP를 갖는 것으로 올바르게 예측할 수 있다.
일반적으로, 상호 작용을 검출하는 것은 2개 이상의 피처 사이의 통계적으로 중요한 상호 작용을 검출하는 방법을 수행하는 것을 포함한다. 일부 실시예에서, 엔진(110)은 (예를 들어, 방법(400)의 단계(408)에서) 데이터 세트를 평가할 때 상호 작용을 검출할 수 있다. 일부 실시예에서, 개별 모델링 기술은 (예를 들어, 모델링 기술 빌더(220)에 의해) 상호 작용을 위해 개별적으로 테스트하도록 구성될 수 있다. 전자의 접근법은 일반적인 해결책을 제공할 수 있으며, 후자의 접근법은 특정 상황을 다루는 데 더 많은 유연성을 제공할 수 있다.
일반적인 경우에, 엔진(110)은 (a) 어떤 피처의 서브세트가 상호 작용을 위한 후보인지, (b) 어떤 상호 작용 순서로 테스트할 것인지, (c) 어떤 특정 피처 조합을 테스트할 것인지를 결정할 수 있다. 각각의 결정에 대해, 엔진(100)은 과거 예측 문제에 대한 경험적 또는 메타-머신 학습의 결과 중 어느 하나를 사용할 수 있다. 예를 들어, 일부 연구 결과에 따르면 3-웨이(way) 이상의 상호 작용을 테스트하는 것은 예측 정확도가 거의 향상되지 않다. 따라서, 일부 실시예에서, 엔진(110)은 사용자에 의해 명시적으로 무시되지 않거나, 더 높은 차수의 상호 작용으로 모델링하는 것이 정확도를 향상시킬 것이라는 예외적인 경우가 되는 상당한 확률을 특정 문제가 갖는 것으로 메타-머신 학습 알고리즘이 나타내지 않는다면, 2-웨이 상호 작용에 대해서만 테스트하거나 2-웨이 상호 작용에 대해서만 테스트하는 것을 디폴트로 할 수 있다.
잠재적 상호 작용의 세트를 결정한 후에, 엔진(110)은 상호 작용 검출 방법을 선택할 수 있다. 일부 경우에, 엔진(110)은 모든 가능한 상호 작용에 대해 동일한 상호 작용 검출 방법을 사용할 수 있다. 다른 경우에, 엔진(110)은 피처의 특성에 기초하여 상이한 피처의 조합에 대한 상이한 상호 작용 검출 방법을 선택할 수 있다. 상호 작용 방법의 몇 가지 예는 ANOVA, 부분 의존 함수(Partial Dependence Functions)(J.H. Friedman 및 B.E. Popescu, 규칙 앙상블을 통한 예측 학습, 2005), GUIDE(W. Loh, 편향되지 않은 변수 선택 및 상호 작용 검출을 갖는 회귀 트리, Statistica Sinica 12(2) 2002), Grove(D. Sorokina 등, 트리의 가산 그루브와의 통계적 상호 작용 검출, ICML, 2008), 및 FAST(Yin Lou 등, 쌍으로 된 상호 작용을 갖는 정확한 지능형 모델, KDD, 2013)를 포함한다.
일부 실시예에서, 시스템(100)은 다른 머신 학습 기술을 실행하기 위해 전술한 동일한 메커니즘을 사용하여 상호 작용을 검출하는 이러한 기술을 수행한다. 엔진(110)이 상호 작용 검출 결과를 얻은 후에, 엔진은 (1) 중요한 상호 작용에 기초하여 새로운 피처를 구성하여 이를 데이터 세트에 추가하고 및/또는 (2) 모델링 기술이 상호 작용을 직접 취급할 수 있는 능력을 갖는 경우, 중요한 상호 작용의 목록을 파라미터로서 모델링 기술에 전달할 수 있다. 모델링 기술의 실행은 전술한 방식으로 계속될 수 있다.
예측 성능 향상
사용자는 배치 엔진을 사용하여(예를 들어, 모델 배치 엔진(140)을 사용하여) 독립적인 예측 서비스에 잠재적으로 모델을 맞춤화할 수 있다. 일부 경우에, 특정 모델을 사용하여 피처의 관측치로부터 예측 타겟을 계산하는 것은 상당한 연산 자원을 필요로 할 수 있다. 일부 실시예에서, 엔진(110)은, 특히 예측 서비스가 하나 이상의 모델에 대한 많은 모델 및/또는 빈번한 요청에 대한 요청을 취급할 때, 자원 소비를 제한(예를 들어, 최소화)하면서 적시의 응답을 제공하도록 구성된다.
일례를 이하에 설명한다. 온라인 게임에서, 게임 공급자는 많은 상이한 유형의 게임을 지원할 수 있으며 각 유형의 게임의 많은 인스턴스와 각 인스턴스에서 많은 사용자가 플레이한다. 게임으로부터 사용자 만족도 및 수익을 증가(예를 들어, 최적화)시키기 위해, 이러한 공급자는 플레이하는 게임의 결과에 기초하여 사용자의 거동을 예측하기를 원할 수 있다. 이러한 공급자는 이러한 예측을 사용하여 플레이어에게 제공하거나 미래의 게임 경험을 조정할 수 있다. 따라서, 이러한 공급자는 수십 내지 수백개의 다른 모델에 의존할 수 있으며, 각각의 모델은 예를 들어, 하루 수천 내지 수백만의 예측을 하는 데 사용될 수 있다. 또한, 모델에 걸친 상대적인 예측 수요는 인구 통계학적 효과, 인기의 변화, 평균 게임 완료 시간의 차이 등으로 인해 시간이 지남에 따라 크게 변할 수 있다.
운영 상의 예측을 하기 위해, 사용자는 모델 구축 컴퓨팅 인프라스트럭처와는 완전히 별개인 독립 예측 서비스를 원할 수 있다. 독립 예측 서비스는 다른 컴퓨팅 환경에서 실행되거나, 공유 컴퓨팅 환경 내에서 별개의 컴포넌트로 관리될 수 있다. 일단 인스턴스화되면, 서비스의 실행, 보안 및 모니터링이 모델 구축 환경과 완전히 분리되어 사용자가 독립적으로 이를 배포 및 관리할 수 있게 한다.
서비스를 인스턴스화한 후에, 배치 엔진은 사용자로 하여금 맞춤화된 모델을 서비스에 설치하도록 허용할 수 있다. 성능을 향상(예를 들어, 최적화)시키기 위해, 모델 맞춤화에 적절한 모델링 기술의 구현은 예측을 위해 차선적일 수 있다. 예를 들어 모델을 맞춤화하는 것은 동일한 알고리즘을 반복적으로 실행하는 것을 필요로 하므로, 알고리즘의 빠른 병렬 실행을 가능하게 하기 위해 상당한 양의 오버헤드를 투자하는 것이 종종 가치가 있다. 그러나 예측 요청의 예상 레이트가 매우 높지 않는 경우, 동일한 오버헤드는 독립적인 예측 서비스에 대해 가치가 없을 수 있다. 일부 경우에, 모델링 기술 개발자는 예측 환경에서 더 나은 성능 특성을 제공하는 컴포넌트 실행 작업 중 하나 이상의 특수 버전을 제공할 수도 있다. 특히, 고도의 병렬 실행 또는 특수 프로세서에서의 실행을 위해 설계된 구현은 예측 성능에 유리할 수 있다. 마찬가지로, 모델링 기술이 프로그래밍 언어로 특정된 작업을 포함하는 경우, 서비스 시작 또는 해당 모델로부터 예측에 대한 초기 요청이 있을 때까지 기다리지 않고 서비스 인스턴스화시 작업을 사전-컴파일하는 것이 성능 향상을 제공할 수 있다.
또한, 모델 맞춤 작업은 일반적으로 예측 서비스와는 다른 컴퓨팅 인프라스트럭처 사용한다. 모델링 기술 실행 중에 에러로부터 클라우드 인프라스트럭처를 보호하고 클라우드의 다른 사용자로부터 모델링 기술에 대한 액세스를 방지하기 위해, 모델링 기술은 모델 맞춤화 중에 보안 컴퓨팅 컨테이너에서 실행할 수 있다. 그러나, 예측 서비스는 종종 전용 머신 또는 클러스터에서 실행된다. 따라서, 보안 컨테이너 계층을 제거하는 것은 임의의 실제적인 단점 없이 오버헤드를 감소시킬 수 있다.
따라서, 모델의 모델링 기술, 기대되는 로드 및 예측을 위한 타겟 컴퓨팅 환경의 특성에 의해 실행되는 특정 작업에 기초하여, 배치 엔진은 모델을 패키징하고 배치하기 위한 규칙의 세트를 사용할 수 있다. 이러한 규칙은 실행을 최적화할 수 있다.
주어진 예측 서비스가 복수의 모델을 실행할 수 있기 때문에, 서비스는 각 모델에 대한 예측 요청에 걸쳐 컴퓨팅 자원을 할당할 수 있다. 하나 이상의 서버 머신에 배치하고 컴퓨팅 클러스터에 배치하는 2개의 기본 경우가 있다.
서버로의 배치의 경우, 과제는 복수의 서버 중에 요청을 할당하는 방식이다. 예측 서비스는 몇몇 유형의 사전 정보를 가질 수 있다. 이러한 정보는 (a) 구성된 각 모델에 대한 예측을 실행하는 데 걸리는 시간의 추정 (b) 상이한 시간에 구성된 각 모델에 대한 요청의 예상 빈도(c) 모델 실행의 원하는 우선 순위를 포함할 수 있다. 실행 시간의 추정은 하나 이상의 조건 하에서 각각의 모델에 대한 예측 코드의 실제 실행 속도를 측정하는 것에 기초하여 계산될 수 있다. 모델 실행의 원하는 우선 순위는 서비스 관리자에 의해 특정될 수 있다. 요청의 예상 빈도는 해당 모델의 이력 데이터, 메타-머신 학습 모델을 기반으로 한 예상 또는 관리자에 의해 제공되는 것으로부터 계산될 수 있다.
서비스는 각각의 모델에 초기에 할당될 수 있는 모든 이용 가능 서버의 집계 컴퓨팅 능력의 부분을 연산하기 위해 이러한 요인의 일부 또는 전부를 조합하는 목적 함수를 포함할 수 있다. 서비스가 요청을 받아서 실행하면, 요청의 실행 시간 및 예상 빈도에 대한 갱신된 정보를 자연스럽게 얻는다. 따라서, 서비스는 이러한 부분을 다시 계산하고 이에 따라 서버에 모델을 재할당할 수 있다.
배치된 예측 서비스는 2개의 상이한 유형의 서버 프로세스, 즉 라우터 및 작업자를 가질 수 있다. 하나 이상의 라우터가 예측에 대한 요청을 수용하고 이를 작업자에게 할당하는 라우팅 서비스를 형성할 수 있다. 들어오는 요청은 어떤 예측 모델을 사용할 것인지를 나타내는 모델 식별자, 어떤 사용자 또는 소프트웨어 시스템이 요청을 하는지를 나타내는 사용자 또는 클라이언트 식별자, 그리고 그 모델에 대한 예측자 변수의 하나 이상의 벡터를 가질 수 있다.
요청이 전용 예측 서비스에 들어오면, 그 라우팅 서비스는 모델 식별자, 사용자 또는 클라이언트 식별자, 및 예측자 변수의 벡터의 수의 일부 조합을 검사할 수 있다. 그 다음, 라우팅 서비스는 (1) 주어진 모델을 실행하는 데 및/또는 (2) 주어진 사용자 또는 클라이언트에 대해 사용되는 명령어 및 데이터에 대한 서버 캐시 히트를 증가(예를 들어, 최대화)하기 위해 요청을 작업자에게 할당할 수 있다. 또한 라우팅 서비스는 대기 시간과 스루풋(throughput)의 균형을 맞추기 위해 각 작업자에게 제출되는 배치(batch) 크기의 혼합을 달성하도록 예측자 변수의 벡터 수를 고려할 수 있다.
작업자에 걸친 모델에 대한 요청을 할당하기 위한 알고리즘의 예는 라운드-로빈(round-robin), 모델 계산 강도 및/또는 작업자의 연산력에 기초한 가중화된 라운드 로빈 및 보고된 로드에 기초한 동적 할당을 포함할 수 있다. 지정된 서버에 대한 요청의 신속한 라우팅을 용이하게 하기 위해, 라우팅 서비스는 관측된 특성(예를 들어, 모델 식별자)의 주어진 동일한 세트에 대해 동일한 서버를 선택하는 해시 함수를 사용할 수 있다. 해시 함수는 간단한 해시 함수 또는 일관된 해시 함수일 수 있다. 일관된 해시 함수는 노드(이 경우 작업자에 대응)의 수가 변할 때 더 적은 오버 헤드를 필요로 한다. 따라서, 작업자가 다운되거나 새로운 작업자가 추가되면, 일관된 해시 함수가 다시 연산되어야 하는 해시 키의 수를 감소시킬 수 있다.
예측 서비스는, 이용 가능한 서비스 중에 예측 요청을 지능적으로 분배함으로써 성능을 향상(예를 들어, 최적화)시키는 것에 추가하여, 각 작업자가 각 모델을 실행하는 어떻게 실행하는지를 지능적으로 구성함으로써 개개의 모델의 성능을 향상(예를 들어, 최적화)시킬 수 있다. 예를 들어, 주어진 서버가 몇몇 상이한 모델에 대한 요청의 혼합을 수신하면, 각 요청에 대한 모델 로딩 및 언로딩은 상당한 오버 헤드를 발생시킬 수 있다. 그러나 배치 프로세싱(batch processing)에 대한 요청을 집계하는 것은 상당한 대기 시간을 발생시킬 수 있다. 일부 실시예에서, 관리자가 모델에 대한 대기 시간 허용 오차를 특정하면, 서비스는 이러한 상충 관계를 지능적으로 수행할 수 있다. 예를 들어, 긴급 요청은 단지 100 밀리초의 대기 시간 허용 오차를 가질 수 있으며, 이 경우 서버는 하나 또는 많아 봐야 몇 개의 요청만을 프로세싱할 수 있다. 반대로, 대기 시간의 허용 오차가 2초이면 수백의 배치 크기를 가능하게 할 수 있다. 오버헤드로 인해, 대기 시간 허용 오차를 2배 증가시키면 스루풋이 10x에서 100x까지 증가할 수 있다.
마찬가지로, 운영 체제 스레드(thread)를 사용하는 것은, 스레드 설정 및 초기화 오버헤드로 인해, 대기 시간을 증가시키면서 스루풋을 향상시킬 수 있다. 일부 경우에, 예측이 대기 시간에 극도로 민감할 수 있다. 주어진 모델에 대한 모든 요청이 대기 시간에 민감할 가능성이 있는 경우, 서비스는 이러한 요청을 취급하는 서버를 단일 스레드 모드에서 동작하도록 구성할 수 있다. 또한, 요청의 서브세트만이 대기 시간에 민감할 가능성이 있는 경우, 서비스는 요청자로 하여금 주어진 요청에 민감한 것으로 플래깅하도록 허용할 수 있다. 이 경우, 서버는 특정 요청을 서비스하면서 단일 스레드 모드로만 동작할 수 있다.
일부 경우에, 사용자의 조직은, 조직이 가능한 한 신속히 계산하기 위해 분산 컴퓨팅 클러스터를 사용하기를 원한다는 예측의 배치(batch)를 가질 수 있다. 분산 컴퓨팅 프레임워크(예를 들어, Apache Spark)는 일반적으로 조직으로 하여금 프레임워크를 실행하는 클러스터를 설정할 수 있게 하며, 프레임워크와 함께 작동하도록 설계된 임의의 프로그램은 그 후 데이터 및 실행 가능 명령어로 구성된 작업을 제출할 수 있다.
모델에 대한 하나의 예측의 실행은 그 모델 또는 다른 임의의 모델의 결과에 대한 또 다른 예측의 결과에 영향을 미치지 않기 때문에, 예측은 클러스터 컴퓨팅의 맥락에서 비상태 동작이고, 따라서 일반적으로 병렬화하기 용이하다. 따라서, 데이터 및 실행 가능 명령의 배치가 주어지면, 프레임워크의 분할 및 할당 알고리즘의 정상적인 거동은 선형 스케일링으로 귀결될 수 있다.
일부 경우에, 예측을 하는 것은 많은 단계에서 데이터가 생성되고 소비되는 대규모 작업 흐름의 일부일 수 있다. 이러한 경우, 예측 작업은 Apache Kafka와 같은 게시-가입 메커니즘을 통해 다른 동작과 통합될 수 있다. 예측 서비스는 예측이 필요한 새로운 관측치를 생성하는 채널에 가입한다. 서비스가 예측을 한 후에, 다른 프로그램이 소비할 수 있는 하나 이상의 채널에 이를 게시한다.
성능 향상
피팅 모델링 기술 및/또는 다수의 대안 기술 중의 검색은 연산 집약적일 수 있다. 연산 자원은 비용이 많이 들 수 있다. 예측 모델을 생성하기 위한 시스템(100)의 일부 실시예는 자원 소비를 감소시키기 위한 기회를 식별한다.
사용자 선호도에 기초하여, 엔진(110)은 실행 시간 및 컴퓨팅 자원의 소비를 감소시키기 위해 모델에 대한 검색을 조정할 수 있다. 일부 경우에, 예측 문제는 많은 트레이닝 데이터를 포함할 수 있다. 이러한 경우 상호 유효성 검증의 이점은 통상적으로 모델 편향을 감소시키는 측면에서 더 낮다. 따라서, 통상적으로 데이터 양의 5배에서 10배에 달하는 1회의 연산 시간이 데이터 양의 1/5에서 1/10에 달하는 5 내지 10회보다 훨씬 더 적기 때문에, 사용자는 각 교차 검증 폴드가 아닌 모든 트레이닝 데이터에 한번에 모델을 맞춤화하는 것을 선호할 수 있다.
사용자가 비교적 큰 트레이닝 세트를 갖지 않는 경우에도, 사용자는 여전히 시간 및 자원을 절약하기를 원할 수 있다. 이러한 경우, 엔진(110)은 몇몇의 보다 적극적인 검색 접근법을 사용하는 "그리디어(greedier)" 옵션을 제공할 수 있다. 먼저, 엔진(110)은 가능한 모델링 기술(예를 들어, 예상되는 성능이 비교적 높은 것만)의 더 작은 서브세트를 시도할 수 있다. 둘째, 엔진(110)은 트레이닝 및 평가의 각 라운드에서 보다 열악한 모델을 보다 적극적으로 제거할 수 있다. 셋째, 엔진(110)은 각 모델에 대한 최적의 하이퍼-파라미터를 검색할 때보다 큰 스텝을 취할 수 있다.
일반적으로, 보다 양호한(예를 들어, 최적의) 하이퍼-파라미터를 검색하는 것은 비용이 많이 들 수 있다. 따라서, 사용자가 엔진(110)으로 하여금 광범위한 스펙트럼의 잠재적인 모델을 평가하게 하고 이를 적극적으로 제거하지 않기를 원한다고 하더라도, 엔진은 하이퍼-파라미터 검색을 제한(예를 들어, 최적화)함으로써 자원을 여전히 절약할 수 있다. 이 검색 비용은 일반적으로 데이터 세트의 크기에 비례한다. 하나의 전략은 데이터 세트의 작은 부분에 하이퍼-파라미터를 튜닝한 다음 이 파라미터를 전체 데이터 세트로 외삽하는 것이다. 일부 경우, 더 많은 양의 데이터를 고려하여 조정이 이루어진다. 일부 실시예에서, 엔진(110)은 2개의 전략 중 하나를 사용할 수 있다. 먼저, 엔진(110)은 그 모델링 기술에 대한 경험에 기초하여 조정을 수행할 수 있다. 둘째, 엔진(110)은 메타-머신 학습에 참여하여 각 모델링 기술의 하이퍼-파라미터가 데이터 세트 크기에 따라 어떻게 변하는지 추적하고 하이퍼-파라미터의 메타 예측 모델을 구축한 다음 사용자가 상충 관계를 만들기를 원하는 경우 메타 모델을 적용할 수 있다.
카테고리 예측 문제로 작업할 때, 소수 클래스 및 다수 클래스가 있을 수 있다. 소수 클래스는 사기 검출의 경우와 같이 훨씬 더 작지만 상대적으로 더 중요할 수 있다. 일부 실시예에서, 엔진(110)은 다수 클래스를 "다운-샘플링"하여, 그 클래스에 대한 트레이닝 관측의 수가 소수 클래스에 대한 것과 더욱 유사하게 된다. 일부 경우에, 모델링 기술은 모델 맞춤화 동안 자동으로 이러한 가중치를 직접 수용할 수 있다. 모델링 기술이 이러한 가중치를 수용하지 않는다면, 엔진(110)은 다운-샘플링의 양에 비례하여 사후-맞춤 조정을 할 수 있다. 이 접근법은 훨씬 더 짧은 실행 시간과 낮은 자원 소비에 대해 일부 정확도를 희생시킬 수 있다.
일부 모델링 기술은 다른 것보다 더욱 효율적으로 실행될 수 있다. 예를 들어, 일부 모델링 기술은 병렬 컴퓨팅 클러스터 또는 특수 프로세서가 있는 서버에서 실행되도록 최적화될 수 있다. 각 모델링 기술의 메타데이터는 이러한 임의의 성능 이점을 나타낼 수 있다. 엔진(110)이 컴퓨팅 작업을 할당할 때, 현재 이용 가능한 컴퓨팅 환경에 그 이점이 적용되는 모델링 기술에 대한 작업을 검출할 수 있다. 그 다음, 각 검색 라운드 동안, 엔진(110)은 이러한 작업에 대한 데이터 세트의 더 큰 덩어리를 사용할 수 있다. 그 후, 이러한 모델링 기술이 더 빨리 완료될 수 있다. 또한, 그 정확도가 충분히 좋으면, 상대적으로 열등하게 수행하고 있는 다른 모델링 기술을 테스트할 필요도 없을 수 있다.
사용자 인터페이스(UI) 향상
엔진(110)은 모델 구축 이전에 사용자로부터 보다 많은 정보를 추출하여 더 나은 예측 모델을 사용자가 생성하도록 도울 수 있으며, 모델 맞춤 후에 사용자에게 모델 성능의 더 나은 이해를 제공할 수 있다.
일부 경우에, 사용자는 정확한 예측 모델에 대한 검색을 보다 잘 지시하기에 적절한 데이터 세트에 관한 추가 정보를 가질 수 있다. 예를 들어, 사용자는, 특정 관측이 특별한 중요성을 가지며 그 중요성을 나타내기를 원한다는 것을 알 수 있다. 엔진(110)은 사용자로 하여금 이 목적을 위해 새로운 변수를 용이하게 생성하도록 허용할 수 있다. 예를 들어, 하나의 합성 변수는 이러한 분할에 랜덤하게 할당하는 대신 엔진이 트레이닝, 검증 또는 홀드아웃 데이터 분할의 일부로서 특정 관측치를 사용해야 함을 나타낼 수 있다. 이 기능은, 특정 값이 빈번하지 않게 발생하고 대응 관측이 다른 분할에 신중하게 할당되어야 하는 상황에서 유용할 수 있다. 이 기능은, 사용자가 다른 머신 학습 시스템을 사용하여 모델을 트레이닝하고 트레이닝, 검증 및 홀드아웃 분할이 동일한 비교를 수행하기를 원하는 상황에서 유용할 수 있다.
마찬가지로, 특정 관측은, 사용자가 추가 가중치를 할당하기를 원하는 특히 중요한 이벤트를 나타낼 수 있다. 따라서, 데이터 세트에 삽입된 추가 변수는 각 관측의 상대적 가중치를 나타낼 수 있다. 엔진(110)은 더 높게 가중화된 조건 하에서 더욱 정확한 예측을 생성하는 것을 목적으로 모델을 트레이닝하고 그 정확도를 계산할 때 이 가중치를 사용할 수 있다.
다른 경우에서, 사용자는, 특정의 피처가 모델에서 어떻게 거동해야 하는지에 대한 사전 정보를 가질 수 있다. 예를 들어, 사용자는, 특정 피처가 특정 범위에서 예측 타겟에 단조로운 영향을 가져야 함을 알 수 있다. 자동차 보험에서, 일반적으로 사고의 기회는 30세 이후의 나이에 따라 단조 증가한다고 믿어지고 있다. 또 다른 예는 그렇지 않은 연속 변수에 대한 밴드를 생성하는 것이다. 개인 소득은 계속되지만, $10K에서 $100K까지 증분하는 것과 같은 밴드, $25K에서 $250K까지의 밴드, 및 $250K 초과의 모든 수입의 밴드에 값을 할당하는 분석 규칙이 있다. 그런 다음 데이터 세트에 대한 제한이 특정 피처에 대한 제약을 필요로 하는 경우가 있다. 때때로, 카테고리 변수는 데이터 세트의 크기에 비해 매우 많은 수의 값을 가질 수 있다. 사용자는, 엔진(110)이 가능한 카테고리의 특정 수보다 많은 카테고리 피처를 무시해야 하고 카테고리의 수를 가장 빈번한 X로 제한하고, 다른 모든 값을 "다른" 카테고리에 할당해야 한다는 것을 나타내기를 원할 수 있다. 이러한 모든 상황에서, 사용자 인터페이스는 (예를 들어, 방법(400)의 단계(412)에서) 검출된 각 피처에 대해 이 정보를 특정하는 옵션을 사용자에게 제시할 수 있다.
사용자 인터페이스는 피처 변환에서 가이드되는 지원을 제공할 수 있다. 예를 들어, 사용자는 연속 변수를 카테고리 변수로 변환하기를 원할 수 있지만, 해당 변수에 대한 표준 규칙은 없을 수 있다. 분산의 형태를 분석함으로써, 엔진(110)은 최적의 갯수의 카테고리 밴드 및 각 밴드 사이의 경계를 정의하는 분산에 "매듭"을 배치할 포인트를 선택할 수 있다. 선택적으로, 사용자는 매듭을 추가하거나 삭제할 뿐만 아니라 매듭의 위치를 이동시킴으로써 사용자 인터페이스의 이러한 디폴트를 무시할 수 있다.
마찬가지로, 이미 카테고리형인 피처에 대해, 엔진(110)은 하나 이상의 카테고리를 단일 카테고리로 조합함으로써 표현을 단순화할 수 있다. 각각의 관측된 카테고리의 상대적인 빈도 및 다른 피처의 값에 대해 나타나는 빈도에 기초하여, 엔진(110)은 카테고리를 조합하기 위한 최적의 방식을 계산할 수 있다. 선택적으로, 사용자는 조합된 카테고리로부터 원래 카테고리를 제거하고 및/또는 기존 카테고리를 조합된 카테고리에 넣음으로써 이러한 계산을 무시할 수 있다.
특정의 경우에, 예측 문제는 불규칙한 간격으로 발생하는 이벤트를 포함할 수 있다. 이러한 경우, 이러한 이벤트가 특정 시간 프레임 내에서 얼마나 많이 발생했는지를 포착하는 새로운 피처를 자동으로 생성하는 것이 유용할 수 있다. 예를 들어, 보험 예측 문제에서, 데이터 세트는 보험 계약자가 보험금을 청구할 때마다 기록을 보유할 수 있다. 그러나 장래의 위험을 예측하는 모델을 구축할 때, 과거 X년 동안 보험 계약자가 얼마나 많은 보험금을 가졌는지를 고려하는 것이 더 유용할 수 있다. 엔진은 엔티티에 대응하는 기록과 이벤트에 대응하는 다른 기록 사이의 데이터 구조 관계를 검출함으로써 (예를 들어, 방법(400)의 단계(408)에서) 데이터 세트를 평가할 때 이러한 상황을 검출할 수 있다. (예를 들어, 단계(410)에서) 데이터 세트를 사용자에게 제시할 때, 사용자 인터페이스는 이러한 피처를 자동으로 생성하거나 제시할 수 있다. 이러한 변수의 장래의 이벤트의 발생 사이의 통계적인 의존성을 최대화하도록 계산되었거나, 일부 다른 경험을 사용하여 이벤트가 발생하는 빈도에 기초하여 시간 프레임 임계값을 또한 제안할 수 있다. 사용자 인터페이스는 또한 사용자로 하여금 그러한 피처의 생성을 무시하고, 그러한 피처의 생성을 강제하며, 제시된 시간 프레임 임계값을 무시하게 하도록 허용할 수 있다.
시스템이 모델에 기초하여 예측을 행하는 경우, 사용자는 이러한 예측을 검토하고 특이한 것을 탐색할 수 있다. 예를 들어, 사용자 인터페이스는 모델에 대한 예측의 전부 또는 서브세트의 목록을 제공하고, 예측자의 값의 크기 또는 그 값을 가질 낮은 확률의 관점에서 어떤 것이 극단적이었는지를 나타낼 수 있다. 또한, 극단적인 값에 대한 이유에 대한 직관을 제공하는 것도 가능한다. 예를 들어, 자동차 보험 위험 모델에서 특히 높은 값은 "연령 < 25세 결혼 상태 = 독신"인 이유를 가질 수 있다.
일부 실시예의 추가 설명
본원에 제공되는 예가 별개의 컴퓨터 상에 존재하는 모듈 또는 별개의 컴퓨터에 의해 수행되는 동작을 설명할 수 있지만, 이들 컴포넌트의 기능은 단일 컴퓨터 또는 임의의 더 많은 수의 분산 방식의 컴퓨터에 구현될 수 있다는 것이 이해되어야 한다.
전술한 실시예는 임의의 다수의 방식으로 구현될 수 있다. 예를 들어, 실시예는 하드웨어, 소프트웨어 또는 이들의 조합을 사용하여 구현될 수 있다. 소프트웨어로 구현될 때, 소프트웨어 코드는 단일 컴퓨터에서 제공되든 또는 복수의 컴퓨터 중에 분산되어 있든, 임의의 적절한 프로세서 또는 프로세서의 컬렉션에서 실행될 수 있다. 또한, 컴퓨터는 랙(rack)-장착 컴퓨터, 데스크톱 컴퓨터, 랩톱 컴퓨터 또는 태블릿 컴퓨터와 같은 다수의 형태 중 임의의 형태로 구현될 수 있음을 이해해야 한다. 또한, 컴퓨터는 일반적으로 컴퓨터로 간주되지 않지만 PDA(Personal Digital Assistant), 스마트 폰 또는 임의의 다른 적절한 휴대용 또는 고정식 전자 디바이스를 포함하는 적절한 프로세싱 기능을 갖는 디바이스에 내장될 수 있다.
이러한 컴퓨터는 근거리 네트워크 또는 엔터프라이즈 네트워크 또는 인터넷과 같은 광역 네트워크를 포함하는 임의의 적절한 형태의 하나 이상의 네트워크에 의해 상호 접속될 수 있다. 이러한 네트워크는 임의의 적절한 기술에 기초할 수 있으며, 임의의 적절한 프로토콜에 따라 동작할 수 있고, 무선 네트워크, 유선 네트워크 또는 광섬유 네트워크를 포함할 수 있다.
또한, 본원에 설명되는 다양한 방법 또는 프로세스는 다양한 운영 체제 또는 플랫폼 중 임의의 하나를 채용하는 하나 이상의 프로세서 상에서 실행 가능한 소프트웨어로서 코딩될 수 있다. 또한, 이러한 소프트웨어는 다수의 적절한 프로그래밍 언어 및/또는 프로그래밍 또는 스크립팅 도구 중 임의의 것을 사용하여 기록될 수 있으며, 또한 프레임워크 또는 가상 머신 상에서 실행되는 실행 가능 머신 언어 코드 또는 중간 코드로서 컴파일될 수 있다.
이 관점에서, 일부 실시예는, 하나 이상의 컴퓨터 또는 다른 프로세서 상에서 실행될 때 전술한 다양한 실시예를 구현하는 방법을 수행하는 하나 이상의 프로그램으로 인코딩된 컴퓨터 판독 가능 매체(또는 복수의 컴퓨터 판독 가능 매체)(예를 들어, 컴퓨터 메모리, 하나 이상의 플로피 디스크, 콤팩트 디스크, 광학 디스크, 자기 테이프, 플래시 메모리, 필드 프로그래머블 게이트 어레이 또는 다른 반도체 디바이스, 또는 다른 유형의 컴퓨터 저장 매체의 회로 구성)로 구현될 수 있다. 컴퓨터 판독 가능 매체 또는 매체들은 비일시적일 수 있다. 컴퓨터 판독 가능 매체 또는 매체들은 전술한 바와 같이 예측 모델링의 다양한 양태를 구현하기 위해 하나 이상의 다른 컴퓨터 또는 다른 프로세서 상에 저장된 프로그램 또는 프로그램들이 로딩될 수 있도록 이송 가능할 수 있다. "프로그램" 또는 "소프트웨어"라는 용어는 본원에서 설명된 다양한 양태를 구현하기 위해 컴퓨터 또는 다른 프로세서를 프로그램하도록 채용될 수 있는 임의의 유형의 컴퓨터 코드 또는 컴퓨터-실행 가능 명령어를 지칭하는 일반적인 의미로 본원에서 사용된다. 또한, 본 발명의 일 양태에 따르면, 실행될 때 예측 모델링 방법을 수행하는 하나 이상의 컴퓨터 프로그램이 단일 컴퓨터 또는 프로세서 상에 존재할 필요는 없으며, 예측 모델링의 다양한 양태를 구현하기 위해 다수의 상이한 컴퓨터 또는 프로세서 중에 모듈 형식으로 분산될 수 있다는 것이 이해되어야 한다.
컴퓨터-실행 가능 명령어는 하나 이상의 컴퓨터 또는 다른 디바이스에 의해 실행되는 프로그램 모듈과 같은 많은 형태일 수 있다. 일반적으로, 프로그램 모듈은 특정 작업을 수행하거나 특정 추상 데이터 유형을 구현하는 루틴, 프로그램, 객체, 컴포넌트, 데이터 구조 등을 포함한다. 통상적으로, 프로그램 모듈의 기능은 다양한 실시예에서 요구되는 바와 같이 조합되거나 분산될 수 있다.
또한, 데이터 구조는 임의의 적절한 형태로 컴퓨터-판독 가능 매체에 저장될 수 있다. 예시의 단순화를 위해, 데이터 구조는 데이터 구조의 위치를 통해 관련된 필드를 갖는 것으로 나타낼 수 있다. 이러한 관계는 필드들 간의 관계를 전달하는 컴퓨터-판독 가능 매체의 위치들을 필드들에 대한 저장소에 할당함으로써 유사하게 달성될 수 있다. 그러나 포인터, 태그 또는 데이터 요소 간의 관계를 확립하는 다른 메커니즘의 사용을 포함하여 데이터 구조의 필드에 있는 정보 간의 관계를 확립하는 데 임의의 적절한 메커니즘이 사용될 수 있다.
또한, 예측 모델링 기술은, 그 예가 제공되는 방법으로서 구현될 수 있다. 이 방법의 일부로 수행된 행위는 임의의 적절한 방식으로 순서화될 수 있다. 따라서, 예시된 실시예에서 순차적인 동작으로 도시되었지만, 몇몇 동작을 동시에 수행하는 것을 포함할 수 있는, 나타낸 것과 다른 순서로 동작이 수행되는 실시예가 구성될 수 있다.
일부 실시예에서, 방법(들)은 컴퓨터의 랜덤 액세스 메모리의 일부에 저장된 컴퓨터 명령으로서 구현되어 전술한 프로세스들에 영향을 주는 제어 로직을 제공할 수 있다. 이러한 실시예에서, 프로그램은 FORTRAN, PASCAL, C, C++, C#, Java, 자바 스크립트, Tcl 또는 BASIC과 같은 다수의 고급 언어 중 임의의 언어로 기록될 수 있다. 또한, 프로그램은 스크립트, 매크로 또는 EXCEL 또는 VISUAL BASIC과 같은 상용 소프트웨어에 포함된 기능으로 기록될 수 있다. 또한, 소프트웨어는 컴퓨터 상에 상주하는 마이크로프로세서에 대한 어셈블리 언어로 구현될 수 있다. 예를 들어, IBM PC 또는 PC 클론에서 실행되도록 구성된 경우 Intel 80x86 어셈블리 언어로 소프트웨어가 구현될 수 있다. 이 소프트웨어는 플로피 디스크, 하드 디스크, 광 디스크, 자기 테이프, PROM, EPROM 또는 CD-ROM과 같은 "컴퓨터-판독 가능 프로그램 수단"을 포함하지만 이에 제한되지 않는 제조 물품에 수록될 수 있다.
본 발명의 다양한 양태들은 단독으로, 조합하여, 또는 위에서 구체적으로 설명되지 않은 다양한 배열로 사용될 수 있으며, 따라서 본 발명은 전술한 설명 또는 나타내어진 도면에서 개진된 컴포넌트의 상세 사항 및 배열로 그 응용을 한정시키지 않는다. 예를 들어, 일 실시예에서 설명된 양태는 다른 실시예에서 설명된 양태와 임의의 방식으로 조합될 수 있다.
용어
본원에서 사용된 어구 및 용어는 설명의 목적을 위한 것이며 한정하는 것으로 간주되어서는 안된다.
본 명세서 및 청구항에서 사용되는 부정 관사 "어느(a)" 및 "어떤(an)"은 명시적으로 반대로 표시되지 않는 한 "적어도 하나"를 의미하는 것으로 이해되어야 한다. 명세서 및 청구항에서 사용된 "및/또는"이라는 문구는 이와 같이 조합된 요소의 "어느 하나 또는 둘"을 의미하는 것으로 이해되어야 하며, 즉, 요소는 어떤 경우에는 조합적으로 존재하고 다른 경우에는 분리적으로 존재한다. "및/또는"으로 나열된 복수의 요소는 동일한 방식으로, 즉 조합된 요소 중 "하나 이상"으로 해석되어야 한다. 구체적으로 식별된 요소와 관련이 있거나 관계가 없든 "및/또는" 절에 의해 구체적으로 식별되는 요소 이외에 다른 요소가 선택적으로 존재할 수 있다. 따라서, 비한정적인 예로서, "포함하는(comprising)"과 같은 제한이 없는 언어와 함께 사용될 때 "A 및/또는 B"에 대한 참조는 일 실시예에서 A만으로(선택적으로 B 이외의 요소를 포함); 다른 실시 양태에서, B만(선택적으로 A 이외의 요소를 포함함)으로; 또 다른 구현 예에서는, A 및 B 모두(선택적으로 다른 원소를 포함 함); 등을 나타낸다.
명세서 및 청구항에서 사용되는 "또는"은 상기 정의된 바와 같은 "및/또는"과 동일한 의미를 갖는 것으로 이해되어야 한다. 예를 들어, 목록에서 항목을 분리할 때, "또는" 또는 "및/또는"은 포괄적인 것으로 해석되어야 하는데, 즉 하나 이상의 번호 또는 하나 이상의 요소의 목록을 포함하는 것으로, 선택적으로 목록에 없는 추가 항목이 있다. "오직 하나" 또는 "정확히 하나"와 같이 청구항에서 사용될 때 "~로 이루어진(consisting of)"과 같이 반대로 명백하게 나타내어지지 않는다면, 숫자 또는 요소의 목록의 정확히 하나의 요소의 포함을 나타낼 것이다. 일반적으로, 사용된 "또는"이라는 용어는 "어느 하나", "하나", "단지 하나", 뙤는 "정확히 하나"와 같이 배타적인 용어로 선행될 경우에만 배타적 대안(즉, "하나 또는 다른 하나이지만 둘 다는 아님")을 나타내는 것으로 해석되어야 한다. 청구항에서 사용되는 경우 "본질적으로 이루어지는"은 특허법 분야에서 통상적으로 사용되는 의미를 갖는다.
명세서 및 청구범위에서 사용된 바와 같이, 하나 이상의 컴포넌트의 목록과 관련하여 "적어도 하나"라는 문구는 임의의 하나 이상의 요소의 목록의 요소로부터 선택된 적어도 하나의 요소를 의미하는 것으로 이해되어야 하지만, 요소 목록에 구체적으로 나열된 각 요소와 요소 목록 중 적어도 하나를 포함할 필요는 없으며 요소 목록의 요소 조합을 제외하지 않아야 한다. 이 정의는 또한 "적어도 하나"라는 문구가 언급된 요소 목록 내에서 구체적으로 식별되는 요소 이외에 요소가 선택적으로 존재할 수 있게 하며, 구체적으로 식별된 요소와 관련이 있거나 관계가 없다. 따라서, 비한정적인 예로서, "A 및 B 중 적어도 하나"(또는 동등하게, "A 또는 B 중 적어도 하나" 또는 동등하게 "A 및/또는 B 중 적어도 하나")는 하나 이상의 실시 양태에서 B를 함유하지 않는(및 선택적으로 B를 제외한 다른 원소를 포함하는) 하나 이상의 A를 임의로 포함하고; 다른 실시 양태에서 A는 존재하지 않는(및 선택적으로 A 이외의 원소를 포함하는) 하나 이상의 B, 선택적으로 하나 이상의 B를 포함하고; 또 다른 구현 예에서는 하나 이상의 A 및 임의로 하나 이상의 B를 포함하는 하나 이상의(및 선택적으로 다른 원소를 포함하는) 하나 이상의 A와 조합할 수 있는 등이다.
"포함하는(including)", "포괄하는(comprising)", "갖는(having)", "포함하는(containing)", "포함하는(involving)" 및 이들의 변형의 사용은 그 이후 열거된 항목 및 추가 항목을 포함하는 것을 의미한다.
청구항 요소를 수식하기 위해 청구항에서 "제1", "제2", "제3 등"과 같은 서수 용어를 사용하는 것은 방법의 동작이 수행되는 다른 요소 또는 시간적 순서에 대해 하나의 청구항 요소의 임의의 우선 순위, 선행, 또는 순서를 암시하지 않는다. 서수 용어는 단지 특정 이름을 가진 하나의 청구항 요소를, 청구항 요소들을 구분하기 위해 동일한 이름을 가진 다른 요소(그러나 서수 용어 사용)와 구별하기 위한 단지 레이블로 사용된다.
균등물
따라서, 본 발명의 적어도 하나의 실시예의 여러 양태를 설명하였으므로, 다양한 변경, 수정 및 개선이 본 기술 분야의 통상의 기술자자에게 용이하게 생각날 것임을 이해해야 한다. 이러한 변경, 수정 및 개선은 본 발명의 일부로서 의도되며 본 발명의 사상 및 범위 내에 있는 것으로 의도된다. 따라서, 전술한 설명 및 도면은 단지 예일 뿐이다.

Claims (131)

  1. 예측 모델링 방법에 있어서,
    예측 모델링 절차를 수행하는 단계를 포함하고, 상기 예측 모델링 절차는,
    (a) 하나 이상의 데이터 세트들을 포함하는 시계열 데이터를 얻는 단계로서, 각각의 데이터 세트는 복수의 관측치들을 포함하며, 각각의 관측치는 (1) 상기 관측치와 연관된 시간의 표시 및 (2) 하나 이상의 변수들의 각각의 값들을 포함하는, 상기 시계열 데이터를 얻는 단계;
    (b) 상기 시계열 데이터의 시간 간격을 결정하는 단계;
    (c) 상기 하나 이상의 변수들을 타겟들로서 식별하고, 제로(0) 이상의 다른 변수들을 피처들로서 식별하는 단계;
    (d) 상기 시계열 데이터에 의해 나타내어지는 예측 문제와 연관된 예상 범위 및 스킵(skip) 범위를 결정하는 단계로서, 상기 예상 범위는 상기 타겟들의 값들이 예측될 기간의 지속 시간을 나타내고, 상기 스킵 범위는 상기 예상 범위에서의 가장 빠른 예측과 연관된 시간과 상기 예상 범위에서의 예측들이 기초가 되는 최근 관측치와 연관된 시간 사이의 시간 래그(lag)를 나타내는, 상기 예상 범위 및 스킵 범위를 결정하는 단계;
    (e) 상기 시계열 데이터로부터 트레이닝 데이터를 생성하는 단계로서, 상기 트레이닝 데이터는 상기 데이터 세트들 중 적어도 하나의 데이터 세트의 관측치들의 제1 서브세트를 포함하고, 상기 관측치들의 제1 서브세트는 상기 관측치들의 트레이닝-입력 및 트레이닝-출력 컬렉션들을 포함하고, 상기 트레이닝-입력 및 상기 트레이닝-출력 컬렉션들에서 상기 관측치들과 연관된 시간들은 트레이닝-입력 시간 범위 및 트레이닝-출력 시간 범위에 각각 대응하고, 상기 스킵 범위는 상기 트레이닝-입력 시간 범위의 끝을 상기 트레이닝-출력 시간 범위의 시작으로부터 분리하고, 상기 트레이닝-출력 시간 범위의 지속 시간은 적어도 상기 예상 기간만큼 긴, 상기 트레이닝 데이터를 생성하는 단계;
    (f) 상기 시계열 데이터로부터 테스팅 데이터를 생성하는 단계로서, 상기 테스팅 데이터는 상기 데이터 세트들 중 적어도 하나의 데이터 세트의 관측치들의 제2 서브세트를 포함하고, 상기 관측치들의 제2 서브세트는 상기 관측치들의 테스트-입력 및 테스트-유효성 검증 컬렉션들을 포함하고, 상기 테스트-입력 및 상기 테스트-유효성 검증 컬렉션들에서 상기 관측치들과 연관된 시간들은 테스트-입력 시간 범위 및 테스트-유효성 검증 시간 범위에 각각 대응하고, 상기 스킵 범위는 상기 테스트-입력 시간 범위의 끝을 상기 테스트-유효성 검증 시간 범위의 시작으로부터 분리하고, 상기 테스트-유효성 검증 시간 범위의 지속 시간은 적어도 상기 예상 범위만큼 긴, 상기 테스팅 데이터를 생성하는 단계;
    (g) 예측 모델을 상기 트레이닝 데이터에 맞춤화하는(fitting) 단계; 및
    (h) 맞춤화된 모델을 상기 테스팅 데이터에 대해 테스트하는 단계를 포함하는, 예측 모델링 방법.
  2. 제1항에 있어서,
    상기 시계열 데이터의 시간 간격은 상기 데이터 세트들 중 적어도 하나의 데이터 세트에 포함된 관측치들의 적어도 한 서브세트와 연관된 시간들에 적어도 부분적으로 기초하여 결정되는, 예측 모델링 방법.
  3. 제2항에 있어서,
    상기 시계열 데이터의 시간 간격을 결정하는 단계는:
    상기 데이터 세트들의 각각에 대해, 상기 데이터 세트의 각각의 시간 간격을 결정하는 단계;
    상기 데이터 세트들의 시간 간격들이 일정한 것을 결정하는 단계; 및
    상기 시계열 데이터의 시간 간격을 상기 데이터 세트들의 시간 간격에 설정하는 단계를 포함하는, 예측 모델링 방법.
  4. 제3항에 있어서,
    상기 데이터 세트의 시간 간격을 결정하는 단계는:
    상기 데이터 세트에 포함된 연속 관측치들의 하나 이상의 쌍에 대해, 상기 연속 관측치들 사이의 각각의 시기간을 결정하는 단계;
    연속 관측치들 쌍 사이의 시기간이 일정한 것을 결정하는 단계; 및
    상기 데이터 세트의 시간 간격을 상기 연속 관측치들 쌍 사이의 시기간에 설정하는 단계를 포함하는, 예측 모델링 방법.
  5. 제2항에 있어서,
    상기 시계열 데이터의 시간 간격을 결정하는 단계는:
    상기 데이터 세트들의 각각에 대해, 상기 데이터 세트의 각각의 시간 간격을 결정하는 단계; 및
    상기 데이터 세트들 중 적어도 2개의 데이터 세트들의 시간 간격들이 상이한 것을 결정하는 단계를 포함하고,
    상기 시계열 데이터의 시간 간격은, (1) 상기 데이터 세트들의 각각에 포함된 상기 관측치들의 각각의 부분들, 및 (2) 상기 데이터 세트들의 각각의 상기 각각의 시간 간격들 중 적어도 하나에 적어도 부분적으로 기초하여 결정되는, 예측 모델링 방법.
  6. 제5항에 있어서,
    상기 데이터 세트의 각각의 시간 간격을 결정하는 단계는:
    상기 데이터 세트에 포함된 각각의 연속 관측치들 쌍 사이의 각각의 시기간을 결정하는 단계를 포함하고,
    상기 연속 관측치들 쌍 사이의 시기간이 복수의 불균일 지속 시간들을 나타내는 경우, 상기 데이터 세트의 시간 간격은, (1) 상기 불균일 지속 시간들의 각각을 나타내는 상기 연속 관측치들 쌍의 각각의 부분들, 및 (2) 상기 시기간의 지속 시간들 중 적어도 하나에 적어도 부분적으로 기초하여 결정되고,
    상기 연속 관측치들 쌍 사이의 시기간이 일정한 지속 시간인 경우, 상기 데이터 세트의 시간 간격은 상기 시기간의 각각의 지속 시간인, 예측 모델링 방법.
  7. 제5항에 있어서,
    상기 시계열 데이터의 시간 간격은 상기 데이터 세트들의 각각의 시간 간격들 각각의 정수배인 최단 시간 간격인, 예측 모델링 방법.
  8. 제7항에 있어서,
    각각의 데이터 세트에 대해, 상기 데이터 세트의 시간 간격이 상기 시계열 데이터의 시간 간격보다 짧은 경우, 상기 데이터 세트의 관측치들을 다운-샘플링함으로써, 상기 데이터 세트의 시간 간격을 상기 시계열 데이터의 시간 간격으로 변환하는 단계를 더 포함하는, 예측 모델링 방법.
  9. 제8항에 있어서,
    상기 데이터 세트의 관측치들을 다운-샘플링하는 단계는, 상기 데이터 세트에 대응하는 시기간에서 상기 시계열 데이터의 시간 간격의 각각의 인스턴스에 대해:
    상기 시계열 데이터의 시간 간격의 상기 각각의 인스턴스에 대응하는 시간들과 연관된 상기 데이터 세트의 모든 관측치들을 식별하는 단계;
    집계 관측치를 생성하기 위해 식별된 관측치들을 집계하는 단계; 및
    상기 데이터 세트의 식별된 관측치들을 상기 집계 관측치로 대체하는 단계를 포함하는, 예측 모델링 방법.
  10. 제9항에 있어서,
    상기 시계열 데이터의 시간 간격의 인스턴스에 대응하는 상기 식별된 관측치들의 수는, 상기 시계열 데이터의 시간 간격과 상기 데이터 세트의 시간 간격 사이의 비율과 동등한, 예측 모델링 방법.
  11. 제9항에 있어서,
    상기 식별된 관측치들을 집계하는 단계는, 상기 집합 관측치의 각각의 변수의 값을, (1) 상기 식별된 관측치들의 가장 초기에 포함된 대응하는 변수값, (2) 상기 식별된 관측치들의 가장 최근에 포함된 대응하는 변수값, (3) 상기 식별된 관측치들에 포함된 대응하는 변수값들의 최대값, (4) 상기 식별된 관측치들에 포함된 대응하는 변수값들의 최소값, (5) 상기 식별된 관측치들에 포함된 대응하는 변수값들의 평균, 또는 (6) 상기 식별된 관측치들에 포함된 대응하는 변수값들의 함수의 값에 설정하는 단계를 포함하는, 예측 모델링 방법.
  12. 제5항에 있어서,
    상기 시계열 데이터의 시간 간격은 상기 데이터 세트들의 시간 간격으로 이루어진 그룹으로부터 선택되는, 예측 모델링 방법.
  13. 제12항에 있어서,
    상기 데이터 세트들은 제1 시간 간격을 나타내는 제1 데이터 세트 및 상기 제1 시간 간격보다 큰 제2 시간 간격을 나타내는 제2 데이터 세트를 포함하고, 상기 제2 시간 간격은 상기 시계열 데이터의 시간 간격으로서 선택되고,
    상기 방법은:
    상기 제1 데이터 세트의 관측치들을 다운-샘플링함으로써, 상기 제1 데이터 세트의 시간 간격을 상기 시계열 데이터의 시간 간격으로 변환하는 단계를 더 포함하는, 예측 모델링 방법.
  14. 제5항에 있어서,
    상기 시계열 데이터의 시간 간격은 상기 데이터 세트의 시간 간격들의 각각과는 상이한, 예측 모델링 방법.
  15. 제1항에 있어서,
    상기 시계열 데이터의 관측치들의 적어도 한 그룹은 제1 변수의 각각의 값들을 포함하고, 상기 방법은,
    상기 예측 모델을 상기 트레이닝 데이터에 맞춤화하고, 상기 맞춤화된 모델을 상기 테스팅 데이터에 대해 테스트하기 전에:
    상기 제1 변수의 값들이 시간 값들을 포함하는 것을 결정하는 단계;
    상기 그룹 내의 각각의 관측치에 대해, 제2 변수의 각각의 값을 생성하는 단계로서, 상기 제2 변수의 상기 값은 상기 제1 변수의 상기 시간 값과 기준 시간 값 사이의 오프셋을 포함하는, 상기 제2 변수의 각각의 값을 생성하는 단계; 및
    상기 제2 변수의 값들을 상기 그룹 내의 각각의 관측치들에 가산하는 단계를 더 포함하는, 예측 모델링 방법.
  16. 제15항에 있어서,
    상기 그룹 내의 관측치들로부터 상기 제1 변수의 값들을 제거하는 단계를 더 포함하는, 예측 모델링 방법.
  17. 제15항에 있어서,
    상기 기준 시간은 이벤트의 날짜를 포함하는, 예측 모델링 방법.
  18. 제17항에 있어서,
    상기 이벤트는 출생, 결혼, 학교 졸업, 고용주에 대한 고용의 개시, 또는 특정 직위에서의 업무의 시작을 포함하는, 예측 모델링 방법.
  19. 제1항에 있어서,
    상기 변수들은 제1 변수 및 제2 변수를 포함하고, 상기 방법은,
    상기 제1 변수의 값의 변화들과 상기 제2 변수의 값의 상관된 변화들 사이의 시간 래그(lag)로, 상기 제1 변수 및 상기 제2 변수의 값들의 변화들이 상관되는 것을 결정하는 단계; 및
    상기 제1 변수의 값의 변화들과 상기 제2 변수의 값의 상관된 변화들 사이의 시간 래그의 지속 시간을 나타내는 그래픽 컨텐츠를, 그래픽 사용자 인터페이스를 통해 표시하는 단계를 더 포함하는, 예측 모델링 방법.
  20. 제1항에 있어서,
    상기 예상 범위는 (1) 상기 시계열 데이터의 시간 간격, (2) 상기 시계열 데이터에 포함된 관측치들의 수, (3) 상기 시계열 데이터에 대응하는 시기간, 및/또는 (4) 마이크로초, 밀리초, 초, 분, 시간, 일, 주, 월, 분기, 계절, 년, 십년, 백년 및 천년으로 이루어지는 그룹으로부터 선택되는 자연 시기간에 적어도 부분적으로 기초하여 결정되는, 예측 모델링 방법.
  21. 제20항에 있어서,
    상기 예상 범위는 상기 시계열 데이터의 시간 간격의 정수배인, 예측 모델링 방법.
  22. 제21항에 있어서,
    상기 예상 범위의 연속 예측들과 연관된 시간들 사이의 기기간은 상기 시계열 데이터의 시간 간격과 동등한, 예측 모델링 방법.
  23. 제1항에 있어서,
    상기 스킵 범위는, 상기 시계열 데이터의 수집에서의 대기 시간(latency), 상기 시계열 데이터의 통신에서의 대기 시간, 상기 시계열 데이터의 분석에서의 대기 시간, 상기 시계열 데이터의 분석의 통신에서의 대기 시간, 및/또는 상기 시계열 데이터의 분석에 기초한 액션들의 구현에서의 대기 시간에. 적어도 부분적으로 기초하여 결정되는, 예측 모델링 방법.
  24. 제1항에 있어서,
    상기 트레이닝-입력 시간 범위의 지속 시간을, 상기 시계열 데이터에 포함된 관측치들의 전체 수, 시간 경과에 따른 변수들 중 적어도 하나의 값들에서의 변동의 양, 상기 변수들의 적어도 하나의 값들에서의 주기적인 변동의 양, 복수의 시기간들에 대한 상기 변수들의 적어도 하나의 값들에서의 변동의 일관성, 및/또는 상기 예상 범위의 지속 시간에, 적어도 부분적으로 기초하여 결정하는 단계를 더 포함하는, 예측 모델링 방법.
  25. 제24항에 있어서,
    상기 예측 모델을 트레이닝 데이터에 맞춤화하는 단계는, 상기 예측 모델을 상기 트레이닝-입력 시간 범위의 일부분에 대응하는 트레이닝 데이터의 서브세트에 맞춤화하는 단계를 포함하고,
    상기 트레이닝-입력 시간 범위의 일부분은, 상기 트레이닝-입력 시간 범위의 시작 시간에 후속하는 시간에서 시작되고, 상기 트레이닝-입력 시간 범위의 끝 시간에서 종료되는, 예측 모델링 방법.
  26. 제25항에 있어서,
    상기 트레이닝-입력 시간 범위의 일부분의 지속 시간은, 상기 예상 범위의 지속 시간의 정수배인, 예측 모델링 방법.
  27. 제1항에 있어서,
    상기 예측 모델을 트레이닝 데이터에 맞춤화하기 전에 상기 트레이닝 데이터를 다운-샘플링하는 단계를 더 포함하는, 예측 모델링 방법.
  28. 제27항에 있어서,
    상기 트레이닝 데이터를 다운-샘플링하는 단계는:
    상기 트레이닝 데이터로부터, 상기 데이터 세트들의 적어도 하나로부터 획득된 모든 관측치들을 제거하는 단계를 포함하는, 예측 모델링 방법.
  29. 제27항에 있어서,
    상기 트레이닝 데이터를 다운-샘플링하는 단계는:
    상기 트레이닝 데이터의 다운-샘플링된 시간 간격을 상기 시계열 데이터의 시간 간격의 정수배로 설정하는 단계; 및
    상기 트레이닝 데이터의 다운-샘플링된 시간 간격의 각각의 인스턴스에 대해:
    상기 트레이닝 데이터의 상기 다운-샘플링된 시간 간격의 상기 각각의 인스턴스에 대응하는 시간들과 연관된 상기 트레이닝 데이터의 모든 관측치들을 식별하는 단계,
    집계 관측치를 집계하기 위해 상기 식별된 관측치들을 집계하는 단계, 및
    상기 트레이닝 데이터의 상기 식별된 관측치들을 상기 집계 관측치로 대체하는 단계를 포함하는, 예측 모델링 방법.
  30. 제1항에 있어서,
    상기 맞춤화된 모델을 테스팅 데이터에 대해 테스트하기 전에 상기 테스팅 데이터를 다운-샘플링하는 단계를 더 포함하는, 예측 모델링 방법.
  31. 제1항에 있어서,
    상기 예측 모델의 상호 유효성 검증(cross-validation)을 수행하는 단계를 더 포함하는, 예측 모델링 방법.
  32. 제31항에 있어서,
    상기 트레이닝 데이터는 제1 트레이닝 데이터이고, 상기 테스팅 데이터는 제1 테스팅 데이터이고, 상기 맞춤화된 모델은 제1 맞춤화된 모델이고, 상기 예측 모델의 상호 유효성 검증을 수행하는 단계는:
    (ⅰ) 상기 시계열 데이터로부터 제2 트레이닝 데이터 및 제2 테스팅 데이터를 생성하는 단계로서, 상기 제2 트레이닝 데이터는 상기 데이터 세트들 중 적어도 하나의 데이터 세트의 관측치들의 제3 서브세트를 포함하고, 상기 제2 테스팅 데이터는 상기 데이터 세트들 중 적어도 하나의 데이터 세트의 관측치들의 제4 서브세트를 포함하는, 단계;
    (j) 제2 맞춤화된 모델을 얻기 위해 상기 예측 모델을 상기 제2 트레이닝 데이터에 맞춤화하는 단계; 및
    (k) 상기 제2 맞춤화된 모델을 상기 제2 테스팅 데이터에 대해 테스트하는 단계를 포함하는, 예측 모델링 방법.
  33. 제32항에 있어서,
    상기 관측치들의 제1 서브세트는 트레이닝 시간들의 제1 범위를 커버하는 슬라이딩 트레이닝 윈도우에 대응하고, 상기 제1 서브세트에 포함된 각각의 관측치는 트레이닝 시간들의 상기 제1 범위 내의 시간과 연관되고, 관측치들의 상기 제3 서브세트는 트레이닝 시간들의 제2 범위를 커버하는 슬라이딩 트레이닝 윈도우에 대응하고, 상기 제3 서브세트에 포함되는 각각의 관측치는 트레이닝 시간들의 상기 제2 범위 내의 시간과 연관되고, 트레이닝 시간들의 상기 제1 범위의 가장 초기 시간은 트레이닝 시간들의 상기 제2 범위의 가장 초기 시간보다 더 이른, 예측 모델링 방법.
  34. 제33항에 있어서,
    상기 관측치들의 제2 서브세트는 테스팅 시간들의 제1 범위를 커버하는 슬라이딩 테스트 윈도우에 대응하고, 상기 제2 서브세트에 포함된 각각의 관측치는 테스팅 시간들의 상기 제1 범위 내의 시간과 연관되고, 관측치들의 상기 제4 서브세트는 테스팅 시간들의 제2 범위를 커버하는 슬라이딩 테스트 윈도우에 대응하고, 상기 제4 서브세트에 포함되는 각각의 관측치는 테스팅 시간들의 상기 제2 범위 내의 시간과 연관되고, 테스팅 시간들의 상기 제1 범위의 가장 초기 시간은 테스팅 시간들의 상기 제2 범위의 가장 초기 시간보다 더 이른, 예측 모델링 방법.
  35. 제34항에 있어서,
    상기 제1 테스팅 시간 범위는 상기 제2 트레이닝 시간 범위와 부분적으로 중첩되는, 예측 모델링 방법.
  36. 제35항에 있어서,
    상기 제2 테스팅 시간 범위는 상기 제1 트레이닝 시간 범위의 임의의 부분과 중첩되지 않고, 상기 제2 트레이닝 시간 범위의 임의의 부분과 중첩되지 않는, 예측 모델링 방법.
  37. 제32항에 있어서,
    상기 시계열 데이터를, 적어도 제1 분할 및 제2 분할을 포함하는 복수의 분할들로 분할하는 단계를 더 포함하는, 예측 모델링 방법.
  38. 제37항에 있어서,
    상기 시계열 데이터를 복수의 분할들로 분할하는 단계는, 상기 데이터 세트들의 각각을 대응하는 분할에 할당하는 단계를 포함하는, 예측 모델링 방법.
  39. 제37항에 있어서,
    상기 시계열 데이터를 상기 복수의 분할들로 분할하는 단계는 상기 시계열 데이터를 일시적으로 분할하는 단계를 포함하는, 예측 모델링 방법.
  40. 제39항에 있어서,
    상기 분할들 각각은 상기 시계열 데이터와 연관된 시기간의 각각의 일부분에 대응하고, 상기 시계열 데이터에 포함된 각각의 관측치는, 상기 관측치와 연관된 시간과 매칭되는 시기간의 일부분에 대응하는 분할에 할당되는, 예측 모델링 방법.
  41. 제37항에 있어서,
    상기 제1 트레이닝 데이터는 상기 시계열 데이터의 제1 분할에 포함된 관측치들의 서브세트를 포함하고;
    상기 제1 테스팅 데이터는 상기 제1 분할을 제외한 상기 시계열 데이터의 분할 모두에 포함된 관측치들의 각각의 서브세트들을 포함하고;
    상기 제2 트레이닝 데이터는 상기 시계열 데이터의 제2 분할에 포함된 관측치들의 서브세트를 포함하고; 및
    상기 제2 테스팅 데이터는 상기 제2 분할을 제외한 상기 시계열 데이터의 분할 모두에 포함된 관측치들의 각각의 서브세트들을 포함하는, 예측 모델링 방법.
  42. 제32항에 있어서,
    상기 시계열 데이터의 제1 분할은 상기 제1 트레이닝 데이터 및 상기 제2 트레이닝 데이터와 상기 제1 테스팅 데이터 및 상기 제2 테스팅 데이터를 포함하고, 상기 시계열 데이터의 제2 분할은 홀드아웃(holdout) 데이터를 포함하고, 상기 방법은:
    상기 제1 맞춤화된 모델 및 상기 제2 맞춤화된 모델을 상기 홀드아웃 데이터에 대해 테스트하는 단계를 더 포함하는, 예측 모델링 방법.
  43. 제42항에 있어서,
    상기 홀드아웃 데이터에는 예측 모델이 맞춤화되지 않는, 예측 모델링 방법.
  44. 제1항에 있어서,
    상기 예측 모델의 네스팅된(nested) 상호 유효성 검증을 수행하는 단계를 더 포함하는, 예측 모델링 방법.
  45. 제44항에 있어서,
    상기 예측 모델의 네스팅된 상호 유효성 검증을 수행하는 단계는:
    적어도 상기 시계열 데이터의 제1 분할 및 상기 시계열 데이터의 제2 분할을 포함하는 제1 복수의 분할들로 상기 시계열 데이터를 분할하는 단계; 및
    적어도 상기 시계열 데이터의 상기 제1 분할의 제1 분할 및 상기 시계열 데이터의 상기 제1 분할의 제2 분할을 포함하는 상기 시계열 데이터의 상기 제1 분할의 복수의 분할들로 상기 시계열 데이터의 상기 제1 분할을 분할하는 단계를 포함하고,
    상기 트레이닝 데이터는 상기 시계열 데이터의 상기 제1 분할의 상기 제1 분할을 포함하고, 상기 테스팅 데이터는 적어도 상기 시계열 데이터의 상기 제1 분할의 상기 제1 분할 이외의 상기 시계열 데이터의 상기 제1 분할의 복수의 분할들을 포함하는, 예측 모델링 방법.
  46. 제45항에 있어서,
    상기 트레이닝 데이터는 제1 트레이닝 데이터이고, 상기 테스팅 데이터는 제1 테스팅 데이터이고, 상기 맞춤화된 모델은 제1 맞춤화된 모델이고, 상기 예측 모델의 네스팅된 상호 유효성 검증을 수행하는 단계는:
    (i) 상기 시계열 데이터의 상기 제1 분할로부터 제2 트레이닝 데이터 및 제2 테스팅 데이터를 생성하는 단계로서, 상기 제2 트레이닝 데이터는 상기 시계열 데이터의 상기 제1 분할의 상기 제2 분할을 포함하고, 상기 제2 테스팅 데이터는 적어도 상기 시계열 데이터의 상기 제1 분할의 상기 제2 분할 이외의 상기 데이터 세트의 제1 분할의 복수의 분할들을 포함하는, 상기 제2 트레이닝 데이터 및 제2 테스팅 데이터를 생성하는 단계;
    (j) 제2 맞춤화된 모델을 얻기 위해 상기 예측 모델을 상기 제2 트레이닝 데이터에 맞춤화하는 단계; 및
    (k) 상기 제2 맞춤화된 모델을 상기 제2 테스팅 데이터에 대해 테스트하는 단계를 더 포함하는, 예측 모델링 방법.
  47. 제46항에 있어서,
    상기 네스팅된 상호 유효성 검증을 수행하는 단계는:
    상기 제1 맞춤화된 모델 및 상기 제2 맞춤화된 모델을 상기 시계열 데이터의 상기 제2 분할에 대해 테스트하는 단계; 및
    상기 제1 맞춤화된 모델 및 상기 제2 맞춤화된 모델을 상기 시계열 데이터의 상기 제2 분할에 대해 테스트한 결과에 기초하여, 상기 제1 맞춤화된 모델과 상기 제2 맞춤화된 모델을 비교하는 단계를 더 포함하는, 예측 모델링 방법.
  48. 제1항에 있어서,
    상기 맞춤화된 모델에 대해, 상기 시계열 데이터의 하나 이상의 피처들의 모델-특유 예측 값들을 결정하는 단계를 더 포함하는, 예측 모델링 방법.
  49. 제48항에 있어서,
    상기 피처들의 모델-특유 예측값들에 적어도 부분적으로 기초하여, 상기 시계열 데이터로부터 피처를 정리하고(pruning), 상기 시계열 데이터에서 2개 이상의 피처들로부터 도출된 피처를 생성하고 상기 도출된 피처를 상기 시계열 데이터에 가산하고, 상기 예측 모델을 다른 예측 모델과 혼합하고(blending), 그리고/또는 상기 예측 문제에 대해 예측 모델링 절차들의 적절성을 평가하는 프로세스 도중에 자원들을 할당하는 것으로 이루어지는 그룹으로부터 선택되는 적어도 하나의 액션을 수행하는 단계를 더 포함하는, 예측 모델링 방법.
  50. 제1항에 있어서,
    상기 예측 문제의 특성들 및 각각의 예측 모델링 절차들의 속성들 중 적어도 하나에 적어도 부분적으로 기초하여, 상기 예측 문제에 대한 상기 복수의 예측 모델링 절차들의 적절성을 결정하는 단계;
    상기 예측 문제에 대해 선택된 모델링 절차들의 결정된 적절성에 기초하여 상기 복수의 예측 모델링 절차들로부터 하나 이상의 예측 모델링 절차들을 선택하는 단계; 및
    상기 하나 이상의 예측 모델링 절차들을 수행하는 단계를 더 포함하는, 예측 모델링 방법.
  51. 제50항에 있어서,
    상기 하나 이상의 예측 모델링 절차들을 수행하는 단계는:
    명령어를 복수의 프로세싱 노드들에 송신하는 단계로서, 상기 명령어는 상기 선택된 모델링 절차들의 실행을 위해 상기 프로세싱 노드들의 자원들을 할당하는 자원 할당 스케줄을 포함하고, 상기 자원 할당 스케줄은 상기 예측 문제에 대해 상기 선택된 모델링 절차들의 상기 적절성에 적어도 부분적으로 기초하는, 상기 송신하는 단계;
    상기 자원 할당 스케줄에 따라 상기 복수의 프로세싱 노드들에 의해 상기 선택된 모델링 절차들의 실행의 결과들을 수신하는 단계로서, 상기 결과들은, 상기 선택된 모델링 절차들에 의해 생성된 예측 모델들, 및 상기 예측 문제와 연관된 시계열 데이터에 대한 상기 생성된 모델들의 스코어들 중 적어도 하나를 포함하는, 상기 수신하는 단계; 및
    상기 생성된 모델들로부터, 상기 선택된 예측 모델의 스코어에 적어도 부분적으로 기초하여 상기 예측 문제에 대해 예측 모델을 선택하는 단계를 포함하는, 예측 모델링 방법.
  52. 제1항에 있어서,
    상기 맞춤화된 모델을 다른 맞춤화된 모델과 혼합하여 혼합된 예측 모델을 생성하는 단계를 더 포함하는, 예측 모델링 방법.
  53. 제1항에 있어서,
    상기 맞춤화된 모델을 배치하는(deploying) 단계를 더 포함하는, 예측 모델링 방법.
  54. 제53항에 있어서,
    상기 시계열 데이터는 제1 시계열 데이터이고, 상기 맞춤화된 모델을 배치하는 단계는, 상기 맞춤화된 모델을 상기 예측 문제의 하나 이상의 인스턴스들을 나타내는 제2 시계열 데이터에 적용함으로써 하나 이상의 예측들을 생성하는 단계를 포함하고, 상기 제1 시계열 데이터는 상기 제2 시계열 데이터를 포함하지 않는, 예측 모델링 방법.
  55. 제53항에 있어서,
    상기 시계열 데이터는 제1 시계열 데이터이고, 상기 맞춤화된 모델을 배치하는 단계는, 제2 시계열 데이터에 적어도 부분적으로 기초하여 상기 맞춤화된 모델을 리프레시하는 단계를 포함하는, 예측 모델링 방법.
  56. 제55항에 있어서,
    상기 맞춤화된 모델은 제1 맞춤화된 모델이고, 상기 제2 시계열 데이터에 적어도 부분적으로 기초하여 상기 맞춤화된 모델을 리프레시하는 단계는:
    제2 맞춤화된 모델을 생성하기 위해 상기 예측 모델링 절차를 상기 제2 시계열 데이터에 대해 수행하는 단계; 및
    리프레시된 예측 모델을 생성하기 위해 상기 제1 맞춤화된 모델과 상기 제2 맞춤화된 모델을 혼합하는 단계를 포함하는, 예측 모델링 방법.
  57. 제55항에 있어서,
    상기 제2 시계열 데이터에 적어도 부분적으로 기초하여 상기 맞춤화된 모델을 리프레시하는 단계는:
    리프레시된 예측 모델을 생성하기 위해 상기 제1 시계열 데이터의 적어도 일부 및 상기 제2 시계열 데이터의 적어도 일부를 포함하는 제3 시계열 데이터에 대해 상기 예측 모델링 절차를 수행하는 단계를 포함하는, 예측 모델링 방법.
  58. 제53항에 있어서,
    상기 맞춤화된 모델은 하나 이상의 서버들에 배치되고, 다른 맞춤화된 모델들도 상기 하나 이상의 서버들에 배치되고, 상기 맞춤화된 모델 및 상기 다른 맞춤화된 모델에 대한 예측 요청은, (1) 예측을 생성하기 위해 상기 맞춤화된 모델들의 각각에 의해 사용된 시간 양의 추정, 및 (2) 상기 맞춤화된 모델들에 대한 예측 요청들이 수신되는 빈도의 추정 중 적어도 하나에 적어도 부분적으로 기초하여 상기 서버들 중에 할당되는, 예측 모델링 방법.
  59. 제58항에 있어서,
    각각의 예측 요청이 각각의 스레드(thread)에 할당되고, 상기 각각의 예측 요청은 연관된 대기 시간-감도 값을 갖고, 특정 서버 상에서 실행되는 스레드들의 수는 상기 특정 서버 상에서 실행되는 상기 스레드들의 대기 시간-감도 값들에 적어도 부분적으로 기초하여 결정되는, 예측 모델링 방법.
  60. 제1항에 있어서,
    상기 시계열 데이터에 포함된 2개 이상의 피처들의 상호 작용 강도를 나타내는 메트릭의 값을 결정하는 단계; 및
    상기 메트릭의 값이 임계값을 초과하는 경우, 상기 2개 이상의 피처들의 값들에 기초하여 새로운 피처의 시계열 값들을 생성하고, 상기 새로운 피처를 상기 시계열 데이터에 가산하는 단계를 더 포함하는, 예측 모델링 방법.
  61. 제1항에 있어서,
    상기 시계열 데이터의 시간 분해능을 결정하는 단계를 더 포함하는, 예측 모델링 방법.
  62. 제1항에 있어서,
    상기 타겟들은 사용자 입력에 기초하여 식별되는, 예측 모델링 방법.
  63. 예측 모델링 장치에 있어서,
    예측 모델링 절차를 인코딩하는 머신-실행 가능 모듈을 저장하도록 구성되는 메모리로서, 상기 예측 모델링 절차는 적어도 하나의 사전-프로세싱 작업 및 적어도 하나의 모델-맞춤 작업을 포함하는 복수의 작업을 포함하는, 상기 메모리; 및
    상기 머신-실행 가능 모듈을 실행하도록 구성되는 적어도 하나의 프로세서를 포함하고,
    상기 머신-실행 가능 모듈의 실행은 상기 장치로 하여금 상기 예측 모델링 절차를 수행하게 하며, 상기 예측 모델링 절차는 상기 사전-프로세스 작업을 수행하는 것을 포함하고, 상기 사전-프로세스 작업의 수행은:
    (a) 하나 이상의 데이터 세트들을 포함하는 시계열 데이터를 얻는 단계로서, 각각의 데이터 세트는 복수의 관측치들을 포함하며, 각각의 관측치는 (1) 상기 관측치와 연관된 시간의 표시 및 (2) 하나 이상의 변수들의 각각의 값들을 포함하는 것인 상기 시계열 데이터를 얻는 단계,
    (b) 상기 시계열 데이터의 시간 간격을 결정하는 단계,
    (c) 상기 하나 이상의 변수들을 타겟들로서 식별하고, 제로 이상의 다른 변수들을 피처들로서 식별하는 단계; 및
    (d) 상기 시계열 데이터에 의해 나타내어지는 예측 문제와 연관된 예상 범위 및 스킵 범위를 결정하는 단계로서, 상기 예상 범위는 상기 타겟들의 값들이 예측될 기간의 지속 시간을 나타내고, 상기 스킵 범위는 상기 예상 범위에서의 가장 빠른 예측과 연관된 시간과 상기 예상 범위에서의 예측이 기초가 되는 최근 관측치와 연관된 시간 사이의 시간 래그를 나타내는 단계를 포함하고; 그리고
    상기 모델-맞춤 작업의 수행은:
    (e) 상기 시계열 데이터로부터 트레이닝 데이터를 생성하는 단계로서, 상기 트레이닝 데이터는 상기 데이터 세트들 중 적어도 하나의 데이터 세트의 관측치들의 제1 서브세트를 포함하고, 상기 관측치들의 제1 서브세트는 상기 관측치들의 트레이닝-입력 및 트레이닝-출력 컬렉션들을 포함하고, 상기 트레이닝-입력 및 상기 트레이닝-출력 컬렉션들에서 상기 관측치들과 연관된 시간들은 트레이닝-입력 시간 범위 및 트레이닝-출력 시간 범위에 각각 대응하고, 상기 스킵 범위는 상기 트레이닝-입력 시간 범위의 끝을 상기 트레이닝-출력 시간 범위의 시작으로부터 분리하고, 상기 트레이닝-출력 시간 범위의 지속 시간은 적어도 상기 예상 기간만큼 긴, 상기 트레이닝 데이터를 생성하는 단계,
    (f) 상기 시계열 데이터로부터 테스팅 데이터를 생성하는 단계로서, 상기 테스팅 데이터는 상기 데이터 세트들 중 적어도 하나의 데이터 세트의 관측치들의 제2 서브세트를 포함하고, 상기 관측치들의 제2 서브세트는 상기 관측치들의 테스트-입력 및 테스트-유효성 검증 컬렉션들을 포함하고, 상기 테스트-입력 및 상기 테스트-유효성 검증 컬렉션들에서 상기 관측치들과 연관된 시간들은 테스트-입력 시간 범위 및 테스트-유효성 검증 시간 범위에 각각 대응하고, 상기 스킵 범위는 상기 테스트-입력 시간 범위의 끝을 상기 테스트-유효성 검증 시간 범위의 시작으로부터 분리하고, 상기 테스트-유효성 검증 시간 범위의 지속 시간은 적어도 상기 예상 범위만큼 긴, 상기 테스팅 데이터를 생성하는 단계,
    (g) 예측 모델을 상기 트레이닝 데이터에 맞춤화하는 단계; 및
    (h) 맞춤화된 모델을 상기 테스팅 데이터에 대해 테스트하는 단계를 포함하는, 예측 모델링 장치.
  64. 제63항에 있어서,
    상기 머신-실행 가능 모듈은 상기 작업들 사이의 의존성을 나타내는 지향 그래프(directed graph)를 포함하는, 예측 모델링 장치.
  65. 컴퓨터-구현 예측 모델링 방법에 있어서,
    (a) 복수의 예측 모델링 절차들을 수행하는 단계로서, 상기 예측 모델링 절차들의 각각은 예측 모델과 연관되고, 각각의 모델링 절차의 수행은 초기 예측 문제를 나타내는 초기 데이터 세트에 상기 연관된 예측 모델을 맞춤화하는 것을 포함하는, 상기 복수의 예측 모델링 절차들을 수행하는 단계;
    (b) 상기 맞춤화된 예측 모델들의 각각의 제1 각각의 정확도 스코어를 결정하는 단계로서, 각각의 맞춤화된 모델의 상기 제1 정확도 스코어는, 상기 맞춤화된 모델이 상기 초기 예측 문제의 하나 이상의 결과들을 예측하는 정확도를 나타내는, 상기 제1 각각의 정확도 스코어를 결정하는 단계;
    (c) 상기 초기 데이터 세트에 포함된 각각의 관측치들에 걸쳐 피처의 값을 셔플링(shuffling )함으로써, 수정된 예측 문제를 나타내는 수정된 데이터 세트를 생성하는 단계;
    (d) 상기 맞춤화된 예측 모델들의 각각의 제2 각각의 정확도 스코어를 결정하는 단계로서, 각각의 맞춤화된 모델의 제2 정확도 스코어는, 상기 맞춤화된 모델이 상기 수정된 예측 문제의 하나 이상의 결과들을 예측하는 정확도를 나타내는, 상기 제2 각각의 정확도 스코어를 결정하는 단계; 및
    (e) 상기 맞춤화된 모델들의 각각에 대한 상기 피처의 각각의 모델-특유 예측 값을 결정하는 단계를 포함하고, 각각의 맞춤화된 모델에 대한 상기 피처의 모델-특유 예측 값은 상기 맞춤화된 모델의 상기 제1 정확도 스코어 및 상기 제2 정확도 스코어에 기초하는, 컴퓨터-구현 예측 모델링 방법.
  66. 제65항에 있어서,
    상기 복수의 예측 모델링 절차를 수행하기 전에, 상기 초기 데이터 세트의 특성들, 상기 초기 예측 문제의 특성들, 및/또는 상기 피처의 특성들에 기초하여 상기 예측 문제에 대한 복수의 예측 모델링 절차들을 선택하는 단계를 더 포함하는, 컴퓨터-구현 예측 모델링 방법.
  67. 제65항에 있어서,
    상기 복수의 예측 모델링 절차들은 랜덤 포리스트(random forest) 모델링 절차, 일반화된 가산 모델링 절차, 및 지원 벡터 머신 모델링 절차로 이루어진 그룹으로부터 선택된 2 이상의 모델링 절차들을 포함하는, 컴퓨터-구현 예측 모델링 방법.
  68. 제65항에 있어서,
    상기 복수의 예측 모델링 절차들은 모델링 절차들의 제1 패밀리로부터 선택된 제1 모델링 절차 및 모델링 절차들의 제2 패밀리로부터 선택된 제2 모델링 절차를 포함하는, 컴퓨터-구현 예측 모델링 방법.
  69. 제65항에 있어서,
    상기 예측 모델의 제2 정확도 스코어를 결정하기 전에, 상기 수정된 예측 문제를 나타내는 수정된 데이터 세트에 상기 예측 모델들을 다시 맞춤화하는 단계를 더 포함하는, 컴퓨터-구현 예측 모델링 방법.
  70. 제65항에 있어서,
    특정 맞춤화된 모델에 대한 피처의 상기 결정된 모델-특유 예측 값은, 상기 특정 맞춤화된 모델의 상기 제1 정확도 스코어와 상기 제2 정확도 스코어 사이의 차이가 증가함에 따라 증가하는, 컴퓨터-구현 예측 모델링 방법.
  71. 제65항에 있어서,
    특정 맞춤화된 모델에 대한 피처의 상기 결정된 모델-특유 예측 값은, 상기 특정 맞춤화된 모델의 상기 제1 정확도 스코어에 대한, 상기 특정 맞춤화된 모델의 제1 정확도 스코어와 제2 정확도 스코어 사이의 백분율 차이를 포함하는, 컴퓨터-구현 예측 모델링 방법.
  72. 제65항에 있어서,
    상기 피처의 모델-특유 예측 값들에 기초하여 상기 피처의 모델-독립 예측 값을 결정하는 단계를 더 포함하는, 컴퓨터-구현 예측 모델링 방법.
  73. 제72항에 있어서,
    상기 피처의 모델-독립 예측 값을 결정하는 단계는, 상기 피처의 모델-특유 예측 값들의 중심 및 확산 중 적어도 하나의 통계적 척도를 계산하는 단계를 포함하는, 컴퓨터-구현 예측 모델링 방법.
  74. 제72항에 있어서,
    상기 피처의 모델-독립 예측 값을 결정하는 단계는, 상기 모델-특유 예측 값들의 중심의 통계적 척도를 계산하는 단계를 포함하고, 상기 중심의 통계적 척도는 평균(mean), 중앙값(median), 및 모델-특유 예측 값들의 모드로 이루어지는 그룹으로부터 선택되는, 컴퓨터-구현 예측 모델링 방법.
  75. 제72항에 있어서,
    상기 피처의 모델-독립 예측 값을 결정하는 단계는, 상기 모델-특유 예측 값들의 확산의 통계적 척도를 계산하는 단계를 포함하고, 상기 확산의 통계적 척도는 범위, 분산 및 상기 모델-특유 예측 값들의 표준 편차로 이루어지는 그룹으로부터 선택되는, 컴퓨터-구현 예측 모델링 방법.
  76. 제72항에 있어서,
    상기 피처의 모델-독립 예측 값을 결정하는 단계는, 상기 피처의 모델-특유 예측 값들의 조합을 계산하는 단계를 포함하는, 컴퓨터-구현 예측 모델링 방법.
  77. 제76항에 있어서,
    상기 모델-특유 예측 값들의 조합을 계산하는 단계는, 상기 모델-특유 예측 값들의 가중화된 조합을 계산하는 단계를 포함하는, 컴퓨터-구현 예측 모델링 방법.
  78. 제77항에 있어서,
    상기 모델-특유 예측 값들의 가중화된 조합을 계산하는 단계는, 상기 모델-특유 예측 값들에 각각의 가중치를 할당하는 단계를 포함하고, 특정 맞춤화된 모델에 대응하는 특정 모델-특유 예측 값에 할당되는 가중치는, 상기 맞춤화된 예측 모델의 제1 정확도 스코어가 증가함에 따라 증가하는, 컴퓨터-구현 예측 모델링 방법.
  79. 제65항에 있어서,
    상기 피처는 제1 피처이고, 상기 방법은:
    (c1) 상기 초기 데이터 세트에 포함된 각각의 관측치들에 걸쳐 제2 피처의 값들을 셔플링함으로써, 제2 수정된 예측 문제를 나타내는 제2 수정된 데이터 세트를 생성하는 단계;
    (d1) 상기 맞춤화된 모델들의 각각의 제3 정확도 스코어를 결정하는 단계로서, 각각의 맞춤화된 모델의 상기 제3 정확도 스코어는, 상기 맞춤화된 모델이 상기 제2 수정된 예측 문제의 하나 이상의 결과들을 예측하는 정확도를 나타내는, 상기 제3 정확도 스코어를 결정하는 단계; 및
    (e1) 상기 맞춤화된 모델들의 각각에 대해 상기 제2 피처의 각각의 모델-특유 예측 값을 결정하는 단계를 더 포함하고, 상기 맞춤화된 모델 각각에 대한 상기 제2 피처의 상기 모델-특유 예측 값은 상기 맞춤화된 모델의 상기 제1 정확도 스코어 및 상기 제3 정확도 스코어에 기초하는, 컴퓨터-구현 예측 모델링 방법.
  80. 제65항에 있어서,
    상기 피처는 제1 피처이고, 상기 초기 데이터 세트는 상기 제1 피처 및 복수의 제2 피처들을 포함하고, 상기 방법은 상기 제2 피처들의 각각에 대해 단계 (c), (d) 및 (e)를 수행함으로써 상기 초기 데이터 세트의 제2 피처들의 모델-특유 예측 값들을 결정하는 단계를 더 포함하는, 컴퓨터-구현 예측 모델링 방법.
  81. 제80항에 있어서,
    그래픽 사용자 인터페이스를 통해, 상기 초기 데이터 세트의 제1 피처 및 제2 피처들과, 상기 제1 피처 및 상기 제2 피처들의 모델-특유 예측 값들을 식별하는 그래픽 컨텐츠를 표시하는 단계를 더 포함하는, 컴퓨터-구현 예측 모델링 방법.
  82. 제80항에 있어서,
    상기 모델링 절차들은 특정 예측 모델과 연관된 특정 모델링 절차를 포함하는 제1 모델링 절차들이고, 상기 제1 피처 및 상기 제2 피처들의 모델-특유 예측 값들은 상기 특정 예측 모델에 특유한 제1 피처 및 제2 피처들의 특정의 모델-특유 예측 값들을 포함하고, 상기 방법은 (a1) 상기 특정 예측 모델과 연관된 특정 모델링 절차를 포함하는 복수의 제2 예측 모델링 절차들을 수행하는 단계를 더 포함하는, 컴퓨터-구현 예측 모델링 방법.
  83. 제82항에 있어서,
    상기 특정 예측 모델링 절차들을 수행하는 단계는, 상기 제1 피처 및 상기 제2 피처들의 특정 모델-특유 예측 값들에 기초하여 상기 초기 데이터 세트에 대한 피처 엔지니어링을 수행하는 단계를 포함하는, 컴퓨터-구현 예측 모델링 방법.
  84. 제83항에 있어서,
    상기 피처 엔지니어링을 수행하는 단계는, 상기 특정 피처가 낮은 모델-특유 예측 값을 갖는 것에 기초하여 상기 초기 데이터 세트로부터 특정 피처를 제거하는 단계를 포함하는, 컴퓨터-구현 예측 모델링 방법.
  85. 제84항에 있어서,
    상기 특정 피처의 모델-특유 예측 값이 임계값보다 낮은 것 및 상기 특정 피처의 모델-특유 예측 값이, 상기 초기 데이터 세트의 상기 제1 피처 및 상기 제2 피처들에 대한 상기 특정 모델-특유 예측 값들의 특정된 백분위 값인 것 중 적어도 하나에 기초하여, 상기 특정 피처의 모델-특유 예측 값이 낮은 것으로 결정하는 단계를 더 포함하는, 컴퓨터-구현 예측 모델링 방법.
  86. 제83항에 있어서,
    상기 피처 엔지니어링을 수행하는 단계는:
    상기 초기 데이터 세트의 2 이상의 특정 피처들이 높은 모델-특유 예측 값들을 갖는 것에 기초하여 도출된 피처를 생성하는 단계; 및
    상기 도출된 피처를 상기 초기 데이터 세트에 가산함으로써, 제2 초기 데이터 세트를 생성하는 단계를 포함하는, 컴퓨터-구현 예측 모델링 방법.
  87. 제86항에 있어서,
    상기 특정 피처들의 모델-특유 예측 값들이 임계값보다 높은 것 및 상기 특정 피처들의 상기 모델-특유 예측 값들이 상기 초기 데이터 세트의 상기 제1 피처 및 상기 제2 피처에 대한 상기 특정 모델-특유 예측 값들의 특정된 백분위 값인 것 중 적어도 하나에 기초하여, 상기 특정 피처들의 모델-특유 예측 값들이 높은 것으로 결정하는 단계를 더 포함하는, 컴퓨터-구현 예측 모델링 방법.
  88. 제86항에 있어서,
    상기 특정 예측 모델링 절차를 수행하는 단계는, 상기 특정 예측 모델을 상기 제2 초기 데이터 세트에 맞춤화하는 단계를 더 포함하고, 상기 방법은:
    상기 맞춤화된 특정 예측 모델의 제1 정확도 스코어를 결정하는 단계로서, 상기 맞춤화된 특정 모델의 상기 제1 정확도 스코어는, 상기 맞춤화된 특정 모델이 상기 초기 예측 문제의 하나 이상의 결과들을 예측하는 정확도를 나타내는, 상기 제1 정확도 스코어를 결정하는 단계;
    상기 제2 초기 데이터 세트에 포함된 각각의 관측치들에 걸쳐 상기 제1 피처의 값들을 셔플링함으로써, 제2 수정된 예측 문제를 나타내는 제2 수정된 데이터 세트를 생성하는 단계;
    상기 맞춤화된 특정 예측 모델의 제2 정확도 스코어를 결정하는 단계로서, 상기 맞춤화된 특정 모델의 상기 제2 정확도 스코어는, 상기 맞춤화된 모델이 상기 제2 수정된 예측 문제의 하나 이상의 결과들을 예측하는 정확도를 나타내는, 상기 제2 정확도 스코어를 결정하는 단계; 및
    상기 맞춤화된 특정 모델에 대해 상기 제1 피처의 제2 모델-특유 예측 값을 결정하는 단계를 포함하고, 상기 맞춤화된 특정 모델에 대한 상기 제1 피처의 제2 모델-특유 예측 값은 상기 맞춤화된 특정 모델의 제1 정확도 스코어 및 제2 정확도 스코어에 기초하는, 컴퓨터-구현 예측 모델링 방법.
  89. 제82항에 있어서,
    상기 복수의 제2 모델링 절차들을 수행하기 전에:
    상기 초기 예측 문제에 대해 상기 선택된 모델링 절차들의 적절성에 기초하여 상기 제2 모델링 절차들을 선택하는 단계를 더 포함하고,
    상기 초기 예측 문제에 대한 상기 특정 예측 모델링 절차의 적절성은, 상기 초기 데이터 세트의 하나 이상의 특정 피처들의 특성들이 상기 특정 예측 모델링 절차를 위해 높은 모델-특유 예측 값들을 갖는 것에 적어도 부분적으로 기초하여 결정되는, 컴퓨터-구현 예측 모델링 방법.
  90. 제89항에 있어서,
    명령어를 복수의 프로세싱 노드들에 송신하는 단계로서, 상기 명령어는 상기 제2 모델링 절차들의 실행을 위해 상기 프로세싱 노드들의 자원들을 할당하는 자원 할당 스케줄을 포함하고, 상기 자원 할당 스케줄은 상기 초기 예측 문제에 대해 상기 제2 모델링 절차들의 적절성에 적어도 부분적으로 기초하는, 상기 명령어를 송신하는 단계;
    상기 자원 할당 스케줄에 따라 상기 복수의 프로세싱 노드들에 의해 상기 제2 모델링 절차들의 실행의 결과들을 수신하는 단계로서, 상기 결과들은 상기 제2 모델링 절차들에 의해 생성된 예측 모델들, 및 상기 초기 예측 문제와 연관된 데이터에 대해 생성된 모델들의 스코어 중 적어도 하나를 포함하는, 상기 실행의 결과들을 수신하는 단계; 및
    상기 생성된 모델들로부터, 상기 선택된 예측 모델의 스코어에 적어도 부분적으로 기초하여 상기 초기 예측 문제에 대한 예측 모델을 선택하는 단계를 더 포함하는, 컴퓨터-구현 예측 모델링 방법.
  91. 제89항에 있어서,
    상기 생성된 예측 모델들 중 2개 이상을 조합하여 혼합된 예측 모델을 생성하는 단계; 및
    상기 혼합된 예측 모델을 평가하는 단계를 더 포함하는, 컴퓨터-구현 예측 모델링 방법.
  92. 제65항에 있어서,
    상기 수정된 예측 문제에 대한 상기 피처의 예측 값은 임계 예측 값보다 작은, 컴퓨터-구현 예측 모델링 방법.
  93. 예측 모델링 장치에 있어서,
    프로세서-실행 가능 명령어를 저장하도록 구성된 메모리; 및
    상기 프로세서-실행 가능 명령어를 실행하도록 구성되는 프로세서를 포함하며;
    상기 프로세서-실행 가능 명령어의 실행은, 상기 장치로 하여금 이하의 단계들을 수행하게 하고, 상기 단계들은:
    (a) 복수의 예측 모델링 절차들을 수행하는 단계로서, 상기 예측 모델링 절차들의 각각은 예측 모델과 연관되고, 각각의 모델링 절차의 수행은 초기 예측 문제를 나타내는 초기 데이터 세트에 상기 연관된 예측 모델을 맞춤화하는 것을 포함하는, 상기 복수의 예측 모델링 절차들을 수행하는 단계;
    (b) 상기 맞춤화된 각각의 예측 모델들의 각각의 제1 정확도 스코어를 결정하는 단계로서, 각각의 맞춤화된 모델의 상기 제1 정확도 스코어는, 상기 맞춤화된 모델이 상기 초기 예측 문제의 하나 이상의 결과들을 예측하는 정확도를 나타내는, 상기 제1 정확도 스코어를 결정하는 단계;
    (c) 상기 초기 데이터 세트에 포함된 각각의 관측치들에 걸쳐 피처의 값들을 셔플링함으로써, 수정된 예측 문제를 나타내는 수정된 데이터 세트를 생성하는 단계;
    (d) 상기 맞춤화된 각각의 예측 모델의 각각의 제2 정확도 스코어를 결정하는 단계로서, 각각의 맞춤화된 모델의 상기 제2 정확도 스코어는, 상기 맞춤화된 모델이 상기 수정된 예측 문제의 하나 이상의 결과들을 예측하는 정확도를 나타내는, 상기 제2 정확도 스코어를 결정하는 단계; 및
    (e) 상기 맞춤화된 모델의 각각에 대한 피처의 각각의 모델-특유 예측 값을 결정하는 단계를 포함하고, 각각의 맞춤화된 모델에 대한 상기 피처의 모델-특유 예측 값은 상기 맞춤화된 모델의 상기 제1 정확도 스코어 및 상기 제2 정확도 스코어에 기초하는, 예측 모델링 장치.
  94. 컴퓨터-판독 가능 명령어를 저장한 제조품에 있어서, 프로세서에 의해 실행될 때 상기 프로세서로 하여금 이하의 동작들을 수행하게 하고, 상기 동작들은:
    (a) 복수의 예측 모델링 절차들을 수행하는 동작으로서, 상기 예측 모델링 절차들의 각각은 예측 모델과 연관되고, 각각의 모델링 절차의 수행은 초기 예측 문제를 나타내는 초기 데이터 세트에 상기 연관된 예측 모델을 맞춤화하는 것을 포함하는, 상기 복수의 예측 모델링 절차들을 수행하는 동작;
    (b) 상기 맞춤화된 각각의 예측 모델들의 각각의 제1 정확도 스코어를 결정하는 동작으로서, 각각의 맞춤화된 모델의 상기 제1 정확도 스코어는, 상기 맞춤화된 모델이 상기 초기 예측 문제의 하나 이상의 결과들을 예측하는 정확도를 나타내는, 상기 제1 정확도 스코어를 결정하는 동작;
    (c) 상기 초기 데이터 세트에 포함된 각각의 관측치들에 걸쳐 피처의 값들을 셔플링함으로써, 수정된 예측 문제를 나타내는 수정된 데이터 세트를 생성하는 동작;
    (d) 상기 맞춤화된 각각의 예측 모델의 각각의 제2 정확도 스코어를 결정하는 동작으로서, 각각의 맞춤화된 모델의 상기 제2 정확도 스코어는, 상기 맞춤화된 모델이 상기 수정된 예측 문제의 하나 이상의 결과들을 예측하는 정확도를 나타내는, 상기 제2 정확도 스코어를 결정하는 동작; 및
    (e) 상기 맞춤화된 모델의 각각에 대한 상기 피처의 각각의 모델-특유 예측 값을 결정하는 동작을 포함하고, 각각의 맞춤화된 모델에 대한 상기 피처의 상기 모델-특유 예측 값은 상기 맞춤화된 모델의 상기 제1 정확도 스코어 및 상기 제2 정확도 스코어에 기초하는, 컴퓨터-판독 가능 명령어를 저장한 제조품.
  95. 예측 모델링 방법에 있어서.
    맞춤화된 1차 예측 모델을 얻는 단계로서, 상기 1차 예측 모델은 하나 이상의 제1 입력 변수들의 값들에 기초하여 예측 문제의 하나 이상의 출력 변수들의 값들을 예측하도록 구성되는, 상기 맞춤화된 1차 예측 모델을 얻는 단계; 및
    상기 맞춤화된 1차 모델에 대해 2차 예측 모델링 절차를 수행하는 단계를 포함하고, 상기 2차 모델링 절차는 2차 예측 모델과 연관되며,
    상기 맞춤화된 1차 모델에 대해 상기 2차 예측 모델링 절차를 수행하는 단계는:
    복수의 2차 관측치들을 포함하는 2차 입력 데이터를 생성하는 단계로서, 각각의 2차 관측치는 하나 이상의 제2 입력 변수들의 각각의 관측된 값들 및 상기 출력 변수들의 예측된 값들을 포함하고, 각각의 2차 관측치에 대해 상기 2차 입력 데이터를 생성하는 단계는, 상기 제2 입력 변수들의 각각의 관측된 값들 및 상기 제1 입력 변수들의 대응하는 관측된 값들을 얻는 단계와, 상기 출력 변수들의 각각의 예측된 값들을 생성하기 위해 상기 입력 변수들의 대응하는 관측된 값들에 상기 1차 예측 모델을 적용하는 단계를 포함하는, 상기 2차 입력 데이터를 생성하는 단계,
    상기 2차 입력 데이터로부터, 2차 트레이닝 데이터 및 2차 테스팅 데이터를 생성하는 단계,
    상기 2차 예측 모델을 상기 2차 트레이닝 데이터에 맞춤화함으로써, 상기 맞춤화된 1차 모델의 맞춤화된 2차 예측 모델을 생성하는 단계, 및
    상기 2차 테스팅 데이터에 대해 상기 맞춤화된 1차 모델의 맞춤화된 2차 예측 모델을 테스트하는 단계를 포함하는, 예측 모델링 방법.
  96. 제95항에 있어서,
    상기 맞춤화된 1차 모델을 얻는 단계는, 상기 1차 예측 모델과 연관된 1차 예측 모델 절차를 수행하는 단계를 포함하고, 상기 1차 예측 모델링 절차를 수행하는 단계는:
    복수의 1차 관측치들을 포함하는 1차 입력 데이터를 얻는 단계로서, 각각의 1차 관측치는 상기 제1 입력 변수들의 각각의 관측된 값들 및 상기 출력 변수들의 대응하는 관측된 값들을 포함하는, 상기 1차 입력 데이터를 얻는 단계;
    상기 1차 입력 데이터로부터, 1차 트레이닝 데이터 및 1차 테스팅 데이터를 생성하는 단계,
    상기 1차 예측 모델을 상기 1차 트레이닝 데이터에 맞춤화하는 단계, 및
    상기 맞춤화된 1차 예측 모델을 상기 테스팅 데이터에 대해 테스트하는 단계를 포함하는, 예측 모델링 방법.
  97. 제95항에 있어서,
    상기 맞춤화된 1차 모델을 얻는 단계는 2개의 맞춤화된 예측 모델들을 혼합하는 단계를 포함하는, 예측 모델링 방법.
  98. 제95항에 있어서,
    상기 맞춤화된 1차 모델을 얻는 단계는:
    상기 예측 문제의 특성들 및 상기 각각의 1차 예측 모델링 절차들의 속성들 중 적어도 하나에 적어도 부분적으로 기초하여, 상기 예측 문제에 대한 복수의 1차 예측 모델링 절차들의 적절성을 결정하는 단계;
    상기 예측 문제에 대한 상기 선택된 모델링 절차들의 결정된 적절성에 기초하여, 상기 복수의 1차 예측 모델링 절차들로부터 하나 이상의 예측 모델링 절차들을 선택하는 단계; 및
    상기 하나 이상의 예측 모델링 절차들을 수행하는 단계를 포함하는, 예측 모델링 방법.
  99. 제98항에 있어서,
    상기 하나 이상의 예측 모델링 절차들을 수행하는 단계는:
    명령어를 복수의 프로세싱 노드들로 송신하는 단계로서, 상기 명령어는 상기 선택된 모델링 절차들의 실행을 위해 상기 프로세싱 노드들의 자원들을 할당하는 자원 할당 스케줄을 포함하고, 상기 자원 할당 스케줄은 상기 예측 문제에 대해 상기 선택된 모델링 절차들의 적절성에 적어도 일부 기초하는, 상기 명령어를 송신하는 단계;
    상기 자원 할당 스케줄에 따라, 상기 복수의 프로세싱 노드들에 의해 상기 선택된 모델링 절차들의 실행의 결과들을 수신하는 단계로서, 상기 결과들은 상기 선택된 모델링 절차들에 의해 생성된 예측 모델들을 포함하는, 상기 실행의 결과들을 수신하는 단계; 및
    상기 맞춤화된 1차 모델을 상기 생성된 모델들로부터 선택하는 단계를 포함하는, 예측 모델링 방법.
  100. 제95항에 있어서,
    상기 2차 예측 모델은 RuleFit 모델 및 일반화된 가산 모델로 이루어지는 그룹으로부터 선택되는, 예측 모델링 방법.
  101. 제95항에 있어서,
    상기 2차 모델의 상호 유효성 검증을 수행하는 단계를 더 포함하고, 상기 2차 입력 데이터는 적어도 하나의 데이터 세트를 포함하고, 상기 2차 트레이닝 데이터를 생성하는 단계는 상기 데이터 세트의 제1 서브세트를 얻는 단계를 포함하고, 상기 2차 테스팅 데이터를 생성하는 단계는 상기 데이터 세트의 제2 서브세트를 얻는 단계를 포함하는, 예측 모델링 방법.
  102. 제101항에 있어서,
    상기 2차 트레이닝 데이터는 제1 2차 트레이닝 데이터이고, 상기 2차 테스팅 데이터는 제1 2차 테스팅 데이터이고, 상기 맞춤화된 2차 모델은 제1 맞춤화된 2차 모델이고, 상기 2차 모델의 상호 유효성 검증을 수행하는 단계는:
    (a) 상기 2차 입력 데이터로부터 제2 2차 트레이닝 데이터 및 제2 2차 테스팅 데이터를 생성하는 단계로서, 상기 제2 2차 트레이닝 데이터는 상기 데이터 세트의 제3 서브세트를 포함하고, 상기 제2 2차 테스팅 데이터는 상기 데이터 세트의 제4 서브세트를 포함하는, 상기 제2 2차 트레이닝 데이터 및 제2 2차 테스팅 데이터를 생성하는 단계;
    (b) 제2 맞춤화된 2차 예측 모델을 얻기 위해 상기 2차 예측 모델을 상기 제2 2차 트레이닝 데이터에 맞춤화하는 단계; 및
    (c) 상기 제2 2차 예측 모델을 상기 제2 2차 테스팅 데이터에 대해 테스트하는 단계를 포함하는, 예측 모델링 방법.
  103. 제102항에 있어서,
    적어도 제1 분할 및 제2 분할을 포함하는 복수의 분할들로 상기 데이터 세트를 분할하는 단계를 더 포함하는, 예측 모델링 방법.
  104. 제103항에 있어서,
    상기 데이터 세트를 복수의 분할들로 분할하는 단계는, 상기 데이터 세트의 각각의 관측치를 각각의 분할에 랜덤하게 할당하는 단계를 포함하는, 예측 모델링 방법.
  105. 제104항에 있어서,
    상기 제1 2차 트레이닝 데이터는 상기 데이터 세트의 제1 분할을 포함하고;
    상기 제1 2차 테스팅 데이터는 상기 제1 분할을 제외한 상기 데이터 세트의 분할들을 모두 포함하고;
    상기 제2 2차 트레이닝 데이터는 상기 데이터 세트의 제2 분할을 포함하고; 그리고
    상기 제2 2차 테스팅 데이터는 상기 제2 분할을 제외한 상기 데이터 세트의 분할들을 모두 포함하는, 예측 모델링 방법.
  106. 제104항에 있어서,
    상기 제1 2차 트레이닝 데이터는 상기 데이터 세트의 제1 분할의 서브세트를 포함하고;
    상기 제1 2차 테스팅 데이터는 상기 제1 분할을 제외한 상기 데이터 세트의 분할들 모두의 각각의 서브세트들을 포함하고;
    상기 제2 2차 트레이닝 데이터는 상기 데이터 세트의 제2 분할의 서브세트를 포함하고; 및
    상기 제2 2차 테스팅 데이터는 상기 제2 분할을 제외한 상기 데이터 세트의 분할들 모두의 각각의 서브세트들을 포함하는, 예측 모델링 방법.
  107. 제102항에 있어서,
    상기 2차 입력 데이터는 제1 분할 및 제2 분할을 포함하고,
    상기 데이터 세트는 상기 2차 입력 데이터의 제1 분할을 포함하고, 및
    상기 방법은 상기 2차 입력 데이터의 제2 분할을 포함하는 홀드아웃 데이터에 대해 상기 제1 및 제2 맞춤화된 2차 모델들을 테스트하는 단계를 더 포함하는, 예측 모델링 방법.
  108. 제107항에 있어서,
    상기 홀드아웃 데이터에는 예측 모델이 맞춤화되지 않는, 예측 모델링 방법.
  109. 제95항에 있어서,
    상기 2차 예측 모델링 절차를 수행하는 단계는, 상기 2차 예측 모델의 네스팅된 상호 유효성 검증을 수행하는 단계를 더 포함하는, 예측 모델링 방법.
  110. 제109항에 있어서,
    상기 2차 입력 데이터는 적어도 하나의 데이터 세트를 포함하고;
    상기 2차 예측 모델의 네스팅된 상호 유효성 검증을 수행하는 단계는:
    상기 데이터 세트의 적어도 제1 분할 및 상기 데이터 세트의 제2 분할을 포함하는 상기 데이터 세트의 제1 복수의 분할들로 상기 데이터 세트를 분할하는 단계, 및
    적어도 상기 데이터 세트의 상기 제1 분할의 제1 분할 및 상기 데이터 세트의 상기 제1 분할의 제2 분할을 포함하는 상기 데이터 세트의 제1 분할의 복수의 분할들로 상기 데이터 세트의 제1 분할을 분할하는 단계를 포함하고;
    상기 2차 트레이닝 데이터는 상기 데이터 세트의 상기 제1 분할의 제1 분할을 포함하고; 및
    상기 2차 테스팅 데이터는 상기 데이터 세트의 상기 제1 분할의 제1 분할을 제외한 상기 데이터 세트의 제1 분할의 분할들 모두를 포함하는, 예측 모델링 방법.
  111. 제110항에 있어서,
    상기 2차 트레이닝 데이터는 제1 2차 트레이닝 데이터이고, 상기 2차 테스팅 데이터는 제1 2차 테스팅 데이터이고, 상기 맞춤화된 2차 모델은 제1 맞춤화된 모델이고, 상기 2차 예측 모델의 상기 네스팅된 상호 유효성 검증을 수행하는 단계는:
    (a) 상기 데이터 세트의 제1 분할로부터, 제2 2차 트레이닝 데이터 및 제2 2차 테스팅 데이터를 생성하는 단계로서, 상기 제2 2차 트레이닝 데이터는 상기 데이터 세트의 상기 제1 분할의 제2 분할을 포함하고, 상기 제2 2차 테스팅 데이터는 상기 데이터 세트의 상기 제1 분할의 제2 분할 이외의 상기 데이터 세트의 제1 분할의 복수의 분할들을 포함하는, 상기 제2 2차 트레이닝 데이터 및 제2 2차 테스팅 데이터를 생성하는 단계;
    (b) 제2 2차 맞춤화된 예측 모델을 얻기 위해 상기 2차 예측 모델을 상기 제2 2차 트레이닝 데이터에 맞춤화하는 단계; 및
    (c) 상기 제2 2차 맞춤화된 모델을 상기 제2 2차 테스팅 데이터에 대해 테스트하는 단계를 더 포함하는, 예측 모델링 방법.
  112. 제111항에 있어서,
    상기 네스팅된 상호 유효성 검증을 수행하는 단계는:
    상기 제1 맞춤화된 2차 모델 및 상기 제2 맞춤화된 2차 모델을 상기 데이터 세트의 제2 분할에 대해 테스트하는 단계; 및
    상기 제1 맞춤화된 2차 모델 및 상기 제2 맞춤화된 2차 모델을 상기 데이터 세트의 제2 분할에 대해 테스트한 결과에 기초하여, 상기 제1 맞춤화된 2차 모델과 상기 제2 맞춤화된 2차 모델을 비교하는 단계를 더 포함하는, 예측 모델링 방법.
  113. 제95항에 있어서,
    상기 맞춤화된 예측 모델들의 각각의 정확도 스코어를 결정하는 단계를 더 포함하고, 각각의 맞춤화된 모델의 상기 정확도 스코어는, 상기 맞춤화된 모델이 하나 이상의 예측 문제의 결과들을 예측하는 정확도를 나타내는, 예측 모델링 방법.
  114. 제113항에 있어서,
    상기 맞춤화된 1차 모델의 정확도 스코어와 상기 맞춤화된 2차 모델의 정확도 스코어 사이의 불일치를 결정하는 단계를 더 포함하는, 예측 모델링 방법.
  115. 제114항에 있어서,
    상기 맞춤화된 2차 모델의 정확도 스코어는 상기 맞춤화된 1차 모델의 정확도 스코어를 초과하는, 예측 모델링 방법.
  116. 제95항에 있어서,
    하나 이상의 예측 문제들의 결과들을 예측하기 위해 상기 맞춤화된 예측 모델 각각에 의해 사용되는 연산 자원의 양을 결정하는 단계를 더 포함하는, 예측 모델링 방법.
  117. 제116항에 있어서,
    상기 맞춤화된 1차 모델에 의해 사용되는 연산 자원의 양과 상기 맞춤화된 2차 모델에 의해 사용되는 연산 자원의 양 사이의 불일치를 결정하는 단계를 더 포함하는, 예측 모델링 방법.
  118. 제117항에 있어서,
    상기 맞춤화된 2차 모델에 의해 사용된 연산 자원의 양은 상기 맞춤화된 1차 모델에 의해 사용되는 연산 자원의 양보다 작은, 예측 모델링 방법.
  119. 제95항에 있어서,
    상기 맞춤화된 2차 모델을 배치하는 단계를 더 포함하는, 예측 모델링 방법.
  120. 제119항에 있어서,
    상기 맞춤화된 2차 모델을 배치하는 단계는, 상기 예측 문제의 인스턴스들을 나타내는 다른 데이터에 상기 맞춤화된 2차 모델을 적용함으로써 복수의 예측들을 생성하는 단계를 포함하고, 상기 2차 입력 데이터는 다른 데이터를 포함하지 않는, 예측 모델링 방법.
  121. 제119항에 있어서,
    상기 맞춤화된 2차 모델은 하나 이상의 조건부 규칙들의 세트를 포함하고, 상기 하나 이상의 조건부 규칙들의 세트는 하나 이상의 머신-실행 가능 if-then 구문들의 세트를 포함하는, 예측 모델링 방법.
  122. 제119항에 있어서,
    상기 2차 입력 데이터는 제1 2차 입력 데이터이고, 상기 맞춤화된 2차 모델을 배치하는 단계는 상기 맞춤화된 2차 모델을 제2 2차 입력 데이터에 적어도 부분적으로 기초하여 리프레시하는 단계를 더 포함하는, 방법.
  123. 제122항에 있어서, 상기 맞춤화된 2차 모델은 제1 맞춤화된 2차 모델이고, 상기 제2 2차 입력 데이터에 적어도 부분적으로 기초하여 상기 맞춤화된 2차 모델을 리프레시하는 단계는,
    상기 제2 2차 입력 데이터로부터, 제2 2차 트레이닝 데이터 및 제2 2차 테스팅 데이터를 생성하는 단계;
    상기 2차 예측 모델을 상기 제2 2차 트레이닝 데이터에 맞춤화함으로써 상기 맞춤화된 1차 모델의 제2 맞춤화된 2차 모델을 생성하는 단계;
    상기 제2 2차 테스팅 데이터에 대해 상기 1차 모델의 상기 제2 맞춤화된 2차 모델을 테스트하는 단계; 및
    리프레시된 2차 예측 모델을 생성하기 위해 상기 제1 맞춤화된 2차 모델과 상기 제2 맞춤화된 2차 모델을 혼합하는 단계를 포함하는, 예측 모델링 방법.
  124. 제122항에 있어서, 상기 맞춤화된 2차 모델은 제1 맞춤화된 2차 모델이고, 상기 제2 2차 입력 데이터에 적어도 부분적으로 기초하여 상기 맞춤화된 2차 모델을 리프레시하는 단계는:
    상기 제1 2차 입력 데이터의 적어도 일부 및 상기 제2 2차 입력 데이터의 적어도 일부를 포함하는 제3 2차 입력 데이터를 생성하는 단계;
    상기 제3 2차 입력 데이터로부터 제3 2차 트레이닝 데이터 및 제3 2차 테스팅 데이터를 생성하는 단계;
    상기 2차 예측 모델을 상기 제3 2차 트레이닝 데이터에 맞춤화함으로써 상기 맞춤화된 1차 모델의 제2 맞춤화된 2차 모델을 생성하는 단계; 및
    상기 1차 모델의 제2 맞춤화된 2차 모델을 상기 제3 2차 테스팅 데이터 상에서 테스트하는 단계를 포함하는, 예측 모델링 방법.
  125. 제95항에 있어서,
    상기 제1 입력 변수들은 상기 제2 입력 변수들인, 예측 모델링 방법.
  126. 제95항에 있어서,
    상기 제1 입력 변수들 및 상기 제2 입력 변수들 모두는 특정 입력 변수를 포함하는, 예측 모델링 방법.
  127. 제95항에 있어서,
    상기 제1 입력 변수들 중 어느 것도 상기 제2 입력 변수들에 포함되지 않는, 예측 모델링 방법.
  128. 제95항에 있어서,
    상기 2차 모델링 절차는 복수의 2차 모델링 절차들 중 하나이고, 상기 2차 예측 모델은 복수의 제2 예측 모델 중 하나이고, 상기 방법은, 상기 복수의 2차 모델링 절차들을 상기 맞춤화된 1차 모델에 대해 수행함으로써, 상기 맞춤화된 1차 모델의 복수의 맞춤화된 2차 모델들을 생성하는, 예측 모델링 방법.
  129. 제128항에 있어서,
    상기 맞춤화된 2차 예측 모델들의 각각의 정확도 스코어를 결정하는 단계를 더 포함하고, 각각의 맞춤화된 2차 모델의 정확도 스코어는, 상기 맞춤화된 2차 모델이 하나 이상의 예측 문제의 결과들을 예측하는 정확도를 나타내는, 예측 모델링 방법.
  130. 제129항에 있어서,
    어떤 정확도 스코어가 가장 높은지를 결정하는 단계; 및
    가장 높은 정확도 스코어를 갖는 상기 맞춤화된 2차 모델을 배치하는 단계를 더 포함하는, 예측 모델링 방법.
  131. 예측 모델링 장치에 있어서,
    2차 예측 모델과 연관된 2차 예측 모델링 절차를 인코딩하는 머신-실행 가능 모듈을 저장하도록 구성되는 메모리로서, 상기 2차 예측 모델링 절차는 적어도 하나의 사전-프로세싱 작업 및 적어도 하나의 모델-맞춤 작업을 포함하는 복수의 작업을 포함하는, 상기 메모리; 및
    상기 머신-실행 가능 모듈을 실행하도록 구성되는 적어도 하나의 프로세서를 포함하고, 상기 머신-실행 가능 모듈을 실행하는 것은 상기 장치로 하여금 맞춤화된 1차 예측 모델에 대해 상기 2차 예측 모델링 절차를 수행하게 하고,
    상기 2차 예측 모델링 절차의 수행은:
    맞춤화된 1차 예측 모델을 얻는 것을 포함하는 상기 사전-프로세싱 작업을 수행하는 단계로서, 상기 1차 예측 모델은 하나 이상의 제1 입력 변수들의 값들에 기초하여 예측 문제의 하나 이상의 출력 변수들의 값들을 예측하도록 구성되는, 단계; 및
    상기 모델-맞춤 작업을 수행하는 단계를 포함하고, 상기 사전-프로세싱 작업을 수행하는 단계는:
    복수의 2차 관측치들을 포함하는 2차 데이터를 생성하는 단계로서, 각각의 2차 관측치는 하나 이상의 제2 입력 변수들의 각각의 관측된 값들 및 상기 출력 변수들의 예측된 값들을 포함하고, 각각의 2차 관측치에 대해 상기 2차 입력 데이터를 생성하는 단계는: 상기 제2 입력 변수들의 각각의 관측된 값들 및 상기 제1 입력 변수들의 대응하는 관측된 값들을 얻는 단계와, 상기 출력 변수들의 각각의 예측된 값들을 생성하기 위해 상기 입력 변수들의 대응하는 관측된 값들에 상기 1차 예측 모델을 적용하는 단계를 포함하는, 상기 2차 데이터를 생성하는 단계,
    상기 2차 입력 데이터로부터, 2차 트레이닝 데이터 및 2차 테스팅 데이터를 생성하는 단계,
    상기 2차 예측 모델을 상기 2차 트레이닝 데이터에 맞춤화함으로써, 상기 맞춤화된 1차 모델의 맞춤화된 2차 예측 모델을 생성하는 단계, 및
    상기 2차 테스팅 데이터에 대해 상기 맞춤화된 1차 모델의 상기 맞춤화된 2차 예측 모델을 테스트하는 단계를 포함하는, 예측 모델링 장치.
KR1020197014598A 2016-10-21 2017-10-21 예측 데이터 분석을 위한 시스템 및 관련 방법 및 장치 KR102448694B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201662411526P 2016-10-21 2016-10-21
US15/331,797 US10366346B2 (en) 2014-05-23 2016-10-21 Systems and techniques for determining the predictive value of a feature
US62/411,526 2016-10-21
US15/331,797 2016-10-21
PCT/US2017/057763 WO2018075995A1 (en) 2016-10-21 2017-10-21 Systems for predictive data analytics, and related methods and apparatus

Publications (2)

Publication Number Publication Date
KR20190108559A true KR20190108559A (ko) 2019-09-24
KR102448694B1 KR102448694B1 (ko) 2022-09-28

Family

ID=60421839

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020197014598A KR102448694B1 (ko) 2016-10-21 2017-10-21 예측 데이터 분석을 위한 시스템 및 관련 방법 및 장치

Country Status (7)

Country Link
EP (1) EP3529755A1 (ko)
JP (2) JP7107926B2 (ko)
KR (1) KR102448694B1 (ko)
AU (1) AU2017345796A1 (ko)
GB (2) GB2606674B (ko)
SG (1) SG10202104185UA (ko)
WO (1) WO2018075995A1 (ko)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102152957B1 (ko) * 2019-10-18 2020-09-07 (의료)길의료재단 심박 변이도(hrv)에 기초한 기타 불안장애로부터 공황장애 감별 방법 및 그 장치
KR102153834B1 (ko) * 2019-11-25 2020-09-09 티아이테크놀로지 주식회사 확정치 및 추정치 기반의 데이터 정량화 방법
KR102204958B1 (ko) * 2019-10-28 2021-01-20 삼성에스디에스 주식회사 의료 검사 결과 데이터의 처리 방법
KR20210077314A (ko) * 2019-12-17 2021-06-25 충북대학교 산학협력단 교육종단연구 데이터를 처리하는 장치 및 방법
KR102290494B1 (ko) * 2021-03-10 2021-08-17 주식회사 코루제약 히알루론산을 함유하여 피부의 볼륨과 탄력성 유지에 적합한 효과를 나타내는 필러 조성물을 제조하는 방법
KR20210132853A (ko) * 2020-04-28 2021-11-05 이진행 확률적 경사 하강법을 이용한 변수 선택 장치 및 방법
KR102414821B1 (ko) * 2021-11-02 2022-06-30 주식회사 에이젠글로벌 금융 서비스를 위한 인공지능 모델 생성 방법 및 이러한 방법을 수행하는 장치
KR20220111897A (ko) * 2021-02-03 2022-08-10 주식회사 크로커스 모드 분해와 신경망을 이용한 전력 예측 장치
KR20230101424A (ko) * 2021-12-29 2023-07-06 한국남동발전 주식회사 스마트 발전 연료 가격 예측 시스템 및 방법
WO2024063195A1 (ko) * 2022-09-23 2024-03-28 전남대학교산학협력단 샘플 크기가 작고 불균형한 분포를 가진 임상 데이터에서 예측을 위한 통계적학습 프레임워크

Families Citing this family (45)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10990067B2 (en) 2016-07-07 2021-04-27 Aspen Technology, Inc. Computer system and method for the dynamic construction and online deployment of an operation-centric first-principles process model for predictive analytics
US10425353B1 (en) 2017-01-27 2019-09-24 Triangle Ip, Inc. Machine learning temporal allocator
AU2018249767A1 (en) 2017-04-03 2019-08-22 Telefonaktiebolaget Lm Ericsson (Publ) HARQ handling for nodes with variable processing times
WO2019182590A1 (en) * 2018-03-21 2019-09-26 Visa International Service Association Automated machine learning systems and methods
US11157837B2 (en) 2018-08-02 2021-10-26 Sas Institute Inc. Advanced detection of rare events and corresponding interactive graphical user interface
US11816686B2 (en) * 2018-10-02 2023-11-14 Mercari, Inc. Determining sellability score and cancellability score
US11068942B2 (en) * 2018-10-19 2021-07-20 Cerebri AI Inc. Customer journey management engine
US20200161002A1 (en) * 2018-11-21 2020-05-21 International Business Machines Corporation Predicting an occurrence of a symptom in a patient
US20200184366A1 (en) * 2018-12-06 2020-06-11 Fujitsu Limited Scheduling task graph operations
US11568286B2 (en) * 2019-01-31 2023-01-31 Fair Isaac Corporation Providing insights about a dynamic machine learning model
US11429873B2 (en) * 2019-03-15 2022-08-30 International Business Machines Corporation System for automatic deduction and use of prediction model structure for a sequential process dataset
US11853032B2 (en) 2019-05-09 2023-12-26 Aspentech Corporation Combining machine learning with domain knowledge and first principles for modeling in the process industries
US20200387818A1 (en) * 2019-06-07 2020-12-10 Aspen Technology, Inc. Asset Optimization Using Integrated Modeling, Optimization, and Artificial Intelligence
CN110310048B (zh) * 2019-07-10 2023-07-04 云南电网有限责任公司电力科学研究院 一种配网规划全过程评估方法及装置
US11782401B2 (en) 2019-08-02 2023-10-10 Aspentech Corporation Apparatus and methods to build deep learning controller using non-invasive closed loop exploration
CN110443420B (zh) * 2019-08-05 2023-05-09 山东农业大学 一种基于机器学习的作物产量预测方法
US11068758B1 (en) * 2019-08-14 2021-07-20 Compellon Incorporated Polarity semantics engine analytics platform
US11568187B2 (en) 2019-08-16 2023-01-31 Fair Isaac Corporation Managing missing values in datasets for machine learning models
KR102634916B1 (ko) * 2019-08-29 2024-02-06 주식회사 엘지에너지솔루션 온도 추정 모델 결정 방법 및 장치, 온도 추정 모델이 적용된 배터리 관리 시스템
WO2021054905A1 (en) * 2019-09-19 2021-03-25 Bi̇lkav Eği̇ti̇m Danişmanlik Anoni̇m Şi̇rketi̇ A machine learning based prediction system and method
WO2021065021A1 (ja) * 2019-09-30 2021-04-08 株式会社日立情報通信エンジニアリング 状態予測システム
WO2021075954A1 (en) * 2019-10-14 2021-04-22 Malayan Banking Berhad Due-diligence for risk mitigation
WO2021076760A1 (en) 2019-10-18 2021-04-22 Aspen Technology, Inc. System and methods for automated model development from plant historical data for advanced process control
US11568367B2 (en) * 2019-11-07 2023-01-31 Zebel Group, Inc. Automated parameterized modeling and scoring intelligence system
CN112783890B (zh) * 2019-11-08 2024-05-07 珠海金山办公软件有限公司 一种生成数据透视表行的方法及装置
CN111008705B (zh) * 2019-12-06 2024-02-13 东软集团股份有限公司 一种搜索方法、装置及设备
KR102235588B1 (ko) * 2019-12-09 2021-04-02 한국로봇융합연구원 다중 계층을 포함하는 인공지능 모델의 계층별 추론 분류 성능 평가 방법 및 평가 장치
CN113052582B (zh) * 2019-12-27 2024-03-22 中移动信息技术有限公司 一种账单校验的方法、装置、设备及计算机存储介质
US20210217514A1 (en) * 2020-01-13 2021-07-15 Skygen USA, LLC Systems, methods, and media for generating peer group driven operational recommendations
CN113535829B (zh) * 2020-04-17 2022-04-29 阿里巴巴集团控股有限公司 排序模型的训练方法、装置、电子设备及存储介质
US11231967B2 (en) * 2020-04-20 2022-01-25 Stratum, Llc Dynamically allocating and managing cloud workers
JP6963062B1 (ja) * 2020-06-22 2021-11-05 株式会社Yamato 情報処理装置及び情報処理方法
KR102386782B1 (ko) * 2020-08-24 2022-04-14 강원대학교산학협력단 로지스틱 회귀를 이용한 아크신호 검출방법
US11494285B1 (en) * 2020-09-30 2022-11-08 Amazon Technologies, Inc. Static code analysis tool and configuration selection via codebase analysis
CN114372569A (zh) * 2020-10-14 2022-04-19 新智数字科技有限公司 数据测量方法、装置、电子设备和计算机可读介质
CN112395336B (zh) * 2020-11-27 2024-03-19 北京卫星环境工程研究所 一种长时间序列数据管理和可视化方法
CN112699113B (zh) * 2021-01-12 2022-08-05 上海交通大学 时序数据流驱动的工业制造流程运行监测系统
CN112765891B (zh) * 2021-01-27 2023-11-10 辽宁工程技术大学 一种矿井火灾致灾因子最大值的预测方法
US11630446B2 (en) 2021-02-16 2023-04-18 Aspentech Corporation Reluctant first principles models
CN113076339A (zh) * 2021-03-18 2021-07-06 北京沃东天骏信息技术有限公司 一种数据缓存方法、装置、设备及存储介质
US20230064692A1 (en) * 2021-08-20 2023-03-02 Mediatek Inc. Network Space Search for Pareto-Efficient Spaces
KR102413588B1 (ko) * 2021-11-15 2022-06-27 주식회사 테스트웍스 학습 데이터에 따른 객체 인식 모델 추천 방법, 시스템 및 컴퓨터 프로그램
CN114677022B (zh) * 2022-03-31 2023-09-15 南通电力设计院有限公司 一种多元融合能源分布式管理的方法及系统
GB2622606A (en) * 2022-09-22 2024-03-27 Nokia Technologies Oy Capability reporting for multi-model artificial intelligence/machine learning user equipment features
CN116582702B (zh) * 2023-07-11 2023-09-15 成都工业职业技术学院 一种基于大数据的网络视频播放量预测方法、系统及介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100131314A1 (en) * 2008-11-24 2010-05-27 International Business Machines Corporation System for effectively estimating project size
JP2011034402A (ja) * 2009-08-03 2011-02-17 Sony Corp データ処理装置、データ処理方法、およびプログラム
JP2012198839A (ja) * 2011-03-23 2012-10-18 Denso It Laboratory Inc 交通量予測装置、交通量予測方法およびプログラム
US8370280B1 (en) * 2011-07-14 2013-02-05 Google Inc. Combining predictive models in predictive analytical modeling
KR20130071369A (ko) * 2011-12-20 2013-06-28 내셔날 쳉쿵 유니버시티 예측 모델을 생성하기 위해 샘플들을 선별하는 방법 및 이의 컴퓨터 프로그램 프로덕트
KR101369261B1 (ko) * 2012-02-10 2014-03-06 서울대학교산학협력단 스마트 단말을 이용한 사용자의 이동 경로 실시간 예측 방법 및 그 시스템

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3214876B2 (ja) * 1991-09-19 2001-10-02 株式会社日立製作所 ニューラルネットワークの構成方法およびニューラルネットワーク構築支援システム
US7448037B2 (en) * 2004-01-13 2008-11-04 International Business Machines Corporation Method and data processing system having dynamic profile-directed feedback at runtime
US20050192937A1 (en) * 2004-02-26 2005-09-01 International Business Machines Corporation Dynamic query optimization
KR101279343B1 (ko) * 2005-09-13 2013-07-04 프리스케일 세미컨덕터, 인크. 멀티-스레딩된 프로세서 구조
CN100547553C (zh) * 2007-12-07 2009-10-07 华中科技大学 基于仿真网格的仿真场景自动部署方法
US8656404B2 (en) * 2008-10-16 2014-02-18 Palo Alto Research Center Incorporated Statistical packing of resource requirements in data centers
US9037717B2 (en) * 2009-09-21 2015-05-19 International Business Machines Corporation Virtual machine demand estimation
US8443376B2 (en) * 2010-06-01 2013-05-14 Microsoft Corporation Hypervisor scheduler
US20120151479A1 (en) * 2010-12-10 2012-06-14 Salesforce.Com, Inc. Horizontal splitting of tasks within a homogenous pool of virtual machines
US8943252B2 (en) * 2012-08-16 2015-01-27 Microsoft Corporation Latency sensitive software interrupt and thread scheduling
CN104281492A (zh) * 2013-07-08 2015-01-14 无锡南理工科技发展有限公司 一种异构环境下的Hadoop任务公平调度方法
US9489630B2 (en) 2014-05-23 2016-11-08 DataRobot, Inc. Systems and techniques for predictive data analytics
US9697469B2 (en) * 2014-08-13 2017-07-04 Andrew McMahon Method and system for generating and aggregating models based on disparate data from insurance, financial services, and public industries

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100131314A1 (en) * 2008-11-24 2010-05-27 International Business Machines Corporation System for effectively estimating project size
JP2011034402A (ja) * 2009-08-03 2011-02-17 Sony Corp データ処理装置、データ処理方法、およびプログラム
JP2012198839A (ja) * 2011-03-23 2012-10-18 Denso It Laboratory Inc 交通量予測装置、交通量予測方法およびプログラム
US8370280B1 (en) * 2011-07-14 2013-02-05 Google Inc. Combining predictive models in predictive analytical modeling
KR20130071369A (ko) * 2011-12-20 2013-06-28 내셔날 쳉쿵 유니버시티 예측 모델을 생성하기 위해 샘플들을 선별하는 방법 및 이의 컴퓨터 프로그램 프로덕트
KR101369261B1 (ko) * 2012-02-10 2014-03-06 서울대학교산학협력단 스마트 단말을 이용한 사용자의 이동 경로 실시간 예측 방법 및 그 시스템

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102152957B1 (ko) * 2019-10-18 2020-09-07 (의료)길의료재단 심박 변이도(hrv)에 기초한 기타 불안장애로부터 공황장애 감별 방법 및 그 장치
KR102204958B1 (ko) * 2019-10-28 2021-01-20 삼성에스디에스 주식회사 의료 검사 결과 데이터의 처리 방법
KR102153834B1 (ko) * 2019-11-25 2020-09-09 티아이테크놀로지 주식회사 확정치 및 추정치 기반의 데이터 정량화 방법
WO2021107386A1 (ko) * 2019-11-25 2021-06-03 티아이테크놀로지 주식회사 확정치 및 추정치 기반의 데이터 정량화 방법
KR20210077314A (ko) * 2019-12-17 2021-06-25 충북대학교 산학협력단 교육종단연구 데이터를 처리하는 장치 및 방법
KR20210132853A (ko) * 2020-04-28 2021-11-05 이진행 확률적 경사 하강법을 이용한 변수 선택 장치 및 방법
KR20220111897A (ko) * 2021-02-03 2022-08-10 주식회사 크로커스 모드 분해와 신경망을 이용한 전력 예측 장치
KR102290494B1 (ko) * 2021-03-10 2021-08-17 주식회사 코루제약 히알루론산을 함유하여 피부의 볼륨과 탄력성 유지에 적합한 효과를 나타내는 필러 조성물을 제조하는 방법
KR102414821B1 (ko) * 2021-11-02 2022-06-30 주식회사 에이젠글로벌 금융 서비스를 위한 인공지능 모델 생성 방법 및 이러한 방법을 수행하는 장치
KR20230101424A (ko) * 2021-12-29 2023-07-06 한국남동발전 주식회사 스마트 발전 연료 가격 예측 시스템 및 방법
WO2024063195A1 (ko) * 2022-09-23 2024-03-28 전남대학교산학협력단 샘플 크기가 작고 불균형한 분포를 가진 임상 데이터에서 예측을 위한 통계적학습 프레임워크

Also Published As

Publication number Publication date
WO2018075995A1 (en) 2018-04-26
JP2019537125A (ja) 2019-12-19
EP3529755A1 (en) 2019-08-28
GB2571651A (en) 2019-09-04
JP2021012734A (ja) 2021-02-04
SG10202104185UA (en) 2021-06-29
KR102448694B1 (ko) 2022-09-28
GB201907147D0 (en) 2019-07-03
GB2606674B (en) 2023-06-28
JP7107926B2 (ja) 2022-07-27
GB202211852D0 (en) 2022-09-28
AU2017345796A1 (en) 2019-05-23
GB2606674A (en) 2022-11-16
GB2571651B (en) 2022-09-21

Similar Documents

Publication Publication Date Title
US11922329B2 (en) Systems for second-order predictive data analytics, and related methods and apparatus
KR102448694B1 (ko) 예측 데이터 분석을 위한 시스템 및 관련 방법 및 장치
US20210326782A1 (en) Systems and techniques for predictive data analytics
US10496927B2 (en) Systems for time-series predictive data analytics, and related methods and apparatus
US10366346B2 (en) Systems and techniques for determining the predictive value of a feature
US20220076164A1 (en) Automated feature engineering for machine learning models
US20220076165A1 (en) Systems and methods for automating data science machine learning analytical workflows
CN110309119B (zh) 用于实现数据上传、处理和预测查询api公开的系统、方法和装置
US20220199266A1 (en) Systems and methods for using machine learning with epidemiological modeling
Deka Big data predictive and prescriptive analytics
US20230083891A1 (en) Methods and systems for integrated design and execution of machine learning models
US20230091610A1 (en) Systems and methods of generating and validating time-series features using machine learning
US20230051833A1 (en) Systems and methods for using machine learning with epidemiological modeling
US20230065870A1 (en) Systems and methods of multimodal clustering using machine learning
US20230206610A1 (en) Methods and systems for visual representation of model performance
WO2022240860A1 (en) Methods and systems for identification and visualization of bias and fairness for machine learning models

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant