KR102448694B1 - Systems and related methods and devices for predictive data analysis - Google Patents
Systems and related methods and devices for predictive data analysis Download PDFInfo
- Publication number
- KR102448694B1 KR102448694B1 KR1020197014598A KR20197014598A KR102448694B1 KR 102448694 B1 KR102448694 B1 KR 102448694B1 KR 1020197014598 A KR1020197014598 A KR 1020197014598A KR 20197014598 A KR20197014598 A KR 20197014598A KR 102448694 B1 KR102448694 B1 KR 102448694B1
- Authority
- KR
- South Korea
- Prior art keywords
- data
- time
- predictive
- model
- time series
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Administration; Management
- G06Q10/04—Forecasting or optimisation specially adapted for administrative or management purposes, e.g. linear programming or "cutting stock problem"
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation 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/5038—Allocation 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation 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/5044—Allocation 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Administration; Management
- G06Q10/06—Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
- G06Q10/063—Operations research, analysis or management
- G06Q10/0637—Strategic 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/06375—Prediction 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)
- Quality & Reliability (AREA)
- Tourism & Hospitality (AREA)
- Operations Research (AREA)
- General Business, Economics & Management (AREA)
- Marketing (AREA)
- Game Theory and Decision Science (AREA)
- Development Economics (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차 모델을 생성하기 위한 개선된 기술을 포함할 수 있다.Predictive data analysis techniques are improved techniques for generating predictive models for time-series prediction problems, improved techniques for determining predicted values of input variables (“features”), and improved techniques for generating secondary models of primary predictive models. technology may be included.
Description
<관련 출원에 대한 상호 참조><Cross-Reference to Related Applications>
본 출원은 발명의 명칭이 "피처의 예측값을 결정하기 위한 시스템 및 기술(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호와 관련되며, 그 각각은 적용 가능한 법에 의해 허용되는 최대 범위까지 본원에 참조로 통합된다.This application is entitled "Systems and Techniques for Determining the Predictive Value of a Feature" and was filed on October 21, 2016 and has Attorney's Docket No. DRB-001C1CP. U.S. Patent Application Serial No. 15/331,797 and U.S. Provisional Patent Application No. 62/411,526 entitled "Systems and Techniques for Predictive Data Analysis" filed on October 21, 2016 and having Attorney Docket No. DRB-002PR to the maximum extent permitted by applicable law, each of which is incorporated herein by reference.
<발명의 분야><Field of Invention>
본 발명은 일반적으로 데이터 분석을 위한 시스템 및 기술에 관한 것이다. 일부 실시예는 구체적으로 예측 문제에 대한 예측 모델을 개발, 선택 및/또는 이해하기 위해 통계적 학습 방법을 사용하기 위한 시스템 및 기술에 관한 것이다.FIELD OF THE INVENTION The present invention relates generally to systems and techniques for data analysis. Some embodiments specifically relate to systems and techniques for using statistical learning methods to develop, select, and/or understand predictive models for predictive problems.
많은 조직과 개인은 그 운영을 개선하거나 그 의사-결정을 돕기 위해 전자 데이터를 사용한다. 예를 들어, 많은 비즈니스 기업은 트랜잭션 실행, 입력 및 출력 추적 또는 제품 마케팅과 같은 다양한 비즈니스 프로세스의 효율성을 향상시키기 위해 데이터 관리 기술을 사용한다. 다른 예로서, 많은 비즈니스는 비즈니스 프로세스의 성과를 평가하거나, 프로세스를 개선하는 노력의 효과를 측정하거나 어떻게 프로세스를 조정해야 할지를 결정하기 위해 운영 데이터를 사용한다.Many organizations and individuals use electronic data to improve their operations or aid their decision-making. For example, many business enterprises use data management technologies to improve the efficiency of various business processes, such as executing transactions, tracking inputs and outputs, or marketing products. As another example, many businesses use operational data to evaluate the performance of business processes, to measure the effectiveness of efforts to improve processes, or to determine how processes should be adjusted.
일부 경우에, 전자 데이터가 문제 또는 기회를 예측하는 데 사용될 수 있다. 일부 조직은 예측 모델을 구축하기 위해 과거에 발생한 것을 설명하는 운영 데이터와 실적 통계의 후속값을 설명하는 평가 데이터를 조합한다. 예측 모델에 의해 예측된 결과에 기초하여, 조직은 결정을 내리거나, 프로세스를 조정하거나 다른 액션을 취할 수 있다. 예를 들어, 보험 회사는 미래의 보험금을 보다 정확하게 예상하는 예측 모델, 또는 보험 계약자가 경쟁 보험사로의 전환을 고려하는 때를 예측하는 예측 모델을 구축하려고 시도할 수 있다. 자동차 제조업체는 신차 모델에 대한 수요를 보다 정확하게 예상하는 예측 모델을 구축하려고 시도할 수 있다. 소방서는 화재 위험이 높은 날짜를 예상하거나 어떠한 구조물이 화재로 인해 위험에 처할지를 예측하는 예측 모델을 구축하려고 시도할 수 있다.In some cases, electronic data may be used to predict problems or opportunities. To build predictive models, some organizations combine operational data that describes what happened in the past with evaluation data that describes the successor values of performance statistics. Based on the results predicted by the predictive model, the organization can make decisions, adjust processes, or take other actions. For example, an insurance company may attempt to build a predictive model that more accurately predicts future claims, or when a policyholder considers switching to a competing insurer. Automakers may try to build predictive models that more accurately predict demand for new car models. Fire departments may try to build predictive models to predict high fire risk days or to predict which structures will be at risk from a fire.
머신-학습 기술(machine-learning technique)(예를 들어, 감독 통계-학습 기술)은 적어도 2개의 변수의 이전에 기록된 관측치를 포함하는 데이터 세트로부터 예측 모델을 생성하는 데 사용될 수 있다. 예측될 변수(들)는 "타겟(들)", "반응(들)" 또는 "종속 변수(들)"로 칭해질 수 있다. 예측하는 데 사용할 수 있는 나머지 변수(들)는 "피처(들)", "예측자(들)" 또는 "독립 변수(들)"로 칭해질 수 있다. 관측치는 일반적으로 적어도 하나의 "트레이닝" 데이터 세트와 적어도 하나의 "테스트" 데이터 세트로 분할된다. 그 후, 데이터 분석자는 통계-학습 절차를 선택하고 예측 모델을 생성하기 위해 트레이닝 데이터 세트에 대해 그 절차를 실행한다. 그 후, 분석자는, 모델이 타겟(들)의 실제 관측에 대해 타겟(들)의 값(들)이 얼마나 잘 예측하는지를 결정하기 위해 테스팅 데이터 세트에 대해 생성된 모델을 테스트한다.A machine-learning technique (eg, a supervised statistical-learning technique) may be used to generate a predictive model from a data set comprising previously recorded observations of at least two variables. The variable(s) to be predicted may be referred to as “target(s)”, “response(s)” or “dependent variable(s)”. The remaining variable(s) that can be used to make predictions may be referred to as “feature(s)”, “predictor(s)” or “independent variable(s)”. Observations are generally partitioned into at least one "training" data set and at least one "test" data set. The data analyst then selects a statistic-learning procedure and runs the procedure on the training data set to create a predictive model. The analyst then tests the generated model against the testing data set to determine how well the model predicts the value(s) of the target(s) relative to the actual observation of the target(s).
일부 실시예에 대한 동기Motivation for some embodiments
데이터 분석자는 분석 기술 및 연산 인프라스트럭처를 사용하여 연산 및 평가 데이터를 포함하여 전자 데이터로부터 예측 모델을 구축할 수 있다. 데이터 분석자는 일반적으로 예측 모델을 구축하는 2개의 접근법 중 하나를 사용한다. 첫 번째 접근법에서, 예측 문제를 다루는 조직은 단순히 동일한 예측 문제 또는 유사한 예측 문제에 대해 이미 개발된 패키지화된 예측 모델링 해결책을 사용한다. 이 "쿠키 커터(cookie cutter)" 접근법은 저렴하지만 일반적으로 비교적 많은 수의 조직에 공통적인 소수의 예측 문제(예를 들어, 사기 탐지, 불량 관리, 마케팅 응답 등)에 대해서만 가능하다. 두 번째 접근법을 사용하면, 데이터 분석 팀이 예측 문제에 대한 커스텀화된 예측 모델링 해결책을 구축한다. 이 "장인정신(artisanal)" 접근법은 일반적으로 비용이 많이 들고 시간 소모적이므로, 소수의 고-가치 예측 문제에 사용되는 경향이 있다.Data analysts can use analytics techniques and computational infrastructure to build predictive models from electronic data, including computational and evaluation data. Data analysts typically use one of two approaches to building predictive models. In the first approach, organizations dealing with predictive problems simply use packaged predictive modeling solutions already developed for the same or similar predictive problems. This "cookie cutter" approach is inexpensive, but generally only works for a handful of predictive problems common to a relatively large number of organizations (eg, fraud detection, bad management, marketing response, etc.). Using the second approach, data analytics teams build customized predictive modeling solutions to predictive problems. This "artisanal" approach tends to be used for a small number of high-value forecasting problems, as it is generally expensive and time consuming.
예측 문제에 대한 잠재적인 예측 모델링 해결책의 공간은 일반적으로 크고 복잡하다. 통계적 학습 기술은 (예를 들어, 수학, 통계학, 물리학, 공학, 경제학, 사회학, 생물학, 의학, 인공 지능, 데이터 마이닝 등의) 많은 학술 전통과 (예를 들어, 금융, 보험, 소매, 제조, 건강 관리 등의) 많은 상업 분야에서이 애플리케이션에 의해 영향을 받는다. 결과적으로, 다양한 변형 및/또는 튜닝 파라미터를 가질 수 있는 많은 다른 예측 모델링 알고리즘뿐만 아니라, 그 자신의 변형 및/또는 파라미터를 갖는 상이한 사전-프로세싱 및 사후-프로세싱 단계가 존재한다. 잠재적인 예측 모델링 해결책(예를 들어, 사전-프로세싱 단계, 모델링 알고리즘 및 사후-프로세싱 단계의 조합)의 양은 이미 상당히 크고, 연구자가 새로운 기술을 개발함에 따라 빠르게 증가하고 있다.The space of potential predictive modeling solutions to predictive problems is usually large and complex. Statistical learning techniques (e.g., mathematics, statistics, physics, engineering, economics, sociology, biology, medicine, artificial intelligence, data mining, etc.) and many academic traditions (e.g., finance, insurance, retail, manufacturing, Many commercial sectors (such as health care) are affected by this application. As a result, there are many other predictive modeling algorithms that may have various transformations and/or tuning parameters, as well as different pre-processing and post-processing steps with their own transformations and/or parameters. The amount of potential predictive modeling solutions (eg, a combination of pre-processing steps, modeling algorithms and post-processing steps) is already quite large and is growing rapidly as researchers develop new techniques.
예측 모델링 기술의 이러한 방대한 공간을 감안할 때, 예측 모델을 생성하는 데 대한 장인정신 접근법은 시간 소모적이고 모델링 검색 공간의 많은 부분을 탐색하지 않는 경향이 있다. 분석자들은 직관이나 이전 경험 및 광범위한 시행착오 테스트를 기반으로 임시적인 방식으로 모델링 공간을 탐색하는 경향이 있다. 그들은 탐색의 잠재적으로 유용한 길을 추구하지 않거나 초기 노력의 결과에 대한 응답으로 검색(search)을 적절하게 조정하지 않을 수 있다. 또한, 시행착오의 범위는 분석자의 시간 제약에 의해 제한되는 경향이 있어, 장인정신 접근법은 일반적으로 모델링 검색 공간의 일부만을 탐색한다.Given this vast space of predictive modeling techniques, craftsmanship approaches to creating predictive models tend to be time consuming and not explore large portions of the modeling search space. Analysts tend to explore the modeling space in an ad hoc fashion, based on intuition or previous experience and extensive trial and error testing. They may not pursue a potentially useful path of search or may not properly tailor the search in response to the results of the initial effort. Also, the scope of trial and error tends to be limited by the analyst's time constraints, so craftsmanship approaches typically only explore a fraction of the modeling search space.
장인정신 접근법은 또한 매우 비쌀 수 있다. 장인정신 접근법을 통해 예측 모델을 개발하면 종종 컴퓨팅 자원과 고가의(well-paid) 데이터 분석자에 상당한 투자가 수반된다. 이러한 상당한 비용을 감안할 때, 조직은, 비용이 적게 들지만 광대한 예측 모델링 공간의 단지 작은 부분(예를 들어, 모델링 공간의 일부 특정 예측 문제에 대한 수용 가능한 해결책을 포함하는 것으로 선험적으로 예상되는 부분)만을 탐색하는 경향이 있는 쿠키 커터 방식을 선호하여 장인정신 접근법을 삼가하고 있다. 쿠키 커터 접근법은 미탐색 옵션에 비해 성능이 떨어지는 예측 모델을 생성할 수 있다.The craftsmanship approach can also be very expensive. Developing predictive models through a craftsmanship approach often entails significant investments in computing resources and well-paid data analysts. Given these significant costs, organizations are expected to have a low cost but only a small fraction of the vast predictive modeling space (e.g., the portion of the modeling space a priori expected to contain acceptable solutions to some particular predictive problem). It avoids the craftsmanship approach in favor of the cookie-cutter approach, which tends to explore the bay. The cookie cutter approach can produce predictive models that perform poorly compared to the unexplored option.
예측 문제에 대한 잠재적인 예측 모델링 기술의 공간을 체계적이고 비용 효율적으로 평가하는 도구에 대한 필요성이 존재한다. 여러 방식으로, 예측 모델을 생성하는 기존의 접근법은 귀중한 자원(예를 들어, 석유, 금, 광물, 보석 등)을 탐사하는 것과 유사하다. 탐사는 가치 있는 발견으로 이어질 수 있지만, 이전 결과의 방대한 라이브러리에 기초하여 신중하게 계획된 탐사 굴착 또는 시추와 조합된 지질 탐사보다 훨씬 효율적이지 않다. 본 발명자들은 통계적 학습 기술이 예측 문제에 대한 잠재적인 예측 모델링 해결책의 공간을 체계적이고 비용 효율적으로 평가하는 데 사용될 수 있음을 인식하고 이해하고 있다.A need exists for tools to systematically and cost-effectively evaluate the space of potential predictive modeling techniques for predictive problems. In many ways, the traditional approach to creating predictive models is similar to the exploration of valuable resources (eg, oil, gold, minerals, gems, etc.). Exploration can lead to valuable discoveries, but it is not much more efficient than well-planned exploratory excavation or geological exploration in combination with drilling based on a vast library of previous results. The inventors recognize and understand that statistical learning techniques can be used to systematically and cost-effectively evaluate the space of potential predictive modeling solutions to predictive problems.
시계열 예측 모델링Time Series Predictive Modeling
많은 예측 문제는 하나 이상의 과거 시간에서의 하나 이상의 입력 변수("피처")의 값에 기초하여 하나 이상의 장래의 시간에서 하나 이상의 출력 변수("타겟")의 값을 예측하는 문제를 제기한다. 이러한 예측 문제는 "시계열 예측 문제"라고 할 수 있으며, 이러한 문제를 모델링하는 예측 모델은 "시계열 예측 모델" 또는 "시계열 모델"이라고 할 수 있다.Many prediction problems pose the problem of predicting the value of one or more output variables (“targets”) at one or more future times based on the values of one or more input variables (“features”) at one or more past times. Such a prediction problem may be referred to as a "time-series prediction problem", and a prediction model that models such a problem may be referred to as a "time-series prediction model" or a "time-series model".
시계열 모델에 대한 모델링 검색 공간을 엄격하고 효율적으로 탐색하기 위한 기술이 필요하다. 본 발명자들은, 시계열 모델링 절차의 특정 양태, 예를 들어, 모델을 트레이닝시키는 데 사용된 트레이닝 데이터의 양, 입력 변수의 관측치 사이의 시간 간격, 트레이닝 데이터가 커버하는 시기간의 길이, 트레이닝 데이터가 커버하는 시기간의 최근성, 모델에 제공되는 피처 값과 연관된 시간과 모델에 의해 예측되는 타겟 값과 연관 시간 사이의 기간("스킵 범위"), 및 모델이 타겟의 값을 예측하는 기간("예상 범위")을, 명시적으로 파라미터화함으로써 시계열 모델링 검색 공간의 엄격하고 효율적인 탐색(효율적인 트레이닝, 테스트 및 시계열 모델의 비교를 포함함)이 용이해질 될 수 있음을 인식하고 이해하고 있다.Techniques are needed to rigorously and efficiently explore the modeling search space for time series models. We describe certain aspects of the time series modeling procedure, e.g., the amount of training data used to train the model, the time interval between observations of the input variable, the length of time period covered by the training data, and the amount of time the training data covers. The recency of the period, the period between the time associated with the feature value provided to the model and the associated time with the target value predicted by the model ("skip range"), and the period over which the model predicts the value of the target ("expected range") .
일반적으로, 본 명세서에서 설명되는 주제의 혁신적인 양태는 예측 모델링 절차를 수행하는 단계를 포함하는 예측 모델링 방법으로 구현될 수 있으며, 이 예측 모델링 절차: (a) 하나 이상의 데이터 세트들을 포함하는 시계열 데이터를 얻는 단계로서, 각각의 데이터 세트는 복수의 관측치들을 포함하며, 각각의 관측치는 (1) 상기 관측치와 연관된 시간의 표시 및 (2) 하나 이상의 변수들의 각각의 값들을 포함하는, 상기 단계; (b) 상기 시계열 데이터의 시간 간격을 결정하는 단계; (c) 상기 하나 이상의 변수들을 타겟들로서 식별하고, 제로(0) 이상의 다른 변수들을 피처들로서 식별하는 단계; (d) 상기 시계열 데이터에 의해 나타내어지는 예측 문제와 연관된 예상 범위 및 스킵(skip) 범위를 결정하는 단계로서, 상기 예상 범위는 상기 타겟들의 값들이 예측될 기간의 지속 시간을 나타내고, 상기 스킵 범위는 상기 예상 범위에서의 가장 빠른 예측과 연관된 시간과 상기 예상 범위에서의 예측이 기초가 되는 최근 관측치와 연관된 시간 사이의 시간 래그(lag)를 나타내는 단계; (e) 상기 시계열 데이터로부터 트레이닝 데이터를 생성하는 단계로서, 상기 트레이닝 데이터는 상기 데이터 세트들 중 적어도 하나의 데이터 세트의 관측치들의 제1 서브세트를 포함하고, 상기 관측치들의 제1 서브세트는 상기 관측치들의 트레이닝-입력 및 트레이닝-출력 컬렉션들을 포함하고, 상기 트레이닝-입력 및 상기 트레이닝-출력 컬렉션들에서 상기 관측치들과 연관된 시간들은 트레이닝-입력 시간 범위 및 트레이닝-출력 시간 범위에 각각 대응하고, 상기 스킵 범위는 상기 트레이닝-입력 시간 범위의 끝을 상기 트레이닝-출력 시간 범위의 시작으로부터 분리하고, 상기 트레이닝-출력 시간 범위의 지속 시간은 적어도 상기 예상 기간만큼 긴, 상기 단계; (f) 상기 시계열 데이터로부터 테스팅 데이터를 생성하는 단계로서, 상기 테스팅 데이터는 상기 데이터 세트들 중 적어도 하나의 데이터 세트의 관측치들의 제2 서브세트를 포함하고, 상기 관측치들의 제2 서브세트는 상기 관측치들의 테스트-입력 및 테스트-유효성 검증 컬렉션들을 포함하고, 상기 테스트-입력 및 상기 테스트-유효성 검증 컬렉션들에서 상기 관측치들과 연관된 시간들은 테스트-입력 시간 범위 및 테스트-유효성 검증 시간 범위에 각각 대응하고, 상기 스킵 범위는 상기 테스트-입력 시간 범위의 끝을 상기 테스트-유효성 검증 시간 범위의 시작으로부터 분리하고, 상기 테스트-유효성 검증 시간 범위의 지속 시간은 적어도 상기 예상 범위만큼 긴, 상기 단계; (g) 예측 모델을 상기 트레이닝 데이터에 맞춤화하는(fitting) 단계; 및 (h) 맞춤화된 모델을 상기 테스팅 데이터에 대해 테스트하는 단계를 포함한다.In general, innovative aspects of the subject matter described herein may be implemented in a predictive modeling method comprising performing a predictive modeling procedure, the predictive modeling procedure comprising: (a) generating time series data comprising one or more data sets; obtaining, each data set comprising a plurality of observations, each observation comprising (1) an indication of a time associated with the observation and (2) respective values of one or more variables; (b) determining a time interval of the time series data; (c) identifying the one or more variables as targets and zero or more other variables as features; (d) determining an expected range and a skip range associated with a prediction problem represented by the time series data, wherein the expected range represents a duration of time for which values of the targets are to be predicted, and wherein the skip range is indicating a time lag between a time associated with the earliest prediction in the expected range and a time associated with the most recent observation on which the prediction in the expected range is based; (e) generating training data from the time series data, the training data comprising a first subset of observations in at least one of the data sets, the first subset of observations comprising the observations training-input and training-output collections of a range separating an end of the training-input time range from a beginning of the training-output time range, wherein a duration of the training-output time range is at least as long as the expected duration; (f) generating testing data from the time series data, the testing data comprising a second subset of observations in at least one of the data sets, the second subset of observations comprising the observations and test-input and test-validation collections of , wherein the skip range separates the end of the test-input time range from the start of the test-validation time range, and the duration of the test-validation time range is at least as long as the expected range; (g) fitting a predictive model to the training data; and (h) testing the customized model against the testing data.
이 양태의 다른 실시예는 각각 이 방법의 액션을 수행하도록 구성된, 하나 이상의 컴퓨터 저장 디바이스 상에 기록된 대응하는 컴퓨터 시스템, 장치 및 컴퓨터 프로그램을 포함한다. 하나 이상의 컴퓨터의 시스템은 소프트웨어, 펌웨어, 하드웨어 또는 이들의 조합이 동작 중에 있는 시스템 상에 설치되어 시스템이 액션을 수행하게 함으로써 특정 액션을 수행하도록 구성될 수 있다. 하나 이상의 컴퓨터 프로그램은 데이터 프로세싱 장치에 의해 실행될 때 장치로 하여금 액션을 수행하게 하는 명령어를 포함함으로써 특정 액션을 수행하도록 구성될 수 있다.Other embodiments of this aspect include corresponding computer systems, apparatus and computer programs recorded on one or more computer storage devices, each configured to perform the actions of the method. A system of one or more computers may be configured to perform a particular action by having software, firmware, hardware, or a combination thereof installed on the system in operation, causing the system to perform the action. One or more computer programs may be configured to perform a particular action by including instructions that, when executed by the data processing apparatus, cause the apparatus to perform the action.
전술한 실시예 및 다른 실시예는 각각 단독으로 또는 조합하여 하기의 특징들 중 하나 이상을 선택적으로 포함할 수 있다. 일부 실시예에서, 시계열 데이터의 시간 간격은 데이터 세트들 중 적어도 하나에 포함된 관측치들의 적어도 서브세트와 연관된 시간들에 적어도 부분적으로 기초하여 결정된다. 일부 실시예에서, 시계열 데이터의 시간 간격을 결정하는 단계는: 데이터 세트들의 각각에 대해, 상기 데이터 세트의 각각의 시간 간격을 결정하는 단계; 데이터 세트들의 상기 시간 간격들이 불균일한 것으로 결정하는 단계; 및 시계열 데이터의 시간 간격을 상기 데이터 세트들의 시간 간격에 설정하는 단계를 포함한다. 일부 실시예에서, 상기 데이터 세트의 시간 간격을 결정하는 단계는: 상기 데이터 세트에 포함된 연속 관측치들의 하나 이상의 쌍에 대해, 상기 연속 관측치들 사이의 각각의 시기간을 결정하는 단계; 상기 연속 관측치들의 쌍 사이의 시기간이 균일한 것으로 결정하는 단계; 및 상기 데이터 세트의 시간 간격을 상기 연속 관측치들 쌍 사이의 시기간에 설정하는 단계를 포함한다.The foregoing and other embodiments may optionally include one or more of the following features, each alone or in combination. In some embodiments, the time interval of the time series data is determined based at least in part on times associated with at least a subset of observations included in at least one of the data sets. In some embodiments, determining a time interval of time series data comprises: for each of the data sets, determining a respective time interval of the data set; determining that the time intervals of data sets are non-uniform; and setting a time interval of time series data to a time interval of the data sets. In some embodiments, determining the time interval of the data set comprises: for one or more pairs of successive observations included in the data set, determining each time period between the successive observations; determining that the period of time between the pair of consecutive observations is uniform; and setting a time interval of the data set to a time interval between the pair of consecutive observations.
일부 실시예에서, 상기 시계열 데이터의 시간 간격을 결정하는 단계는: 상기 데이터 세트들의 각각에 대해, 상기 데이터 세트의 각각의 시간 간격을 결정하는 단계; 및 상기 데이터 세트들 중 적어도 2개의 상기 시간 간격들이 상이한 것으로 결정하는 단계를 포함하고, 상기 시계열 데이터의 시간 간격은 (1) 상기 데이터 세트들의 각각에 포함된 상기 관측치들의 각각의 부분들, 및/또는 (2) 상기 데이터 세트들의 각각의 상기 각각의 시간 간격들에 적어도 부분적으로 기초하여 결정한다. 일부 실시예에서, 상기 데이터 세트의 상기 각각의 시간 간격을 결정하는 단계는: 상기 데이터 세트에 포함된 연속 관측치들의 각각의 쌍 사이의 각각의 기간을 결정하는 단계; 상기 연속 관측치들 쌍 사이의 상기 기간이 복수의 불균일 지속 시간들을 나타내는 경우, 상기 데이터 세트의 시간 간격이 (1) 상기 불균일 지속 시간들의 각각을 나타내는 상기 연속 관측치들의 쌍의 각각의 부분들, 및/또는 (2) 상기 기간의 지속 시간들에 적어도 부분적으로 기초하여 결정되는 단계; 및 상기 연속 관측치들 쌍 사이의 시기간이 불균일 지속 시간인 경우, 상기 데이터 세트의 시간 간격이 상기 시기간의 각각의 지속 시간인 단계를 포함한다. 일부 실시예에서, 상기 시계열 데이터의 시간 간격은 상기 데이터 세트들의 각각의 상기 시간 간격들 각각의 정수배인 최단 시간 간격이다.In some embodiments, determining the time interval of the time series data comprises: for each of the data sets, determining each time interval of the data set; and determining that the time intervals of at least two of the data sets are different, wherein the time intervals of the time series data include (1) respective portions of the observations included in each of the data sets, and/ or (2) based at least in part on each of the respective time intervals of the data sets. In some embodiments, determining each time interval of the data set comprises: determining each time period between each pair of consecutive observations included in the data set; If the period between the pair of consecutive observations represents a plurality of non-uniform durations, then the time interval of the data set is (1) respective portions of the pair of consecutive observations representing each of the non-uniform durations, and/ or (2) determining based at least in part on durations of the period; and if the period of time between the pair of consecutive observations is a non-uniform duration, then the time interval of the data set is the respective duration of the time period. In some embodiments, the time interval of the time series data is the shortest time interval that is an integer multiple of each of the time intervals of each of the data sets.
일부 실시예에서, 본 발명의 액션은: 각각의 데이터 세트에 대해, 상기 데이터 세트의 시간 간격이 상기 시계열 데이터의 시간 간격보다 짧은 경우, 상기 데이터 세트의 관측치들을 다운-샘플링함으로써, 상기 데이터 세트의 시간 간격을 상기 시계열 데이터의 시간 간격으로 변환하는 단계를 더 포함한다. 일부 실시예에서, 상기 데이터 세트의 관측치들을 다운-샘플링하는 단계는, 상기 데이터 세트에 대응하는 시기간에서 상기 시계열 데이터의 시간 간격의 각각의 인스턴스에 대해: 상기 시계열 데이터의 시간 간격의 상기 각각의 인스턴스에 대응하는 시간들과 연관된 상기 데이터 세트의 모든 관측치들을 식별하는 단계; 집계 관측치를 생성하기 위해 식별된 관측치들을 집계하는 단계; 및 상기 데이터 세트의 식별된 관측치들을 상기 집계 관측치로 대체하는 단계를 포함한다. 일부 실시예에서, 상기 시계열 데이터의 시간 간격의 상기 인스턴스에 대응하는 상기 식별된 관측치들의 수는 상기 시계열 데이터의 시간 간격과 상기 데이터 세트의 시간 간격 사이의 비율과 동등하다. 일부 실시예에서, 상기 식별된 관측치들을 집계하는 단계는, 상기 집합 관측치의 각각의 변수의 값을, (1) 상기 식별된 관측치들의 가장 초기에 포함된 대응하는 변수값, (2) 상기 식별된 관측치들의 가장 최근에 포함된 대응하는 변수값, (3) 상기 식별된 관측치들에 포함된 대응하는 변수값들의 최대값, (4) 상기 식별된 관측치들에 포함된 대응하는 변수값들의 최소값, (5) 상기 식별된 관측치들에 포함된 대응하는 변수값들의 평균, 또는 (6) 상기 식별된 관측치들에 포함된 대응하는 변수값들의 함수의 값에 설정하는 단계를 포함한다.In some embodiments, the actions of the present invention include: for each data set, if the time interval of the data set is shorter than the time interval of the time series data, by down-sampling the observations of the data set, The method further includes converting a time interval into a time interval of the time series data. In some embodiments, down-sampling the observations of the data set comprises: for each instance of the time interval of the time series data in a time period corresponding to the data set: each of the time intervals of the time series data identifying all observations in the data set associated with times corresponding to an instance; aggregating the identified observations to produce an aggregate observation; and replacing the identified observations in the data set with the aggregate observation. In some embodiments, the number of identified observations corresponding to the instance of the time interval of the time series data is equal to a ratio between the time interval of the time series data and the time interval of the data set. In some embodiments, aggregating the identified observations comprises: (1) a corresponding variable value initially included in the identified observations; (2) the value of each variable in the aggregated observation; the most recently included corresponding variable value of the observations, (3) the maximum value of the corresponding variable value included in the identified observations, (4) the minimum value of the corresponding variable value included in the identified observations, ( 5) setting to the average of the corresponding variable values included in the identified observations, or (6) the value of a function of the corresponding variable values included in the identified observations.
일부 실시예에서, 상기 시계열 데이터의 시간 간격은 상기 데이터 세트들의 시간 간격으로 이루어진 그룹으로부터 선택된다. 일부 실시예에서, 상기 데이터 세트들은 제1 시간 간격을 나타내는 제1 데이터 세트 및 상기 제1 시간 간격보다 큰 제2 시간 간격을 나타내는 제2 데이터 세트를 포함하고, 상기 제2 시간 간격은 상기 시계열 데이터의 시간 간격으로서 선택되고, 상기 방법은: 상기 제1 데이터 세트의 관측치들을 다운-샘플링함으로써, 상기 제1 데이터 세트의 시간 간격을 상기 시계열 데이터의 시간 간격으로 변환하는 단계를 더 포함한다. 일부 실시예에서, 상기 시계열 데이터의 시간 간격은 상기 데이터 세트의 시간 간격들의 각각과 상이하다.In some embodiments, the time interval of the time series data is selected from the group consisting of time intervals of the data sets. In some embodiments, the data sets include a first data set representing a first time interval and a second data set representing a second time interval greater than the first time interval, wherein the second time interval comprises the time series data , the method further comprising: converting a time interval of the first data set to a time interval of the time series data by down-sampling the observations of the first data set. In some embodiments, the time interval of the time series data is different from each of the time intervals of the data set.
일부 실시예에서, 상기 시계열 데이터의 관측치들의 적어도 그룹은 제1 변수의 각각의 값들을 포함하고, 상기 방법은, 상기 예측 모델을 상기 트레이닝 데이터에 맞춤화하고, 상기 맞춤화된 모델을 상기 테스팅 데이터에 대해 테스트하기 전에: 상기 제1 변수의 값들이 시간 값들을 포함하는 것으로 결정하는 단계; 상기 그룹의 각각의 관측치에 대해, 제2 변수의 각각의 값을 생성하는 단계로서, 상기 제2 변수의 값은 상기 제1 변수의 시간 값과 기준 시간 값 사이의 오프셋을 포함하는, 단계; 및 상기 제2 변수의 값들을 상기 그룹 내의 각각의 관측치들에 가산하는 단계를 더 포함한다. 일부 실시예에서, 본 방법의 액션은 상기 그룹 내의 관측치들로부터 상기 제1 변수의 상기 값들을 제거하는 단계를 더 포함한다. 일부 실시예에서, 상기 기준 시간은 이벤트의 날짜를 포함한다. 일부 실시예에서, 상기 이벤트는 출생, 결혼, 학교 졸업, 고용주에 대한 고용의 개시 또는 특정 직위에서의 업무의 시작을 포함한다.In some embodiments, the at least group of observations in the time series data comprises respective values of a first variable, the method comprising: fitting the predictive model to the training data; and applying the customized model to the testing data. before testing: determining that the values of the first variable include time values; generating, for each observation in the group, a respective value of a second variable, the value of the second variable comprising an offset between the time value of the first variable and a reference time value; and adding the values of the second variable to each observation in the group. In some embodiments, the action of the method further comprises removing said values of said first variable from observations within said group. In some embodiments, the reference time includes a date of the event. In some embodiments, the event comprises a birth, marriage, school graduation, commencement of employment with an employer, or commencement of work in a particular position.
일부 실시예에서, 상기 변수들은 제1 변수 및 제2 변수를 포함하고, 본 방법은의 액션은: 상기 제1 변수의 값의 변화들과 상기 제2 변수의 값의 상관된 변화들로, 상기 제1 변수 및 상기 제2 변수의 값들의 변화들이 상관되는 것으로 결정하는 단계; 및 상기 제1 변수의 값의 변화들과 상기 제2 변수의 값의 상기 상관된 변화들 사이의 상기 시간 래그의 지속 시간을 나타내는 그래픽 컨텐츠를 그래픽 사용자 인터페이스를 통해 표시하는 단계를 더 포함한다.In some embodiments, the variables include a first variable and a second variable, and the method comprises: changes in the value of the first variable and correlated changes in the value of the second variable, wherein the determining that changes in values of the first variable and the second variable are correlated; and displaying, via a graphical user interface, graphical content representing a duration of the time lag between changes in the value of the first variable and the correlated changes in the value of the second variable.
일부 실시예에서, 상기 예상 범위는 (1) 상기 시계열 데이터의 시간 간격, (2) 상기 시계열 데이터에 포함된 관측치들의 수, (3) 상기 시계열 데이터에 대응하는 기간, 및/또는 (4) 마이크로초, 밀리초, 초, 분, 시간, 일, 주, 월, 분기, 계절, 년, 십년, 백년 및 천년으로 이루어지는 그룹으로부터 선택되는 자연 기간에 적어도 부분적으로 기초하여 결정된다. 일부 실시예에서, 상기 예상 범위는 상기 시계열 데이터의 시간 간격의 정수배이다. 일부 실시예에서, 상기 예상 범위의 연속 예측들과 연관된 시간들 사이의 시기간은 상기 시계열 데이터의 시간 간격과 동등하다.In some embodiments, the expected range includes (1) a time interval of the time series data, (2) the number of observations included in the time series data, (3) a period corresponding to the time series data, and/or (4) micro is determined based at least in part on a natural period selected from the group consisting of seconds, milliseconds, seconds, minutes, hours, days, weeks, months, quarters, seasons, years, decades, hundred years and millennia. In some embodiments, the expected range is an integer multiple of a time interval of the time series data. In some embodiments, a period of time between times associated with successive predictions of the expected range is equal to a time interval of the time series data.
일부 실시예에서, 상기 스킵 범위는, 상기 시계열 데이터의 수집에서의 대기 시간(latency), 상기 시계열 데이터의 통신에서의 대기 시간, 상기 시계열 데이터의 분석에서의 대기 시간, 상기 시계열 데이터의 분석의 통신에서의 대기 시간, 및/또는 상기 시계열 데이터의 분석에 기초한 액션들의 구현에서의 대기 시간에 적어도 부분적으로 기초하여 결정된다. In some embodiments, the skip range includes a latency in the collection of the time series data, a latency in communication of the time series data, a latency in the analysis of the time series data, and a communication of the analysis of the time series data. is determined based, at least in part, on a wait time at , and/or a wait time at implementation of actions based on the analysis of the time series data.
일부 실시예에서, 본 방법의 액션은, 상기 트레이닝-입력 시간 범위의 지속 시간을, 상기 시계열 데이터에 포함된 관측치들의 전체 수, 시간 경과에 따른 상기 변수들의 적어도 하나의 값들에서의 변동의 양, 상기 변수들의 적어도 하나의 값들에서의 정기적인 변동의 양, 복수의 시기간들에 대한 상기 변수들의 적어도 하나의 값들에서의 변동의 일관성, 및/또는 상기 예상 범위의 지속 시간에 적어도 부분적으로 기초하여 결정하는 단계를 더 포함한다. 일부 실시예에서, 상기 예측 모델을 상기 트레이닝 데이터에 맞춤화하는 단계는, 상기 예측 모델을 상기 트레이닝-입력 시간 범위의 부분에 대응하는 상기 트레이닝 데이터의 서브세트에 맞춤화하는 단계를 포함하고, 상기 트레이닝-입력 시간 범위의 부분은 상기 트레이닝-입력 시간 범위의 시작 시간에 후속하는 시간에서 시작하고, 상기 트레이닝-입력 시간 범위의 끝 시간에서 끝난다. 일부 실시예에서, 상기 트레이닝-입력 시간 범위의 상기 부분의 지속 시간은 상기 예상 범위의 상기 지속 시간의 정수배이다.In some embodiments, an action of the method comprises determining a duration of the training-input time range, the total number of observations included in the time series data, an amount of variation in at least one value of the variables over time, determining based, at least in part, on an amount of periodic variation in at least one values of the variables, a consistency of variation in at least one values of the variables over a plurality of time periods, and/or a duration of the expected range. further comprising the step of In some embodiments, fitting the predictive model to the training data comprises fitting the predictive model to a subset of the training data corresponding to a portion of the training-input time range, wherein the training- The portion of the input time range starts at a time subsequent to the start time of the training-input time range and ends at the end time of the training-input time range. In some embodiments, the duration of said portion of said training-input time range is an integer multiple of said duration of said expected range.
일부 실시예에서, 본 방법의 액션은, 상기 예측 모델을 상기 트레이닝 데이터에 맞춤화하기 전에 상기 트레이닝 데이터를 다운-샘플링하는 단계를 더 포함한다. 일부 실시예에서, 상기 트레이닝 데이터를 다운-샘플링하는 단계는: 상기 트레이닝 데이터로부터 상기 데이터 세트들의 적어도 하나로부터 얻어진 모든 관측치들을 제거하는 단계를 포함한다. 일부 실시예에서, 상기 트레이닝 데이터를 다운-샘플링하는 단계는: 상기 트레이닝 데이터의 다운-샘플링된 시간 간격을 상기 시계열 데이터의 시간 간격의 정수배로 설정하는 단계; 및 상기 트레이닝 데이터의 다운-샘플링된 시간 간격의 각각의 인스턴스에 대해: 상기 트레이닝 데이터의 다운-샘플링된 시간 간격의 각각의 인스턴스에 대응하는 시간들과 연관된 상기 트레이닝 데이터의 모든 관측치들을 식별하는 단계, 집계 관측치를 집계하기 위해 상기 식별된 관측치들을 집계하는 단계, 및 상기 트레이닝 데이터의 상기 식별된 관측치들을 상기 집계 관측치로 대체하는 단계를 포함한다. 일부 실시예에서, 본 방법의 액션은 테스팅 데이터에 대해 맞춤화된 모델을 테스트하기 전에 테스팅 데이터를 다운-샘플링하는 단계를 더 포함한다.In some embodiments, the actions of the method further comprise down-sampling the training data prior to fitting the predictive model to the training data. In some embodiments, down-sampling the training data comprises: removing from the training data all observations obtained from at least one of the data sets. In some embodiments, the down-sampling of the training data comprises: setting the down-sampled time interval of the training data to an integer multiple of the time interval of the time series data; and for each instance of the down-sampled time interval of the training data: identifying all observations of the training data associated with times corresponding to each instance of the down-sampled time interval of the training data; aggregating the identified observations to aggregate an aggregate observation, and replacing the identified observations in the training data with the aggregate observation. In some embodiments, the actions of the method further comprise down-sampling the testing data prior to testing the customized model against the testing data.
일부 실시예에서, 본 방법의 액션은 예측 모델의 상호 유효성 검증(performing cross-validation)을 수행하는 것을 더 포함한다. 일부 실시예에서, 상기 트레이닝 데이터는 제1 트레이닝 데이터이고, 상기 테스팅 데이터는 제1 테스팅 데이터이고, 상기 맞춤화된 모델은 제1 맞춤화된 모델이고, 상기 예측 모델의 상호 유효성 검증을 수행하는 단계는: (ⅰ) 상기 시계열 데이터로부터 제2 트레이닝 데이터 및 제2 테스팅 데이터를 생성하는 단계로서, 상기 제2 트레이닝 데이터는 상기 데이터 세트들의 적어도 하나의 관측치들의 제3 서브세트를 포함하고, 상기 제2 테스팅 데이터는 상기 데이터 세트들의 적어도 하나의 관측치들의 제4 서브세트를 포함하는, 상기 단계; (j) 제2 맞춤화된 모델을 얻기 위해 상기 예측 모델을 상기 제2 트레이닝 데이터에 맞춤화하는 단계; 및 (k) 상기 제2 맞춤화된 모델을 상기 제2 테스팅 데이터에 대해 테스트하는 단계를 포함한다.In some embodiments, the action of the method further comprises performing cross-validation of the predictive model. In some embodiments, the training data is first training data, the testing data is first testing data, the customized model is a first customized model, and performing mutual validation of the predictive model comprises: (i) generating second training data and second testing data from the time series data, wherein the second training data comprises a third subset of at least one observation of the data sets, the second testing data comprises a fourth subset of the at least one observations in the data sets; (j) fitting the predictive model to the second training data to obtain a second customized model; and (k) testing the second customized model against the second testing data.
일부 실시예에서, 상기 관측치들의 제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 트레이닝 시간 범위의 임의의 부분과 중첩되지 않는다.In some embodiments, the first subset of observations corresponds to a sliding training window covering a first range of training times, and each observation included in the first subset is a time within the first range of training times. wherein the third subset of observations corresponds to a sliding training window covering a second range of training times, and each observation included in the third subset corresponds to a time within the second range of training times. associated, wherein the earliest time of the first range of training times is earlier than the earliest time of the second range of training times. In some embodiments, the second subset of observations corresponds to a sliding test window covering a first range of testing times, and each observation included in the second subset is a time within the first range of testing times. wherein the fourth subset of observations corresponds to a sliding test window covering a second range of testing times, and each observation included in the fourth subset corresponds to a time within the second range of testing times. associated, the earliest time of the first range of testing times is earlier than the earliest time of the second range of testing times. In some embodiments, the first testing time range partially overlaps the second training time range. In some embodiments, the second testing time range does not overlap any portion of the first training time range and does not overlap any portion of the second training time range.
일부 실시예에서, 본 방법의 액션은, 상기 시계열 데이터를 적어도 제1 분할 및 제2 분할을 포함하는 복수의 분할들로 분할하는 단계를 더 포함한다. 일부 실시예에서, 상기 시계열 데이터를 복수의 분할들로 분할하는 단계는, 상기 데이터 세트들의 각각을 대응하는 분할에 할당하는 단계를 포함한다. 일부 실시예에서, 상기 시계열 데이터를 복수의 분할들로 분할하는 단계는 상기 시계열 데이터를 시간적으로 분할하는 단계를 포함하고, 상기 분할들 각각은 상기 시계열 데이터와 연관된 시기간의 각각의 부분에 대응하고, 상기 시계열 데이터에 포함된 각각의 관측치는 상기 관측치와 연관된 상기 시간과 매칭되는 상기 시기간의 부분에 대응하는 분할에 할당된다.In some embodiments, the action of the method further comprises partitioning the time series data into a plurality of partitions including at least a first partition and a second partition. In some embodiments, partitioning the time series data into a plurality of partitions comprises assigning each of the data sets to a corresponding partition. In some embodiments, partitioning the time series data into a plurality of partitions comprises temporally partitioning the time series data, each of the partitions corresponding to a respective portion of a time period associated with the time series data; Each observation included in the time series data is assigned a partition corresponding to a portion of the time period that matches the time associated with the observation.
일부 실시예에서, 상기 제1 트레이닝 데이터는 상기 시계열 데이터의 제1 분할에 포함된 관측치들의 서브세트를 포함하고; 상기 제1 테스팅 데이터는 상기 제1 분할을 제외한 상기 시계열 데이터의 분할들 모두에 포함된 상기 관측치들의 각각의 서브세트들을 포함하고; 상기 제2 트레이닝 데이터는 상기 시계열 데이터의 제2 분할에 포함된 상기 관측치들의 서브세트를 포함하고; 및 상기 제2 테스팅 데이터는 상기 제2 분할을 제외한 상기 시계열 데이터의 분할들 모두에 포함된 상기 관측치들의 각각의 서브세트들을 포함한다. 일부 실시예에서, 상기 시계열 데이터의 제1 분할은 상기 제1 트레이닝 데이터 및 상기 제2 트레이닝 데이터와 상기 제1 테스팅 데이터 및 상기 제2 테스팅 데이터를 포함하고, 상기 시계열 데이터의 제2 분할은 홀드아웃(holdout) 데이터를 포함하고, 상기 방법의 액션은 상기 제1 맞춤화된 모델 및 상기 제2 맞춤화된 모델을 상기 홀드아웃 데이터에 대해 테스트하는 단계를 더 포함한다. 일부 실시예에서, 상기 홀드아웃 데이터에는 예측 모델이 맞춤화되지 않는다.In some embodiments, the first training data comprises a subset of observations included in the first partition of the time series data; the first testing data includes respective subsets of the observations included in all partitions of the time series data except the first partition; the second training data includes a subset of the observations included in the second partition of the time series data; and the second testing data includes respective subsets of the observations included in all partitions of the time series data except the second partition. In some embodiments, the first partition of the time series data comprises the first training data and the second training data and the first testing data and the second testing data, and the second partition of the time series data is a holdout holdout data, and wherein the action of the method further comprises testing the first customized model and the second customized model against the holdout data. In some embodiments, no predictive model is customized to the holdout data.
일부 실시예에서, 본 방법의 액션은 상기 예측 모델의 네스팅된(nested) 상호 유효성 검증을 수행하는 단계를 더 포함한다. 일부 실시예에서, 상기 예측 모델의 네스팅된 상호 유효성 검증을 수행하는 단계는: 적어도 상기 시계열 데이터의 제1 분할 및 상기 시계열 데이터의 제2 분할을 포함하는 제1 복수의 분할들로 상기 시계열 데이터를 분할하는 단계; 및 적어도 상기 시계열 데이터의 상기 제1 분할의 제1 분할 및 상기 시계열 데이터의 상기 제1 분할의 제2 분할을 포함하는 상기 시계열 데이터의 상기 제1 분할의 복수의 분할들로 상기 시계열 데이터의 상기 제1 분할을 분할하는 단계를 포함하고, 상기 트레이닝 데이터는 상기 시계열 데이터의 상기 제1 분할의 상기 제1 분할을 포함하고, 상기 테스팅 데이터는 적어도 상기 시계열 데이터의 상기 제1 분할의 상기 제1 분할 이외의 상기 시계열 데이터의 상기 제1 분할의 복수의 분할들을 포함한다.In some embodiments, the actions of the method further comprise performing nested mutual validation of the predictive model. In some embodiments, performing nested mutual validation of the predictive model comprises: the time series data into a first plurality of partitions comprising at least a first partition of the time series data and a second partition of the time series data. partitioning; and a plurality of divisions of the first division of the time series data including at least a first division of the first division of the time series data and a second division of the first division of the time series data. dividing one partition, wherein the training data comprises the first partition of the first partition of the time series data, and the testing data is at least other than the first partition of the first partition of the time series data. a plurality of partitions of the first partition of the time series data of
일부 실시예에서, 상기 트레이닝 데이터는 제1 트레이닝 데이터이고, 상기 테스팅 데이터는 제1 테스팅 데이터이고, 상기 맞춤화된 모델은 제1 맞춤화된 모델이고, 상기 예측 모델의 네스팅된 상호 유효성 검증을 수행하는 단계는: (i) 상기 시계열 데이터의 상기 제1 분할로부터, 제2 트레이닝 데이터 및 제2 테스팅 데이터를 생성하는 단계로서, 상기 제2 트레이닝 데이터는 상기 시계열 데이터의 상기 제1 분할의 상기 제2 분할을 포함하고, 상기 제2 테스팅 데이터는 적어도 상기 시계열 데이터의 상기 제1 분할의 상기 제2 분할 이외의 상기 데이터 세트의 제1 분할의 복수의 분할들을 포함하는, 상기 단계; (j) 제2 맞춤화된 모델을 얻기 위해 상기 예측 모델을 상기 제2 트레이닝 데이터에 맞춤화하는 단계; 및 (k) 상기 제2 맞춤화된 모델을 상기 제2 테스팅 데이터에 대해 테스트하는 단계를 더 포함한다.In some embodiments, the training data is first training data, the testing data is first testing data, and the customized model is a first customized model, performing nested mutual validation of the predictive model. The steps include: (i) generating, from the first partition of the time series data, second training data and second testing data, wherein the second training data is the second partition of the first partition of the time series data. wherein the second testing data comprises at least a plurality of partitions of the first partition of the data set other than the second partition of the first partition of the time series data; (j) fitting the predictive model to the second training data to obtain a second customized model; and (k) testing the second customized model against the second testing data.
일부 실시예에서, 상기 네스팅된 상호 유효성 검증을 수행하는 단계는: 상기 제1 맞춤화된 모델 및 상기 제2 맞춤화된 모델을 상기 시계열 데이터의 상기 제2 분할에 대해 테스트하는 단계; 및 상기 제1 맞춤화된 모델 및 상기 제2 맞춤화된 모델을 상기 시계열 데이터의 상기 제2 분할에 대해 테스트한 결과에 기초하여, 상기 제1 맞춤화된 모델과 상기 제2 맞춤화된 모델을 비교하는 단계를 더 포함한다.In some embodiments, performing the nested mutual validation comprises: testing the first customized model and the second customized model for the second partition of the time series data; and comparing the first customized model and the second customized model based on a result of testing the first customized model and the second customized model on the second partition of the time series data. include more
일부 실시예에서, 본 방법의 액션은, 상기 맞춤화된 모델에 대해, 상기 시계열 데이터의 상기 하나 이상의 피처들의 모델-특유 예측 값들을 결정하는 단계를 더 포함한다. 일부 실시예에서, 본 방법의 액션은, 상기 피처들의 상기 모델-특유 예측값들에 대해 적어도 부분적으로 기초하여, 상기 시계열 데이터로부터 피처를 제거하고, 상기 시계열 데이터에서 2개 이상의 피처들로부터 도출된 피처를 생성하고 상기 도출된 피처를 상기 시계열 데이터에 가산하고, 상기 예측 모델을 다른 예측 모델과 혼합하고, 그리고/또는 상기 예측 문제에 대해 예측 모델링 절차들의 적절성을 평가하는 프로세스 중에 자원들을 할당하는 것으로 이루어지는 그룹으로부터 선택되는 적어도 하나의 액션을 수행하는 단계를 더 포함한다.In some embodiments, the action of the method further comprises determining, for the customized model, model-specific predictive values of the one or more features of the time series data. In some embodiments, the action of the method is to remove a feature from the time series data, based at least in part on the model-specific predicted values of the features, and a feature derived from two or more features in the time series data. generating and adding the derived features to the time series data, mixing the predictive model with other predictive models, and/or allocating resources during the process of evaluating the adequacy of predictive modeling procedures for the predictive problem. The method further includes performing at least one action selected from the group.
일부 실시예에서, 본 방법의 액션은: 상기 예측 문제의 특성들 및/또는 각각의 예측 모델링 절차들의 속성들에 적어도 부분적으로 기초하여, 상기 예측 문제에 대한 복수의 예측 모델링 절차들의 적절성을 결정하는 단계; 상기 예측 문제에 대해 선택된 모델링 절차들의 결정된 적절성에 기초하여 상기 복수의 예측 모델링 절차들로부터 하나 이상의 예측 모델링 절차들을 선택하는 단계; 및 상기 하나 이상의 예측 모델링 절차들을 수행하는 단계를 더 포함한다.In some embodiments, the action of the method comprises: determining, based at least in part on characteristics of the prediction problem and/or properties of respective predictive modeling procedures, the suitability of a plurality of predictive modeling procedures for the prediction problem. step; selecting one or more predictive modeling procedures from the plurality of predictive modeling procedures based on the determined suitability of the selected modeling procedures for the predictive problem; and performing the one or more predictive modeling procedures.
일부 실시예에서, 상기 하나 이상의 예측 모델링 절차들을 수행하는 단계는: 명령어를 복수의 프로세싱 노드들에 송신하는 단계로서, 상기 명령어는 상기 선택된 모델링 절차들의 실행을 위해 상기 프로세싱 노드들의 자원들을 할당하는 자원 할당 스케줄을 포함하고, 상기 자원 할당 스케줄은 상기 예측 문제에 대해 상기 선택된 모델링 절차들의 적절성에 적어도 부분적으로 기초하는, 상기 단계; 상기 자원 할당 스케줄에 따라 상기 복수의 프로세싱 노드들에 의해 상기 선택된 모델링 절차들의 실행의 결과들을 수신하는 단계로서, 상기 결과들은 상기 선택된 모델링 절차들에 의해 생성된 예측 모델들, 및/또는 상기 예측 문제와 연관된 시계열 데이터에 대한 상기 생성된 모델들의 스코어들을 포함하는, 상기 단계; 및 상기 생성된 모델들로부터, 상기 선택된 예측 모델의 스코어에 적어도 부분적으로 기초하여 상기 예측 문제에 대해 예측 모델을 선택하는 단계를 포함한다.In some embodiments, performing the one or more predictive modeling procedures comprises: sending an instruction to a plurality of processing nodes, wherein the instruction is a resource that allocates resources of the processing nodes for execution of the selected modeling procedures. the method comprising: an allocation schedule, wherein the resource allocation schedule is based at least in part on adequacy of the selected modeling procedures for the prediction problem; receiving results of execution of the selected modeling procedures by the plurality of processing nodes according to the resource allocation schedule, wherein the results are predictive models generated by the selected modeling procedures, and/or the prediction problem comprising scores of the generated models for time series data associated with ; and selecting, from the generated models, a predictive model for the predictive problem based at least in part on a score of the selected predictive model.
일부 실시예에서, 본 방법의 액션은, 상기 맞춤화된 모델을 다른 맞춤화된 모델과 혼합하여 혼합된 예측 모델을 생성하는 단계를 더 포함한다.In some embodiments, the actions of the method further comprise mixing the customized model with other customized models to produce a blended predictive model.
일부 실시예에서, 본 방법의 액션은, 상기 맞춤화된 모델을 배치하는 단계를 더 포함한다. 일부 실시예에서, 상기 시계열 데이터는 제1 시계열 데이터이고, 상기 맞춤화된 모델을 배치하는 단계는, 상기 맞춤화된 모델을 상기 예측 문제의 하나 이상의 인스턴스들을 나타내는 제2 시계열 데이터에 적용함으로써 하나 이상의 예측들을 생성하는 단계를 포함하고, 상기 제1 시계열 데이터는 상기 제2 시계열 데이터를 포함하지 않는다. 일부 실시예에서, 상기 시계열 데이터는 제1 시계열 데이터이고, 상기 맞춤화된 모델을 배치하는 단계는, 제2 시계열 데이터에 적어도 부분적으로 기초하여 상기 맞춤화된 모델을 리프레시하는 단계를 포함한다. 일부 실시예에서, 상기 맞춤화된 모델은 제1 맞춤화된 모델이고, 상기 제2 시계열 데이터에 적어도 부분적으로 기초하여 상기 맞춤화된 모델을 리프레시하는 단계는: 제2 맞춤화된 모델을 생성하기 위해 상기 예측 모델링 절차를 상기 제2 시계열 데이터에 대해 수행하는 단계; 및 리프레시된 예측 모델을 생성하기 위해 상기 제1 맞춤화된 모델과 상기 제2 맞춤화된 모델을 혼합하는 단계를 포함한다. 일부 실시예에서, 상기 제2 시계열 데이터에 적어도 부분적으로 기초하여 상기 맞춤화된 모델을 리프레시하는 단계는: 리프레시된 예측 모델을 생성하기 위해 상기 제1 시계열 데이터의 적어도 일부 및 상기 제2 시계열 데이터의 적어도 일부를 포함하는 제3 시계열 데이터에 대해 상기 예측 모델링 절차를 수행하는 단계를 포함한다.In some embodiments, the action of the method further comprises deploying the customized model. In some embodiments, the time series data is first time series data, and placing the customized model comprises applying the customized model to second time series data representing one or more instances of the prediction problem to generate one or more predictions. and generating, wherein the first time series data does not include the second time series data. In some embodiments, the time series data is first time series data, and deploying the customized model comprises refreshing the customized model based at least in part on second time series data. In some embodiments, the customized model is a first customized model, and refreshing the customized model based at least in part on the second time series data comprises: the predictive modeling to generate a second customized model performing a procedure on the second time series data; and mixing the first customized model and the second customized model to generate a refreshed predictive model. In some embodiments, refreshing the customized model based at least in part on the second time series data comprises: at least a portion of the first time series data and at least a portion of the second time series data to generate a refreshed predictive model. and performing the predictive modeling procedure on third time series data including a portion.
일부 실시예에서, 상기 맞춤화된 모델은 하나 이상의 서버들에 배치되고, 다른 맞춤화된 모델들은 또한 상기 하나 이상의 서버들에 배치되고, 상기 맞춤화된 모델 및 상기 다른 맞춤화된 모델에 대한 예측 요청은, (1) 예측을 생성하기 위해 상기 맞춤화된 모델들의 각각에 의해 사용된 시간 양의 추정, 및/또는 (2) 상기 맞춤화된 모델들에 대한 예측 요청들이 수신되는 빈도의 추정에 적어도 부분적으로 기초하여 상기 서버들 중에 할당된다. 일부 실시예에서, 각각의 예측 요청이 각각의 스레드(thread)에 할당되고, 상기 각각의 예측 요청은 연관된 대기 시간-감도 값을 갖고, 특정 서버 상에서 실행되는 스레드들의 수는 상기 특정 서버 상에서 실행되는 상기 스레드들의 대기 시간-감도 값들에 적어도 부분적으로 기초하여 결정된다.In some embodiments, the customized model is deployed on one or more servers, other customized models are also deployed on the one or more servers, and a prediction request for the customized model and the other customized model includes: based at least in part on 1) an estimate of the amount of time used by each of the customized models to generate a prediction, and/or (2) an estimate of the frequency at which prediction requests for the customized models are received. assigned among the servers. In some embodiments, each prediction request is assigned to a respective thread, each prediction request has an associated latency-sensitivity value, and the number of threads executing on a particular server is the number of threads executing on the particular server. determined based at least in part on latency-sensitivity values of the threads.
일부 실시예에서, 본 방법의 액션은: 상기 시계열 데이터에 포함된 2개 이상의 피처들의 상호 작용 강도를 나타내는 메트릭의 값을 결정하는 단계; 및 상기 메트릭의 상기 값이 임계값을 초과하는 경우, 상기 2개 이상의 피처들의 상기 값들에 기초하여 새로운 피처의 시계열 값들을 생성하고, 상기 새로운 피처를 상기 시계열 데이터에 가산하는 단계를 더 포함한다.In some embodiments, the actions of the method include: determining a value of a metric representing an interaction strength of two or more features included in the time series data; and if the value of the metric exceeds a threshold, generating time-series values of a new feature based on the values of the two or more features, and adding the new feature to the time-series data.
일부 실시예에서, 본 방법의 액션은, 상기 시계열 데이터의 시간 분해능을 결정하는 단계를 더 포함한다. 일부 실시예에서, 상기 타겟은 사용자 입력에 기초하여 식별된다.In some embodiments, the action of the method further comprises determining a temporal resolution of the time series data. In some embodiments, the target is identified based on user input.
본 양태의 다른 실시예는, 예측 모델링 장치를 포함하고, 본 장치는: 예측 모델링 절차를 인코딩하는 머신-실행 가능 모듈을 저장하도록 구성되는 메모리로서, 상기 예측 모델링 절차는 적어도 하나의 사전-프로세싱 작업 및 적어도 하나의 모델-맞춤 작업을 포함하는 복수의 작업을 포함하는, 상기 메모리; 및 상기 머신-실행 가능 모듈을 실행하도록 구성되는 적어도 하나의 프로세서를 포함하고, 상기 머신-실행 가능 모듈의 실행은 상기 장치로 하여금 상기 예측 모델링 절차를 수행하게 한다. 사전-프로세스 작업의 수행은: (a) 하나 이상의 데이터 세트들을 포함하는 시계열 데이터를 얻는 단계로서, 각각의 데이터 세트는 복수의 관측치들을 포함하며, 각각의 관측치는 (1) 상기 관측치와 연관된 시간의 표시 및 (2) 하나 이상의 변수들의 각각의 값들을 포함하는, 상기 단계, (b) 상기 시계열 데이터의 시간 간격을 결정하는 단계, (c) 상기 하나 이상의 변수들을 타겟들로서 식별하고, 제로 이상의 다른 변수들을 피처들로서 식별하는 단계; 및 (d) 상기 시계열 데이터에 의해 나타내어지는 예측 문제와 연관된 예상 범위 및 스킵 범위를 결정하는 단계를 포함하고, 예상 범위는 상기 타겟들의 값들이 예측될 기간의 지속 시간을 나타내고, 상기 스킵 범위는 상기 예상 범위에서의 가장 빠른 예측과 연관된 시간과 상기 예상 범위에서의 예측들이 기초가 되는 최근 관측치와 연관된 시간 사이의 시간 래그를 나타낸다. 예측 모델링 절차의 수행은 모델-맞춤 작업의 수행을 포함하고,이 모델-맞춤 작업의 수행: (e) 상기 시계열 데이터로부터 트레이닝 데이터를 생성하는 단계로서, 상기 트레이닝 데이터는 상기 데이터 세트들 중 적어도 하나의 데이터 세트의 관측치들의 제1 서브세트를 포함하고, 상기 관측치들의 제1 서브세트는 상기 관측치들의 트레이닝-입력 및 트레이닝-출력 컬렉션들을 포함하고, 상기 트레이닝-입력 및 상기 트레이닝-출력 컬렉션들에서 상기 관측치들과 연관된 시간들은 트레이닝-입력 시간 범위 및 트레이닝-출력 시간 범위에 각각 대응하고, 상기 스킵 범위는 상기 트레이닝-입력 시간 범위의 끝을 상기 트레이닝-출력 시간 범위의 시작으로부터 분리하고, 상기 트레이닝-출력 시간 범위의 지속 시간은 적어도 상기 예상 기간만큼 긴, 상기 단계, (f) 상기 시계열 데이터로부터 테스팅 데이터를 생성하는 단계로서, 상기 테스팅 데이터는 상기 데이터 세트들 중 적어도 하나의 데이터 세트의 관측치들의 제2 서브세트를 포함하고, 상기 관측치들의 제2 서브세트는 상기 관측치들의 테스트-입력 및 테스트-유효성 검증 컬렉션들을 포함하고, 상기 테스트-입력 및 상기 테스트-유효성 검증 컬렉션들에서 상기 관측치들과 연관된 시간들은 테스트-입력 시간 범위 및 테스트-유효성 검증 시간 범위에 각각 대응하고, 상기 스킵 범위는 상기 테스트-입력 시간 범위의 끝을 상기 테스트-유효성 검증 시간 범위의 시작으로부터 분리하고, 상기 테스트-유효성 검증 시간 범위의 지속 시간은 적어도 상기 예상 범위만큼 긴, 상기 단계, (g) 예측 모델을 상기 트레이닝 데이터에 맞춤화하는 단계; 및 (h) 맞춤화된 모델을 상기 테스팅 데이터에 대해 테스트하는 단계를 포함한다. 머신-실행 가능 모듈은 작업들 사이의 의존성을 나타내는 지향 그래프를 포함할 수 있다.Another embodiment of this aspect includes a predictive modeling apparatus, the apparatus comprising: a memory configured to store a machine-executable module encoding a predictive modeling procedure, the predictive modeling procedure performing at least one pre-processing task and a plurality of tasks including at least one model-fitting task; and at least one processor configured to execute the machine-executable module, wherein the execution of the machine-executable module causes the apparatus to perform the predictive modeling procedure. The performance of the pre-process operation comprises: (a) obtaining time series data comprising one or more data sets, each data set comprising a plurality of observations, each observation comprising (1) a time series associated with the observation. an indication and (2) respective values of one or more variables, (b) determining a time interval of the time series data, (c) identifying the one or more variables as targets, and zero or more other variables identifying them as features; and (d) determining an expected range and a skip range associated with a prediction problem represented by the time series data, wherein the expected range indicates a duration of time for which values of the targets are to be predicted, and wherein the skip range is the It represents the time lag between the time associated with the earliest prediction in the expected range and the time associated with the most recent observation on which the predictions in the expected range are based. Performing the predictive modeling procedure comprises performing a model-fitting task, wherein performing the model-fitting task: (e) generating training data from the time series data, the training data comprising at least one of the data sets a first subset of observations in a data set of The times associated with observations correspond to a training-input time range and a training-output time range, respectively, wherein the skip range separates the end of the training-input time range from the beginning of the training-output time range, and wherein the duration of an output time range is at least as long as the expected duration; two subsets, wherein the second subset of observations includes test-input and test-validation collections of the observations, the time associated with the observations in the test-input and test-validation collections are respectively corresponding to a test-input time range and a test-validation time range, the skip range separating the end of the test-input time range from the beginning of the test-validation time range, and the test-validation time range wherein the duration of the range is at least as long as the expected range; (g) fitting a predictive model to the training data; and (h) testing the customized model against the testing data. A machine-executable module may include a directed graph representing dependencies between tasks.
피처의 예측 값 결정Determining the predicted value of a feature
예측 문제에 대한 정확한 예측 모델이 이용 가능한 경우에도, (1) 예측 문제 자체 및 (2) 특정 예측 모델이 어떻게 정확한 예측 결과를 생성하는지를 이해하는 것이 어려울 수 있다. "피처 중요도"의 메트릭은 이러한 이해를 용이하게 할 수 있다. 일반적으로 피처 중요도 메트릭은 데이터 세트가 나타내는 예측 문제의 결과를 예측하기 위해 데이터 세트의 피처에 대한 예측값을 나타낸다. 피처 중요도를 측정하기 위한 종래 기술은 일반적으로 특정 유형의 예측 모델에만 적용 가능하며, 일반적으로 다른 유형의 예측 모델과 함께 사용하기에 적합하지 않다. 따라서, 임의의 예측 모델 또는 다양한 예측 모델 세트에 대한 피처 중요도를 측정할 수 있는 도구가 필요하다. 또한, 피처 중요도 메트릭을 사용하여 예측 모델링 절차 평가, 엔지니어링 작업 기능 및 예측 모델 혼합에 대한 자원 할당을 가이드할 수 있는 도구가 필요하며, 이에 의해 문제를 예측하기 위한 잠재적 예측 모델링 기술의 공간의 비용 효과적인 평가를 용이하게 한다.Even when accurate predictive models for predictive problems are available, it can be difficult to understand (1) the predictive problem itself and (2) how a particular predictive model produces accurate predictive results. A metric of “feature importance” may facilitate this understanding. In general, a feature importance metric represents a predicted value for a feature in a data set in order to predict the outcome of the prediction problem that the data set represents. Prior art techniques for measuring feature importance are generally only applicable to certain types of predictive models, and are generally not suitable for use with other types of predictive models. Therefore, there is a need for a tool that can measure feature importance for any predictive model or set of various predictive models. In addition, there is a need for tools that can use feature importance metrics to guide the evaluation of predictive modeling procedures, engineering work functions, and resource allocation for predictive model mixes, thereby cost-effectively reducing the space of potential predictive modeling techniques for predicting problems. facilitate evaluation.
일반적으로, 본 명세서에 설명되는 주제의 다른 혁신적인 양태는 방법으로 구현될 수 있으며, 본 방법은: (a) 복수의 예측 모델링 절차들을 수행하는 단계로서, 상기 예측 모델링 절차들의 각각은 예측 모델과 연관되고, 각각의 모델링 절차를 수행하는 단계는 초기 예측 문제를 나타내는 초기 데이터 세트에 상기 연관된 예측 모델을 맞춤화하는 단계를 포함하는, 상기 단계; (b) 상기 맞춤화된 예측 모델들의 각각의 제1 각각의 정확도 스코어를 결정하는 단계로서, 각각의 맞춤화된 모델의 상기 제1 정확도 스코어는, 상기 맞춤화된 모델이 상기 초기 예측 문제의 하나 이상의 결과들을 예측하는 정확도를 나타내는, 상기 단계; (c) 상기 초기 데이터 세트에 포함된 각각의 관측치들에 걸쳐 피처의 값을 셔플링(shuffling)함으로써, 수정된 예측 문제를 나타내는 수정된 데이터 세트를 생성하는 단계; (d) 상기 맞춤화된 예측 모델들의 각각의 제2 각각의 정확도 스코어를 결정하는 단계로서, 각각의 맞춤화된 모델의 제2 정확도 스코어는, 상기 맞춤화된 모델이 상기 수정된 예측 문제의 하나 이상의 결과들을 예측하는 정확도를 나타내는, 상기 단계; 및 (e) 상기 맞춤화된 모델들의 각각에 대한 상기 피처의 각각의 모델-특유 예측 값을 결정하는 단계를 포함하고, 각각의 맞춤화된 모델에 대한 상기 피처의 모델-특유 예측 값은 상기 맞춤화된 모델의 상기 제1 정확도 스코어 및 상기 제2 정확도 스코어에 기초한다.In general, another innovative aspect of the subject matter described herein may be embodied in a method comprising: (a) performing a plurality of predictive modeling procedures, each of which is associated with a predictive model wherein performing each modeling procedure comprises fitting the associated predictive model to an initial data set representing an initial predictive problem; (b) determining a first respective accuracy score of each of the customized predictive models, wherein the first accuracy score of each customized model determines that the customized model determines one or more results of the initial prediction problem. indicating accuracy of prediction; (c) shuffling the value of a feature over each of the observations included in the initial data set, thereby generating a modified data set representing a modified prediction problem; (d) determining a respective second respective accuracy score of each of the customized predictive models, wherein the second accuracy score of each customized model determines that the customized model determines one or more results of the modified prediction problem. indicating accuracy of prediction; and (e) determining a respective model-specific predictive value of the feature for each of the customized models, wherein the model-specific predictive value of the feature for each customized model is determined by the customized model. based on the first accuracy score and the second accuracy score of
이 양태의 다른 실시예는 대응 컴퓨터 시스템, 장치 및 각각 이 방법의 액션을 수행하도록 구성된, 하나 이상의 컴퓨터 저장 디바이스 상에 기록된 컴퓨터 프로그램을 포함한다. 하나 이상의 컴퓨터로 이루어진 시스템은 소프트웨어, 펌웨어, 하드웨어 또는 이들의 조합이 동작 중에 있는 시스템 상에 설치되어 시스템이 동작을 수행하게 함으로써 특정 동작을 수행하도록 구성될 수 있다. 하나 이상의 컴퓨터 프로그램은 데이터 프로세싱 장치에 의해 실행될 때 장치로 하여금 액션을 수행하게 하는 명령을 포함함으로써 특정 동작을 수행하도록 구성될 수 있다.Another embodiment of this aspect includes a corresponding computer system, apparatus, and computer program recorded on one or more computer storage devices, each configured to perform the action of the method. A system of one or more computers may be configured to perform a particular operation by installing software, firmware, hardware, or a combination thereof on the system in operation, causing the system to perform the operation. One or more computer programs may be configured to perform particular operations by including instructions that, when executed by the data processing apparatus, cause the apparatus to perform the actions.
전술한 실시예 및 다른 실시예는 각각 선택적으로 단독으로 또는 조합으로 이하의 특징의 하나 이상을 포함할 수 있다. 일부 실시예에서, 본 방법의 액션은: 상기 복수의 예측 모델링 절차를 수행하기 전에, 상기 초기 데이터 세트의 특성들, 상기 초기 예측 문제의 특성들 및/또는 상기 피처의 특성들에 기초하여 상기 예측 문제에 대한 상기 복수의 예측 모델링 절차들을 선택하는 단계를 더 포함한다. 일부 실시예에서, 상기 복수의 예측 모델링 절차들은 랜덤 포리스트(random forest) 모델링 절차, 일반화된 가산 모델링 절차 및 지원 벡터 머신 모델링 절차로 이루어진 그룹으로부터 선택된 2 이상의 모델링 절차들을 포함한다. 일부 실시예에서, 상기 복수의 예측 모델링 절차들은 모델링 절차들의 제1 패밀리로부터 선택된 제1 모델링 절차 및 모델링 절차들의 제2 패밀리로부터 선택된 제2 모델링 절차를 포함한다.The foregoing and other embodiments may each optionally include one or more of the following features, alone or in combination. In some embodiments, the action of the method comprises: prior to performing the plurality of predictive modeling procedures, the prediction based on characteristics of the initial data set, characteristics of the initial prediction problem, and/or characteristics of the feature. The method further comprises selecting the plurality of predictive modeling procedures for a problem. In some embodiments, the plurality of predictive modeling procedures comprises two or more modeling procedures selected from the group consisting of a random forest modeling procedure, a generalized additive modeling procedure, and a support vector machine modeling procedure. In some embodiments, the plurality of predictive modeling procedures comprises a first modeling procedure selected from a first family of modeling procedures and a second modeling procedure selected from a second family of modeling procedures.
일부 실시예에서, 본 방법의 액션은, 상기 예측 모델의 제2 정확도 스코어를 결정하기 전에, 상기 수정된 예측 문제를 나타내는 상기 수정된 데이터 세트에 상기 예측 모델들을 다시 맞춤화하는 단계를 더 포함한다. 일부 실시예에서, 특정 맞춤화된 모델에 대한 상기 피처의 상기 결정된 모델-특유 예측 값은, 상기 특정 맞춤화된 모델의 상기 제1 정확도 스코어와 상기 제2 정확도 스코어 사이의 차이가 증가함에 따라 증가한다. 일부 실시예에서, 특정 맞춤화된 모델에 대한 상기 피처의 결정된 모델-특유 예측 값은, 상기 특정 맞춤화된 모델의 제1 정확도 스코어에 대한, 상기 특정 맞춤화된 모델의 제1 정확도 스코어와 제2 정확도 스코어 사이의 백분율 차이를 포함한다.In some embodiments, the action of the method further comprises, prior to determining the second accuracy score of the predictive model, refitting the predictive models to the modified data set representative of the modified prediction problem. In some embodiments, the determined model-specific predictive value of the feature for a particular customized model increases as the difference between the first accuracy score and the second accuracy score of the particular customized model increases. In some embodiments, the determined model-specific predictive value of the feature for a particular customized model is a first accuracy score and a second accuracy score of the particular customized model relative to the first accuracy score of the particular customized model. Include the percentage difference between
일부 실시예에서, 본 방법의 액션은, 상기 피처의 모델-특유 예측 값들에 기초하여 상기 피처의 모델-독립 예측 값을 결정하는 단계를 더 포함한다. 일부 실시예에서, 상기 피처의 모델-독립 예측 값을 결정하는 단계는, 상기 피처의 모델-특유 예측 값들의 중심 및/또는 확산의 통계적 척도를 계산하는 단계를 포함한다. 일부 실시예에서, 상기 피처의 모델-독립 예측 값을 결정하는 단계는, 상기 모델-특유 예측 값들의 중심의 통계적 척도를 계산하는 단계를 포함하고, 상기 중심의 계적 척도는 평균(mean), 중앙값(median), 및 모델-특유 예측 값들의 모드로 이루어지는 그룹으로부터 선택된다. 일부 실시예에서, 상기 피처의 모델-독립 예측 값을 결정하는 단계는, 상기 모델-특유 예측 값들의 확산의 통계적 척도를 계산하는 단계를 포함하고, 상기 확산의 통계적 척도는 범위, 분산 및 상기 모델-특유 예측 값들의 표준 편차로 이루어지는 그룹으로부터 선택된다. 일부 실시예에서, 상기 피처의 모델-독립 예측 값을 결정하는 단계는, 상기 피처의 모델-특유 예측 값들의 조합을 계산하는 단계를 포함한다. 일부 실시예에서, 상기 모델-특유 예측 값들의 조합을 계산하는 단계는, 상기 모델-특유 예측 값들의 가중화된 조합을 계산하는 단계를 포함한다. 일부 실시예에서, 상기 모델-특유 예측 값들의 가중화된 조합을 계산하는 단계는, 상기 모델-특유 예측 값들에 각각의 가중치를 할당하는 단계를 포함하고, 특정 맞춤화된 모델에 대응하는 특정 모델-특유 예측 값에 할당되는 가중치는, 상기 맞춤화된 예측 모델의 상기 제1 정확도 스코어가 증가함에 따라 증가한다.In some embodiments, the action of the method further comprises determining a model-independent predictive value of the feature based on model-specific predictive values of the feature. In some embodiments, determining the model-independent predictive value of the feature comprises calculating a statistical measure of the centroid and/or spread of model-specific predictive values of the feature. In some embodiments, determining the model-independent predictive value of the feature comprises calculating a statistical measure of centroids of the model-specific predictive values, wherein the systematic measure of centroids is a mean, a median. (median), and a mode of model-specific prediction values. In some embodiments, determining the model-independent predictive value of the feature comprises calculating a statistical measure of the spread of the model-specific predictive values, wherein the statistical measure of the spread is a range, a variance, and the model. - selected from the group consisting of the standard deviation of the unique predictive values. In some embodiments, determining the model-independent predictive value of the feature comprises calculating a combination of model-specific predictive values of the feature. In some embodiments, calculating the combination of model-specific prediction values comprises calculating a weighted combination of the model-specific prediction values. In some embodiments, calculating the weighted combination of model-specific prediction values comprises assigning respective weights to the model-specific prediction values, wherein a specific model corresponding to a specific customized model- The weight assigned to a unique predictive value increases as the first accuracy score of the customized predictive model increases.
일부 실시예에서, 상기 피처는 제1 피처이고, 본 방법의 액션은 (c1) 상기 초기 데이터 세트에 포함된 각각의 관측치들에 걸쳐 제2 피처의 값들을 셔플링함으로써, 제2 수정된 예측 문제를 나타내는 제2 수정된 데이터 세트를 생성하는 단계; (d1) 상기 맞춤화된 모델들의 각각의 제3 정확도 스코어를 결정하는 단계로서, 각각의 맞춤화된 모델의 상기 제3 정확도 스코어는, 상기 맞춤화된 모델이 상기 제2 수정된 예측 문제의 하나 이상의 결과들을 예측하는 정확도를 나타내는, 상기 단계; 및 (e1) 상기 맞춤화된 모델들의 각각에 대해 상기 제2 피처의 각각의 모델-특유 예측 값을 결정하는 단계를 포함하고, 상기 맞춤화된 모델 각각에 대한 상기 제2 피처의 모델-특유 예측 값은 상기 맞춤화된 모델의 제1 정확도 스코어 및 제3 정확도 스코어에 기초한다.In some embodiments, the feature is a first feature, and the action of the method comprises (c1) shuffling the values of the second feature over respective observations included in the initial data set, thereby resulting in a second modified prediction problem. generating a second modified data set representing (d1) determining a third accuracy score of each of the customized models, wherein the third accuracy score of each customized model determines whether the customized model determines one or more results of the second modified prediction problem. indicating accuracy of prediction; and (e1) determining a respective model-specific prediction value of the second feature for each of the customized models, wherein the model-specific prediction value of the second feature for each of the customized models is based on a first accuracy score and a third accuracy score of the customized model.
일부 실시예에서, 상기 피처는 제1 피처이고, 상기 초기 데이터 세트는 상기 제1 피처 및 복수의 제2 피처들을 포함하고, 상기 방법의 액션은 상기 제2 피처들의 각각에 대해 단계 (c), (d) 및 (e)를 수행함으로써 상기 초기 데이터 세트의 제2 피처들의 모델-특유 예측 값들을 결정하는 단계를 더 포함한다.In some embodiments, the feature is a first feature, and the initial data set comprises the first feature and a plurality of second features, the method comprising: step (c) for each of the second features; and determining model-specific prediction values of second features of the initial data set by performing (d) and (e).
일부 실시예에서, 본 방법의 액션은, 그래픽 사용자 인터페이스를 통해, 상기 초기 데이터 세트의 제1 피처 및 제2 피처들과, 상기 제1 피처 및 상기 제2 피처들의 모델-특유 예측 값들을 식별하는 그래픽 컨텐츠를 표시하는 단계를 더 포함한다. 일부 실시예에서, 상기 모델링 절차들은 특정 예측 모델과 연관된 특정 모델링 절차를 포함하는 제1 모델링 절차들이고, 상기 제1 피처 및 상기 제2 피처들의 상기 모델-특유 예측 값들은 상기 특정 예측 모델에 특정적인 상기 제1 피처 및 상기 제2 피처의 특정의 모델-특유 예측 값들을 포함하고, 상기 방법의 액션은 (a1) 상기 특정 예측 모델과 연관된 상기 특정 모델링 절차를 포함하는 복수의 제2 예측 모델링 절차들을 수행하는 단계를 더 포함한다. 일부 실시예에서, 상기 특정 예측 모델링 절차들을 수행하는 단계는, 상기 제1 피처 및 상기 제2 피처들의 특정 모델-특유 예측 값들에 기초하여 상기 초기 데이터 세트에 대한 피처 엔지니어링을 수행하는 단계를 포함한다.In some embodiments, the action of the method comprises, via a graphical user interface, identifying first and second features of the initial data set and model-specific prediction values of the first and second features. The method further includes displaying graphic content. In some embodiments, the modeling procedures are first modeling procedures comprising a specific modeling procedure associated with a specific predictive model, wherein the model-specific prediction values of the first feature and the second features are specific to the specific predictive model. comprising specific model-specific prediction values of the first feature and the second feature, wherein the action of the method comprises (a1) a plurality of second predictive modeling procedures comprising the specific modeling procedure associated with the specific predictive model. It further comprises the step of performing. In some embodiments, performing the specific predictive modeling procedures comprises performing feature engineering on the initial data set based on specific model-specific prediction values of the first feature and the second features. .
일부 실시예에서, 상기 피처 엔지니어링을 수행하는 단계는, 특정 피처가 낮은 모델-특유 예측 값을 갖는 것에 기초하여 상기 초기 데이터 세트로부터 특정 피처를 제거하는 단계를 포함한다. 일부 실시예에서, 본 방법의 액션은 상기 특정 피처의 모델-특유 예측 값이 임계값보다 낮은 것에 기초하고 그리고/또는 상기 특정 피처의 상기 모델-특유 예측 값이 상기 초기 데이터 세트의 제1 피처 및 제2 피처에 대한 상기 특정 모델-특유 예측 값들의 특정된 백분위 값인 것에 기초하여, 상기 특정 피처의 상기 모델-특유 예측 값이 낮은 것으로 결정하는 단계를 더 포함한다.In some embodiments, performing the feature engineering comprises removing particular features from the initial data set based on the features having low model-specific predictive values. In some embodiments, the action of the method is based on the model-specific prediction value of the particular feature being lower than a threshold and/or the model-specific predictive value of the particular feature being the first feature of the initial data set and determining that the model-specific predictive value of the particular feature is low based on being a specified percentile value of the particular model-specific predictive values for a second feature.
일부 실시예에서, 상기 피처 엔지니어링을 수행하는 단계는: 상기 초기 데이터 세트의 2 이상의 특정 피처들이 높은 모델-특유 예측 값들을 갖는 것에 기초하여 도출된 피처를 생성하는 단계; 및 상기 도출된 피처를 상기 초기 데이터 세트에 가산함으로써, 제2 초기 데이터 세트를 생성하는 단계를 포함한다. 일부 실시예에서, 본 방법의 액션은, 상기 특정 피처들의 상기 모델-특유 예측 값들이 임계값보다 높은 것에 기초하고 그리고/또는 상기 특정 피처들의 상기 모델-특유 예측 값들이 상기 초기 데이터 세트의 제1 피처 및 상기 제2 피처에 대한 상기 특정 모델-특유 예측 값들의 특정된 백분위 값인 것에 기초하여, 상기 특정 피처들의 상기 모델-특유 예측 값들이 높은 것으로 결정하는 단계를 더 포함한다.In some embodiments, performing the feature engineering comprises: generating a derived feature based on which two or more specific features of the initial data set have high model-specific prediction values; and adding the derived features to the initial data set, thereby generating a second initial data set. In some embodiments, the action of the method is that the model-specific prediction values of the specific features are based on being higher than a threshold value and/or that the model-specific prediction values of the specific features are based on a first value of the initial data set. determining that the model-specific prediction values of the particular features are high based on being a specified percentile value of the particular model-specific prediction values for a feature and the second feature.
일부 실시예에서, 상기 특정 예측 모델링 절차를 수행하는 단계는, 상기 특정 예측 모델을 상기 제2 초기 데이터 세트에 맞춤화하는 단계를 더 포함하고, 상기 방법의 액션은: 상기 맞춤화된 특정 예측 모델의 제1 정확도 스코어를 결정하는 단계로서, 상기 맞춤화된 특정 모델의 제1 정확도 스코어는, 상기 맞춤화된 특정 모델이 상기 초기 예측 문제의 하나 이상의 결과들을 예측하는 정확도를 나타내는, 상기 단계; 상기 제2 초기 데이터 세트에 포함된 각각의 관측치들에 걸쳐 상기 제1 피처의 값들을 셔플링함으로써, 제2 수정된 예측 문제를 나타내는 제2 수정된 데이터 세트를 생성하는 단계; 상기 맞춤화된 특정 예측 모델의 제2 정확도 스코어를 결정하는 단계로서, 상기 맞춤화된 특정 모델의 상기 제2 정확도 스코어는, 상기 맞춤화된 모델이 상기 제2 수정된 예측 문제의 하나 이상의 결과들을 예측하는 정확도를 나타내는, 상기 단계; 및 상기 맞춤화된 특정 모델에 대해 상기 제1 피처의 제2 모델-특유 예측 값을 결정하는 단계를 포함하고, 상기 맞춤화된 특정 모델에 대해 상기 제1 피처의 제2 모델-특유 예측 값이 상기 맞춤화된 특정 모델의 제1 정확도 스코어 및 제2 정확도 스코어에 기초한다.In some embodiments, performing the specific predictive modeling procedure further comprises: customizing the specific predictive model to the second initial data set, wherein the actions of the method include: determining a 1 accuracy score, wherein the first accuracy score of the customized specific model is indicative of an accuracy with which the customized specific model predicts one or more outcomes of the initial prediction problem; generating a second modified data set representing a second modified prediction problem by shuffling the values of the first feature over respective observations included in the second initial data set; determining a second accuracy score of the customized specific predictive model, wherein the second accuracy score of the customized specific model is an accuracy with which the customized model predicts one or more outcomes of the second modified prediction problem. representing the above steps; and determining a second model-specific predictive value of the first feature for the particular customized model, wherein a second model-specific predictive value of the first feature for the particular customized model is determined by the customization. based on the first accuracy score and the second accuracy score of the specified model.
일부 실시예에서, 본 방법의 액션은, 상기 복수의 제2 모델링 절차들을 수행하기 전에: 상기 초기 예측 문제에 대해 상기 선택된 모델링 절차들의 적절성에 기초하여 상기 제2 모델링 절차들을 선택하는 단계를 더 포함하고, 상기 초기 예측 문제에 대한 상기 특정 예측 모델링 절차의 적절성은, 상기 초기 데이터 세트의 하나 이상의 특정 피처들의 특성들이 상기 특정 예측 모델링 절차를 위해 높은 모델-특유 예측 값들을 갖는 것에 적어도 부분적으로 기초하여 결정된다.In some embodiments, the action of the method further comprises, before performing the plurality of second modeling procedures: selecting the second modeling procedures based on suitability of the selected modeling procedures for the initial prediction problem. and the suitability of the particular predictive modeling procedure for the initial prediction problem is based, at least in part, on characteristics of one or more particular features of the initial data set having high model-specific predictive values for the particular predictive modeling procedure. it is decided
일부 실시예에서, 본 방법의 액션은, 명령어를 복수의 프로세싱 노드들에 송신하는 단계로서, 상기 명령어는 상기 제2 모델링 절차들의 실행을 위해 상기 프로세싱 노드들의 자원들을 할당하는 자원 할당 스케줄을 포함하고, 상기 자원 할당 스케줄은 상기 초기 예측 문제에 대해 상기 제2 모델링 절차들의 적절성에 적어도 부분적으로 기초하는, 단계; 상기 자원 할당 스케줄에 따라 상기 복수의 프로세싱 노드들에 의해 상기 제2 모델링 절차들의 실행의 결과들을 수신하는 단계로서, 상기 결과들은 상기 제2 모델링 절차들에 의해 생성된 예측 모델들, 및/또는 상기 초기 예측 문제와 연관된 데이터에 대해 생성된 모델들의 스코어를 포함하는, 상기 단계; 및 상기 생성된 모델들로부터, 상기 선택된 예측 모델의 스코어에 적어도 부분적으로 기초하여 상기 초기 예측 문제에 대한 예측 모델을 선택하는 단계를 더 포함한다. 일부 실시예에서, 본 방법의 액션은, 상기 생성된 예측 모델들 중 2개 이상을 조합하여 혼합된 예측 모델을 생성하는 단계; 및 상기 혼합된 예측 모델을 평가하는 단계를 더 포함한다.In some embodiments, the action of the method comprises sending an instruction to a plurality of processing nodes, the instruction comprising a resource allocation schedule allocating resources of the processing nodes for execution of the second modeling procedures; , wherein the resource allocation schedule is based, at least in part, on adequacy of the second modeling procedures for the initial prediction problem; receiving results of execution of the second modeling procedures by the plurality of processing nodes according to the resource allocation schedule, the results including predictive models generated by the second modeling procedures, and/or the comprising a score of models generated for data associated with an initial prediction problem; and selecting, from the generated models, a predictive model for the initial prediction problem based at least in part on a score of the selected predictive model. In some embodiments, the actions of the method include: combining two or more of the generated predictive models to generate a blended predictive model; and evaluating the blended predictive model.
일부 실시예에서, 상기 수정된 예측 문제에 대한 모델-독립 피처의 예측 값은 임계 예측 값보다 작다.In some embodiments, the predicted value of the model-independent feature for the modified prediction problem is less than the threshold prediction value.
일부 실시예에서, 초기 데이터 세트는 초기 시계열 데이터 세트이고, 초기 예측 문제는 초기 시계열 예측 문제이고, 수정된 데이터 세트는 수정된 시계열 데이터 세트이고,수정된 예측 문제는 수정된 시계열 예측 문제이다. 일부 실시예에서, 맞춤화된 모델은 하나 이상의 시계열 예측 모델을 포함한다.In some embodiments, the initial data set is an initial time series data set, the initial prediction problem is an initial time series prediction problem, the modified data set is a modified time series data set, and the modified prediction problem is a modified time series prediction problem. In some embodiments, the customized model includes one or more time series prediction models.
본 양태의 다른 실시예는, 예측 모델링 장치를 포함하고, 본 장치는, 프로세서-실행 가능 명령어를 저장하도록 구성된 메모리; 및 상기 프로세서-실행 가능 명령어를 실행하도록 구성된 프로세서를 포함하고, 상기 프로세서-실행 가능 명령어의 실행은 상기 장치로 하여금 이하의 단계를 수행하게 하고, 상기 단계들은: (a) 복수의 예측 모델링 절차들을 수행하는 단계로서, 상기 예측 모델링 절차들의 각각은 예측 모델과 연관되고, 각각의 모델링 절차를 수행하는 단계는 초기 예측 문제를 나타내는 초기 데이터 세트에 상기 연관된 예측 모델을 맞춤화하는 단계를 포함하는, 상기 단계; (b) 상기 맞춤화된 각각의 예측 모델들의 각각의 제1 정확도 스코어를 결정하는 단계로서, 각각의 맞춤화된 모델의 상기 제1 정확도 스코어는, 상기 맞춤화된 모델이 상기 초기 예측 문제의 하나 이상의 결과들을 예측하는 정확도를 나타내는, 상기 단계; (c) 상기 초기 데이터 세트에 포함된 각각의 관측치들에 걸쳐 피처의 값들을 셔플링함으로써, 수정된 예측 문제를 나타내는 수정된 데이터 세트를 생성하는 단계; (d) 상기 맞춤화된 각각의 예측 모델의 각각의 제2 정확도 스코어를 결정하는 단계로서, 각각의 맞춤화된 모델의 상기 제2 정확도 스코어는, 상기 맞춤화된 모델이 상기 수정된 예측 문제의 하나 이상의 결과들을 예측하는 정확도를 나타내는, 상기 단계; 및 (e) 상기 맞춤화된 모델의 각각에 대한 상기 피처의 각각의 모델-특유 예측 값을 결정하는 단계를 포함하고, 각각의 맞춤화된 모델에 대한 상기 피처의 상기 모델-특유 예측 값은 상기 맞춤화된 모델의 상기 제1 정확도 스코어 및 상기 제2 정확도 스코어에 기초한다.Another embodiment of this aspect includes a predictive modeling apparatus comprising: a memory configured to store processor-executable instructions; and a processor configured to execute the processor-executable instructions, wherein the execution of the processor-executable instructions causes the apparatus to perform the steps of: (a) performing a plurality of predictive modeling procedures; performing each of the predictive modeling procedures associated with a predictive model, and performing each modeling procedure comprises fitting the associated predictive model to an initial data set representing an initial predictive problem. ; (b) determining a respective first accuracy score of each of the customized predictive models, wherein the first accuracy score of each customized model determines whether the customized model determines one or more results of the initial prediction problem. indicating the accuracy of the prediction; (c) shuffling the values of the feature over each of the observations included in the initial data set, thereby generating a modified data set representing the modified prediction problem; (d) determining a respective second accuracy score of each of the customized predictive models, wherein the second accuracy score of each customized model is one or more outcomes of the prediction problem for which the customized model is modified. indicating the accuracy of predicting them; and (e) determining each model-specific predictive value of the feature for each of the customized models, wherein the model-specific predictive value of the feature for each customized model is based on the first accuracy score and the second accuracy score of the model.
본 양태의 다른 실시예는, 컴퓨터-판독 가능 명령어를 저장한 제조품을 포함하고, 프로세서에 의해 실행될 때 상기 프로세서로 하여금 이하의 동작들을 수행하게 하고, 상기 동작들은: (a) 복수의 예측 모델링 절차들을 수행하는 동작으로서, 상기 예측 모델링 절차들의 각각은 예측 모델과 연관되고, 각각의 모델링 절차를 수행하는 동작은 초기 예측 문제를 나타내는 초기 데이터 세트에 상기 연관된 예측 모델을 맞춤화하는 동작을 포함하는, 상기 동작; (b) 상기 맞춤화된 각각의 예측 모델들의 각각의 제1 정확도 스코어를 결정하는 동작으로서, 각각의 맞춤화된 모델의 상기 제1 정확도 스코어는, 상기 맞춤화된 모델이 상기 초기 예측 문제의 하나 이상의 결과들을 예측하는 정확도를 나타내는, 상기 동작; (c) 상기 초기 데이터 세트에 포함된 각각의 관측치들에 걸쳐 피처의 값들을 셔플링함으로써, 수정된 예측 문제를 나타내는 수정된 데이터 세트를 생성하는 동작; (d) 상기 맞춤화된 각각의 예측 모델의 각각의 제2 정확도 스코어를 결정하는 동작으로서, 각각의 맞춤화된 모델의 상기 제2 정확도 스코어는, 상기 맞춤화된 모델이 상기 수정된 예측 문제의 하나 이상의 결과들을 예측하는 정확도를 나타내는, 상기 동작; 및 (e) 상기 맞춤화된 모델의 각각에 대한 상기 피처의 각각의 모델-특유 예측 값을 결정하는 동작을 포함하고, 각각의 맞춤화된 모델에 대한 상기 피처의 모델-특유 예측 값은 상기 맞춤화된 모델의 제1 정확도 스코어 및 상기 정확도 스코어에 기초한다.Another embodiment of this aspect includes an article of manufacture having stored thereon computer-readable instructions, wherein when executed by a processor, cause the processor to perform the following operations: (a) a plurality of predictive modeling procedures wherein each of the predictive modeling procedures is associated with a predictive model, and wherein performing each modeling procedure comprises fitting the associated predictive model to an initial data set representative of an initial prediction problem. movement; (b) determining a respective first accuracy score of each of the customized predictive models, wherein the first accuracy score of each customized model comprises: indicative of predictive accuracy; (c) generating a modified data set representing a modified prediction problem by shuffling the values of the feature over respective observations included in the initial data set; (d) determining a respective second accuracy score of each of the customized predictive models, wherein the second accuracy score of each customized model is one or more results of the prediction problem for which the customized model is modified. indicating the accuracy of predicting them; and (e) determining each model-specific predictive value of the feature for each of the customized models, wherein the model-specific predictive value of the feature for each customized model is determined by the customized model. based on the first accuracy score of and the accuracy score.
본 양태의 특정 실시예는 이하의 하나 이상의 이점을 구현하도록 실현될 수 있다. 이 양태의 일부 실시예는 예측 문제의 이해를 용이하게 하고 특정 예측 모델이 어떻게 결과를 정확하게 예측하는지 나타내기 위해 유리하게 사용될 수 있다. 본 양태의 일부 실시예는 임의의 예측 모델 또는 예측 모델의 다양한 세트에 대해 피쳐 중요도를 측정할 수 있다. 본 양태의 일부 실시예는 예측 모델링 절차를 평가하고 엔지니어링 작업을 피처링하고 예측 모델을 혼합하기 위해 자원의 할당을 안내할 수 있으며, 이에 의해 예측 문제에 대한 잠재적인 예측 모델링 기술의 공간의 비용 효과적인 평가를 용이하게 한다.Certain embodiments of this aspect may be realized to implement one or more of the following advantages. Some embodiments of this aspect can be advantageously used to facilitate understanding of prediction problems and to show how a particular predictive model accurately predicts an outcome. Some embodiments of this aspect may measure feature importance for any predictive model or various sets of predictive models. Some embodiments of this aspect may guide the allocation of resources to evaluate predictive modeling procedures, feature engineering tasks, and blend predictive models, thereby cost-effectively evaluating the space of potential predictive modeling techniques for predictive problems. to facilitate
2차 예측 모델링Secondary Predictive Modeling
특정 모델링 기술은 이해하기 어렵고 소프트웨어로 효율적으로 구현하기 어려운, 불투명 및/또는 복잡한 모델을 생성하는 경향이 있다. 이러한 모델을 구현하는 소프트웨어는 상당한 컴퓨팅 자원을 사용하여, 다른 똑같은 정확한 모델을 구현하는 소프트웨어를 이용해서 훨씬 더 효율적으로 생성될 수 있는 예측을 산출할 수 있다.Certain modeling techniques tend to produce opaque and/or complex models that are difficult to understand and efficiently implement in software. Software implementing these models can use significant computing resources to produce predictions that can be generated much more efficiently using software implementing other identically accurate models.
모델의 정확도를 크게 떨어 뜨리지 않고 하나 이상의 입력 변수("피처")(F1)의 값에 기초하여 하나 이상의 출력 변수("타겟")(T)의 값을 예측하는 1차 예측 모델(M1)의 불투명도 및/또는 복잡도를 감소시키는 기술이 필요하다. 본 발명자들은 1차 모델(M1)의 2차 모델(M2)을 구축함으로써 이러한 요구가 충족될 수 있다는 것을 인식하고 이해하고 있다. 2차 모델은 동일한 피처(F1)(또는 그 서브세트) 및/또는 1차 모델에 의해 사용되지 않는 하나 이상의 피처들에 기초하여 타겟들(T)에 대한 1차 모델의 예측된 값을 예측할 수 있다.A first-order predictive model (M1) that predicts the values of one or more output variables (“targets”) (T) based on the values of one or more input variables (“features”) (F1) without significantly reducing the accuracy of the model. Techniques are needed to reduce opacity and/or complexity. The inventors recognize and understand that this need can be met by building a second-order model M2 of the first-order model M1. The second-order model may predict the predicted value of the first-order model for targets T based on the same feature F1 (or a subset thereof) and/or one or more features not used by the first-order model. have.
많은 경우, 이 양태의 실시예에 의해 생성된 2차 모델은 대응하는 1차 모델과 정확하게 동일하거나 더 정확하며, 2차 모델을 구현하는 소프트웨어는 대응하는 1차 모델을 구현하는 소프트웨어보다 실질적으로 더 효율적이다. 이 양태의 실시예가 혼합된 1차 모델의 2차 모델을 생성하는 데 사용될 때, 2차 모델은 많은 경우에 특히 정확하며 많은 경우 2차 모델을 구현하는 소프트웨어는 상응하는 1차 모델을 구현하는 것보다 소프트웨어보다 더 효율적(예를 들어, 보다 적은 연산 자원 사용). 이 양태의 일부 실시예에 따라 생성된 2차 모델은 복잡한 1차 모델을 이해하는 데 유익할 수 있고 그리고/또는 정확한 예측 모델을 구현하는 소프트웨어를 생성하는 작업을 단순화할 수 있다.In many cases, the quadratic model generated by embodiments of this aspect is exactly the same as or more accurate than the corresponding first-order model, and the software implementing the second-order model is substantially more accurate than the software implementing the corresponding first-order model. Efficient. When embodiments of this aspect are used to generate a second-order model of a mixed first-order model, the second-order model is in many cases particularly accurate and in many cases the software implementing the second-order model is to implement the corresponding first-order model. More efficient than software (eg, using less computational resources). Second order models generated in accordance with some embodiments of this aspect may be beneficial in understanding complex first order models and/or may simplify the task of creating software implementing accurate predictive models.
일반적으로, 본 명세서에 설명되는 주제의 다른 혁신적인 양태는 예측 모델링 방법으로 구현될 수 있으며, 본 방법은, 맞춤화된 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차 예측 모델을 테스트하는 단계를 포함할 수 있다.In general, another innovative aspect of the subject matter described herein may be embodied in a predictive modeling method, the method comprising: obtaining a customized first-order predictive model, the first-order predictive model comprising one or more first input variables configured to predict values of one or more output variables of a prediction problem based on values of ; and performing a quadratic predictive modeling procedure on the customized first-order model, wherein the second-order modeling procedure is associated with a second-order predictive model, wherein the second-order prediction is performed on the customized first-order model. Performing the modeling procedure may include: generating secondary input data comprising a plurality of secondary observations, each secondary observation having respective observed values of one or more second input variables and a prediction of the output variables. and generating the secondary input data for each secondary observation comprising: obtaining respective observed values of the second input variables and corresponding observed values of the first input variables; and applying the first-order predictive model to the corresponding observed values of the input variables to generate respective predicted values of the output variables. generating training data and secondary testing data, customizing the secondary predictive model to the secondary training data, thereby generating a customized secondary predictive model of the customized primary model, and the secondary testing testing the customized secondary predictive model of the customized primary model against data.
이 양태의 다른 실시예는 대응 컴퓨터 시스템, 장치 및 각각 이 방법의 액션을 수행하도록 구성된, 하나 이상의 컴퓨터 저장 디바이스 상에 기록된 컴퓨터 프로그램을 포함한다. 하나 이상의 컴퓨터로 이루어진 시스템은 소프트웨어, 펌웨어, 하드웨어 또는 이들의 조합이 동작 중에 있는 시스템 상에 설치되어 시스템이 동작을 수행하게 함으로써 특정 동작을 수행하도록 구성될 수 있다. 하나 이상의 컴퓨터 프로그램은 데이터 프로세싱 장치에 의해 실행될 때 장치로 하여금 액션을 수행하게 하는 명령을 포함함으로써 특정 동작을 수행하도록 구성될 수 있다.Another embodiment of this aspect includes a corresponding computer system, apparatus, and computer program recorded on one or more computer storage devices, each configured to perform the action of the method. A system of one or more computers may be configured to perform a particular operation by installing software, firmware, hardware, or a combination thereof on the system in operation, causing the system to perform the operation. One or more computer programs may be configured to perform particular operations by including instructions that, when executed by the data processing apparatus, cause the apparatus to perform the actions.
전술한 및 다른 실시예는 각각 단독으로 또는 조합으로 이하의 하나 이상의 특징을 선택적으로 포함할 수 있다. 일부 실시예에서, 상기 맞춤화된 1차 모델을 얻는 단계는, 상기 1차 예측 모델과 연관된 1차 예측 모델 절차를 수행하는 단계를 포함하고, 상기 1차 예측 모델링 절차를 수행하는 단계는: 복수의 1차 관측치들을 포함하는 1차 입력 데이터를 얻는 단계로서, 각각의 1차 관측치는 상기 제1 입력 변수들의 각각의 관측된 값들 및 상기 출력 변수들의 대응하는 관측된 값들을 포함하는, 단계; 상기 1차 입력 데이터로부터, 1차 트레이닝 데이터 및 1차 테스팅 데이터를 생성하는 단계, 상기 1차 예측 모델을 상기 1차 트레이닝 데이터에 맞춤화하는 단계, 및 상기 맞춤화된 1차 예측 모델을 상기 테스팅 데이터에 대해 테스트하는 단계를 포함한다. 일부 실시예에서, 상기 맞춤화된 1차 모델을 얻는 단계는 2개의 맞춤화된 예측 모델들을 혼합하는 단계를 포함한다.The foregoing and other embodiments may each optionally include one or more of the following features, alone or in combination. In some embodiments, obtaining the customized first-order model includes performing a first-order predictive model procedure associated with the first-order predictive model, and performing the first-order predictive modeling procedure includes: a plurality of obtaining primary input data comprising primary observations, each primary observation including respective observed values of the first input variables and corresponding observed values of the output variables; from the primary input data, generating primary training data and primary testing data; fitting the primary prediction model to the primary training data; and applying the customized primary prediction model to the testing data. including testing for In some embodiments, obtaining the customized first-order model comprises mixing two customized predictive models.
일부 실시예에서, 상기 맞춤화된 1차 모델을 얻는 단계는: 상기 예측 문제의 특성들 및/또는 상기 각각의 1차 예측 모델링 절차들의 속성들에 적어도 부분적으로 기초하여, 상기 예측 문제에 대한 복수의 1차 예측 모델링 절차들의 적절성을 결정하는 단계; 상기 예측 문제에 대해 상기 선택된 모델링 절차들의 상기 결정된 적절성에 기초하여, 상기 복수의 1차 예측 모델링 절차들로부터 하나 이상의 예측 모델링 절차들을 선택하는 단계; 및 상기 하나 이상의 예측 모델링 절차들을 수행하는 단계를 포함한다. 일부 실시예에서, 상기 하나 이상의 예측 모델링 절차들을 수행하는 단계는: 명령어를 복수의 프로세싱 노드들로 송신하는 단계로서, 상기 명령어는 상기 선택된 모델링 절차들의 실행을 위해 상기 프로세싱 노드들의 자원들을 할당하는 자원 할당 스케줄을 포함하고, 상기 자원 할당 스케줄은 상기 예측 문제에 대해 상기 선택된 모델링 절차들의 적절성에 적어도 일부 기초하는, 상기 단계; 상기 자원 할당 스케줄에 따라, 상기복수의 프로세싱 노드들에 의해 상기 선택된 모델링 절차들의 실행의 결과들을 수신하는 단계로서, 상기 결과들은 상기 선택된 모델링 절차들에 의해 생성된 예측 모델들을 포함하는, 상기 단계; 및 상기 맞춤화된 1차 모델을 상기 생성된 모델들로부터 선택하는 단계를 포함한다.In some embodiments, obtaining the customized first-order model comprises: based at least in part on characteristics of the prediction problem and/or properties of the respective first-order predictive modeling procedures, a plurality of models for the prediction problem. determining the adequacy of the first-order predictive modeling procedures; selecting one or more predictive modeling procedures from the plurality of primary predictive modeling procedures based on the determined relevance of the selected modeling procedures for the predictive problem; and performing the one or more predictive modeling procedures. In some embodiments, performing the one or more predictive modeling procedures comprises: sending an instruction to a plurality of processing nodes, wherein the instruction is a resource that allocates resources of the processing nodes for execution of the selected modeling procedures. an allocation schedule, wherein the resource allocation schedule is based at least in part on suitability of the selected modeling procedures for the prediction problem; receiving, according to the resource allocation schedule, results of execution of the selected modeling procedures by the plurality of processing nodes, the results comprising predictive models generated by the selected modeling procedures; and selecting the customized first-order model from the generated models.
일부 실시예에서, 상기 2차 예측 모델은 RuleFit 모델 및 일반화된 가산 모델로 이루어지는 그룹으로부터 선택된다. 일부 실시예에서, 본 발명의 액션은, 상기 2차 모델의 상호 유효성 검증을 수행하는 단계를 더 포함하고, 상기 2차 입력 데이터는 적어도 하나의 데이터 세트를 포함하고, 상기 2차 트레이닝 데이터를 생성하는 단계는 상기 데이터 세트의 제1 서브세트를 얻는 단계를 포함하고, 상기 2차 테스팅 데이터를 생성하는 단계는 상기 데이터 세트의 제2 서브세트를 얻는 단계를 포함한다.In some embodiments, the quadratic predictive model is selected from the group consisting of a RuleFit model and a generalized additive model. In some embodiments, the action of the present invention further comprises performing mutual validation of the secondary model, wherein the secondary input data includes at least one data set, and generating the secondary training data. performing includes obtaining a first subset of the data set, and generating the secondary testing data includes obtaining a second subset of the data set.
일부 실시예에서, 상기 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차 테스팅 데이터에 대해 테스트하는 단계를 포함한다.In some embodiments, the secondary training data is first secondary training data, the secondary testing data is primary secondary testing data, the customized secondary model is a first customized secondary model, and The performing mutual validation of the secondary model includes: (a) generating second secondary training data and second secondary testing data from the secondary input data, wherein the second secondary training data is comprising a third subset of the data set, and wherein the second secondary testing data comprises a fourth subset of the data set; (b) fitting the secondary prediction model to the second secondary training data to obtain a second customized secondary prediction model; and (c) testing the second secondary predictive model against the second secondary testing data.
일부 실시예에서, 본 방법의 액션은, 적어도 제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 분할을 제외한 데이터 세트의 분할들 모두의 각각의 서브세트들을 포함한다.In some embodiments, the action of the method further comprises partitioning the data set into a plurality of partitions comprising at least a first partition and a second partition. In some embodiments, partitioning the data set into a plurality of partitions comprises randomly assigning each observation of the data set to each partition. In some embodiments, the first secondary training data comprises a first partition of the data set; the first secondary testing data includes all partitions of the data set except for the first partition; the second secondary training data comprises a second partition of the data set; and the second secondary testing data includes all partitions of the data set except for the second partition. In some embodiments, the first secondary training data comprises a subset of the first partition of the data set; the first secondary testing data includes respective subsets of all partitions of the data set except for the first partition; the second secondary training data comprises a subset of the second partition of the data set; and the second secondary testing data includes respective subsets of all of the partitions of the data set except the second partition.
일부 실시예에서, 상기 2차 입력 데이터는 제1 분할 및 제2 분할을 포함하고, 상기 데이터 세트는 상기 2차 입력 데이터의 제1 분할을 포함하고, 및 상기 방법의 액션은 상기 2차 입력 데이터의 제2 분할을 포함하는 홀드아웃 데이터에 대해 상기 제1 및 제2 맞춤화된 2차 모델들을 테스트하는 단계를 더 포함한다. 일부 실시예에서, 상기 홀드아웃 데이터에는 예측 모델이 맞춤화되지 않는다.In some embodiments, the secondary input data includes a first partition and a second partition, the data set includes a first partition of the secondary input data, and the action of the method comprises: and testing the first and second customized quadratic models against holdout data comprising a second partition of . In some embodiments, no predictive model is customized to the holdout data.
일부 실시예에서, 상기 2차 예측 모델링 절차를 수행하는 단계는, 상기 2차 예측 모델의 네스팅된 상호 유효성 검증을 수행하는 단계를 더 포함한다. 일부 실시예에서, 상기 2차 입력 데이터는 적어도 하나의 데이터 세트를 포함하고; 상기 2차 예측 모델의 네스팅된 상호 유효성 검증을 수행하는 단계는: 상기 데이터 세트의 적어도 제1 분할 및 상기 데이터 세트의 제2 분할을 포함하는 상기 데이터 세트의 제1 복수의 분할들로 상기 데이터 세트를 분할하는 단계, 및 적어도 상기 데이터 세트의 상기 제1 분할의 제1 분할 및 상기 데이터 세트의 상기 제1 분할의 제2 분할을 포함하는 상기 데이터 세트의 상기 제1 분할의 복수의 분할들로 상기 데이터 세트의 상기 제1 분할을 분할하는 단계를 포함한다. 일부 실시예에 따르면, 상기 2차 트레이닝 데이터는 상기 데이터 세트의 상기 제1 분할의 제1 분할을 포함하고; 및 상기 2차 테스팅 데이터는 상기 데이터 세트의 상기 제1 분할의 제1 분할을 제외한 상기 데이터 세트의 상기 제1 분할의 분할들을 모두 포함한다.In some embodiments, performing the secondary predictive modeling procedure further includes performing nested mutual validation of the secondary predictive model. In some embodiments, the secondary input data comprises at least one data set; The performing nested mutual validation of the quadratic predictive model comprises: the data into a first plurality of partitions of the data set comprising at least a first partition of the data set and a second partition of the data set. partitioning a set into a plurality of partitions of the first partition of the data set comprising at least a first partition of the first partition of the data set and a second partition of the first partition of the data set partitioning the first partition of the data set. According to some embodiments, the secondary training data comprises a first partition of the first partition of the data set; and the secondary testing data includes all partitions of the first partition of the data set except for the first partition of the first partition of the data set.
일부 실시예에서, 상기 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차 테스팅 데이터에 대해 테스트하는 단계를 더 포함한다.In some embodiments, the secondary training data is first secondary training data, the secondary testing data is primary secondary testing data, the customized secondary model is a first customized model, and the secondary Performing nested mutual validation of the predictive model comprises: (a) generating, from a first partition of the data set, second secondary training data and second secondary testing data, wherein the second the differential training data comprises a second partition of the first partition of the data set, and the second secondary testing data includes the first partition of the data set other than a second partition of the first partition of the data set comprising a plurality of partitions of ; (b) fitting the quadratic predictive model to the second quadratic training data to obtain a second quadratic customized predictive model; and (c) testing the second secondary customized model against the second secondary testing data.
일부 실시예에서, 상기 네스팅된 상호 유효성 검증을 수행하는 단계는: 상기 제1 맞춤화된 2차 모델 및 상기 제2 맞춤화된 2차 모델을 상기 데이터 세트의 제2 분할에 대해 테스트하는 단계; 및 상기 제1 맞춤화된 2차 모델 및 상기 제2 맞춤화된 2차 모델을 상기 데이터 세트의 제2 분할에 대해 테스트한 결과에 기초하여, 상기 제1 맞춤화된 2차 모델과 상기 제2 맞춤화된 2차 모델을 비교하는 단계를 더 포함한다.In some embodiments, performing the nested mutual validation comprises: testing the first customized quadratic model and the second customized quadratic model against a second partition of the data set; and based on a result of testing the first customized quadratic model and the second customized quadratic model on a second partition of the data set, the first customized quadratic model and the second customized quadratic model The method further includes comparing the car models.
일부 실시예에서, 본 방법의 액션은, 상기 맞춤화된 예측 모델들의 각각의 정확도 스코어를 결정하는 단계를 더 포함하고, 각각의 맞춤화된 모델의 상기 정확도 스코어는, 상기 맞춤화된 모델이 하나 이상의 예측 문제의 결과들을 예측하는 정확도를 나타낸다. 일부 실시예에서, 본 방법의 액션은, 상기 맞춤화된 1차 모델의 정확도 스코어와 상기 맞춤화된 2차 모델의 정확도 스코어 사이의 불일치를 결정하는 단계를 더 포함한다. 일부 실시예에서, 상기 맞춤화된 2차 모델의 정확도 스코어는 상기 맞춤화된 1차 모델의 정확도 스코어를 초과한다.In some embodiments, the actions of the method further comprise determining an accuracy score of each of the customized predictive models, wherein the accuracy score of each customized model is determined by determining that the customized model has one or more predictive problems. It represents the accuracy of predicting the results of In some embodiments, the actions of the method further comprise determining a discrepancy between an accuracy score of the customized first-order model and an accuracy score of the customized second-order model. In some embodiments, the accuracy score of the customized second-order model exceeds the accuracy score of the customized first-order model.
일부 실시예에서, 본 방법의 액션은, 하나 이상의 예측 문제들의 결과들을 예측하기 위해 상기 맞춤화된 예측 모델 각각에 의해 사용되는 연산 자원의 양을 결정하는 단계를 더 포함한다. 일부 실시예에 따르면, 본 방법의 액션은, 상기 맞춤화된 1차 모델에 의해 사용되는 연산 자원의 양과 상기 맞춤화된 2차 모델에 의해 사용되는 연산 자원의 양 사이의 불일치를 결정하는 단계를 더 포함한다. 일부 실시예에서, 상기 맞춤화된 2차 모델에 의해 사용된 연산 자원의 양은 상기 맞춤화된 1차 모델에 의해 사용되는 연산 자원의 양보다 작다.In some embodiments, the actions of the method further comprise determining an amount of computational resource used by each of the customized predictive models to predict outcomes of one or more predictive problems. According to some embodiments, the action of the method further comprises determining a discrepancy between the amount of computational resources used by the customized first-order model and the amount of computational resources used by the customized second-order model. do. In some embodiments, the amount of computational resources used by the customized second-order model is less than the amount of computational resources used by the customized first-order model.
일부 실시예에서, 본 방법의 액션은 상기 맞춤화된 2차 모델을 배치하는 단계를 더 포함한다. 일부 실시예에서, 상기 맞춤화된 2차 모델을 배치하는 단계는, 상기 예측 문제의 인스턴스들을 나타내는 다른 데이터에 상기 맞춤화된 2차 모델을 적용함으로써 복수의 예측들을 생성하는 단계를 포함하고, 상기 2차 입력 데이터는 다른 데이터를 포함하지 않는다. 일부 실시예에서, 상기 맞춤화된 2차 모델은 하나 이상의 조건부 규칙들의 세트를 포함하고, 상기 하나 이상의 조건부 규칙들의 세트는 하나 이상의 머신-실행 가능 if-then 구문들의 세트를 포함한다.In some embodiments, the action of the method further comprises deploying the customized quadratic model. In some embodiments, placing the customized quadratic model comprises generating a plurality of predictions by applying the customized quadratic model to other data representative of instances of the prediction problem, wherein the quadratic The input data does not include other data. In some embodiments, the customized quadratic model comprises a set of one or more conditional rules, wherein the set of one or more conditional rules comprises a set of one or more machine-executable if-then statements.
일부 실시예에서, 상기 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차 테스팅 데이터 상에서 테스트하는 단계를 포함한다.In some embodiments, the secondary input data is first secondary input data, and wherein disposing the customized secondary model refreshes the customized secondary model based at least in part on the second secondary input data. further comprising the step of In some embodiments, the customized quadratic model is a first customized quadratic model, and refreshing the customized quadratic model based at least in part on the second secondary input data comprises: generating, from the differential input data, second secondary training data and second secondary testing data; generating a second customized secondary model of the customized primary model by customizing the secondary predictive model to the second secondary training data; testing the second customized secondary model of the primary model against the second secondary testing data; and mixing the first customized quadratic model and the second customized quadratic model to generate a refreshed quadratic predictive model. In some embodiments, the customized quadratic model is a first customized quadratic model, and refreshing the customized quadratic model based at least in part on the second quadratic input data comprises: the first 2 generating third secondary input data including at least a portion of the difference input data and at least a portion of the second secondary input data; generating third secondary training data and third secondary testing data from the third secondary input data; generating a second customized secondary model of the customized primary model by customizing the secondary predictive model to the third secondary training data; and testing the second customized secondary model of the primary model on the third secondary testing data.
일부 실시예에서, 상기 제1 입력 변수들은 상기 제2 입력 변수들이다. 일부 실시예에서, 상기 제1 입력 변수들 및 상기 제2 입력 변수들 모두 특정 입력 변수를 포함한다. 일부 실시예에서, 상기 제1 입력 변수들 중 어느 것도 상기 제2 입력 변수들에 포함되지 않는다.In some embodiments, the first input variables are the second input variables. In some embodiments, both the first input variables and the second input variables include a particular input variable. In some embodiments, none of the first input variables are included in the second input variables.
일부 실시예에서, 상기 2차 모델링 절차는 복수의 2차 모델링 절차들 중 하나이고, 상기 2차 예측 모델은 복수의 제2 예측 모델 중 하나이고, 상기 방법이 액션은, 상기 복수의 2차 모델링 절차들을 상기 맞춤화된 1차 모델에 대해 수행함으로써, 상기 맞춤화된 1차 모델의 복수의 맞춤화된 2차 모델들을 생성한다. 일부 실시예에서, 본 방법의 액션은, 상기 맞춤화된 2차 예측 모델들의 각각의 정확도 스코어를 결정하는 단계를 더 포함하고, 각각의 맞춤화된 2차 모델의 정확도 스코어는, 상기 맞춤화된 2차 모델이 하나 이상의 예측 문제의 결과들을 예측하는 정확도를 나타낸다. 일부 실시예에서, 본 방법의 액션은, 어떤 정확도 스코어가 가장 높은지를 결정하는 단계; 및 가장 높은 정확도 스코어를 갖는 상기 맞춤화된 2차 모델을 배치하는 단계를 더 포함한다.In some embodiments, the secondary modeling procedure is one of a plurality of secondary modeling procedures, the secondary prediction model is one of a plurality of second prediction models, and the method comprises: By performing procedures on the customized first-order model, a plurality of customized second-order models of the customized first-order model are generated. In some embodiments, the action of the method further comprises determining an accuracy score of each of the customized quadratic predictive models, wherein the accuracy score of each customized quadratic model is: It represents the accuracy of predicting the outcomes of one or more prediction problems. In some embodiments, the actions of the method include determining which accuracy score has the highest; and placing the customized quadratic model with the highest accuracy score.
본 양태의 다른 실시예는 예측 모델링 장치를 포함하고, 본 장치는, 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차 예측 모델을 테스트하는 단계를 포함한다.Another embodiment of this aspect includes a predictive modeling apparatus, the apparatus comprising: a memory configured to store a machine-executable module encoding a second-order predictive modeling procedure associated with a second-order predictive model, the second-order predictive modeling the memory comprising a plurality of tasks including at least one pre-processing task and at least one model-fitting task; and at least one processor configured to execute the machine-executable module, wherein the execution of the machine-executable module causes the apparatus to perform the second-order predictive modeling procedure on the customized first-order predictive model. do. Performing the secondary predictive modeling procedure includes performing the pre-processing operation comprising obtaining a customized primary predictive model, wherein the primary predictive model is based on values of one or more first input variables. and predict values of one or more output variables of the prediction problem. Performing the secondary predictive modeling procedure includes: performing the model-fitting operation, the performing comprising: generating secondary data comprising a plurality of secondary observations, each secondary observation comprising: includes respective observed values of one or more second input variables and predicted values of the output variables, wherein generating the secondary input data for each secondary observation comprises: each of the second input variables obtaining observed values of and corresponding observed values of the first input variables, and applying the first-order predictive model to the corresponding observed values of the input variables to generate respective predicted values of the output variables. The customized primary model by: generating secondary training data and secondary testing data from the secondary input data; fitting the secondary predictive model to the secondary training data; generating a customized secondary predictive model of , and testing the customized, secondary predictive model of the customized primary model against the secondary testing data.
본 발명의 다른 양태 및 이점은 하기의 도면, 상세한 설명 및 청구 범위로부터 명백해질 것이며, 이들 모두는 단지 예시로서 본 발명의 원리를 예시한다.Other aspects and advantages of the present invention will become apparent from the following drawings, detailed description and claims, all of which illustrate the principles of the invention by way of example only.
몇몇 실시예의 설명, 그 동기, 및/또는 그 이점을 포함하는 상기 개요는 독자가 본 발명을 이해하는 것을 돕기 위한 것이며 어떠한 방법으로도 청구 범위의 범위를 제한하지 않는다.The above summary, including a description of several embodiments, their motivations, and/or their advantages, is intended to aid the reader in understanding the present invention and does not limit the scope of the claims in any way.
일부 실시예의 특정 이점은 첨부 도면과 관련하여 취해지는 후술하는 설명을 참조함으로써 이해될 수 있다. 도면에서, 동일한 참조 부호는 일반적으로 상이한 도면 전반에 걸쳐 동일한 부분을 나타낸다. 또한, 도면은 반드시 스케일대로일 필요는 없으며, 대신에 일반적으로 본 발명의 몇몇 실시예들의 원리를 나타내는 데 중점을 둔다.
도 1은 일부 실시예에 따른 예측 모델링 시스템의 블록도이다.
도 2는 일부 실시예에 따른 예측 모델링 작업, 기술 및 방법을 인코딩하는 머신-실행 가능 템플릿을 구축하기 위한 모델링 도구의 블록도이다.
도 3은 일부 실시예에 따른 예측 문제에 대한 예측 모델을 선택하기 위한 방법의 흐름도이다.
도 4는 일부 실시예에 따른 예측 문제에 대한 예측 모델을 선택하기 위한 방법의 다른 흐름도를 나타낸다.
도 5는 일부 실시예에 따른 예측 모델링 시스템의 개략도이다.
도 6은 일부 실시예에 따른 예측 모델링 시스템의 다른 블록도이다.
도 7은 일부 실시예에 따른 예측 모델링 시스템의 컴포넌트 간의 통신을 나타낸다.
도 8은 일부 실시예에 따른 예측 모델링 시스템의 다른 개략도이다.
도 9는 일부 실시예에 따른 시계열 예측 모델링을 위한 방법의 흐름도이다.
도 10은 일부 실시예에 따른 피처의 예측값을 결정하기 위한 방법의 흐름도이다.
도 11a는 일부 실시예에 따른 2차 예측 모델을 생성하기 위한 방법의 흐름도이다.
도 11b는 일부 실시예에 따른 2차 예측 모델링 절차를 수행하기 위한 방법의 흐름도이다.Certain advantages of some embodiments may be understood by reference to the following description taken in conjunction with the accompanying drawings. In the drawings, like reference numbers generally refer to like parts throughout different drawings. Further, the drawings are not necessarily to scale, emphasis instead generally being placed on illustrating the principles of some embodiments of the invention.
1 is a block diagram of a predictive modeling system in accordance with some embodiments.
2 is a block diagram of a modeling tool for building machine-executable templates encoding predictive modeling tasks, techniques, and methods in accordance with some embodiments.
3 is a flowchart of a method for selecting a predictive model for a predictive problem in accordance with some embodiments.
4 shows another flowchart of a method for selecting a predictive model for a predictive problem in accordance with some embodiments.
5 is a schematic diagram of a predictive modeling system in accordance with some embodiments.
6 is another block diagram of a predictive modeling system according to some embodiments.
7 illustrates communication between components of a predictive modeling system in accordance with some embodiments.
8 is another schematic diagram of a predictive modeling system in accordance with some embodiments.
9 is a flowchart of a method for time-series predictive modeling in accordance with some embodiments.
10 is a flow diagram of a method for determining a predicted value of a feature in accordance with some embodiments.
11A is a flowchart of a method for generating a quadratic predictive model in accordance with some embodiments.
11B is a flowchart of a method for performing a secondary predictive modeling procedure in accordance with some embodiments.
예측 모델링 시스템의 개요Overview of Predictive Modeling Systems
도 1을 참조하면, 일부 실시예에서, 예측 모델링 시스템(100)은 예측 모델링 탐색 엔진(110), 사용자 인터페이스(120), 예측 모델링 기술의 라이브러리(130) 및 예측 모델 배치 엔진(140)을 포함한다. 탐색 엔진은 특정 예측 문제에 적절한 예측 모델링 해결책을 생성하기 위해 예측 모델링 검색 공간을 효율적으로 탐색(예를 들어, 사전-프로세싱 단계, 모델링 알고리즘 및 사후-프로세싱 단계의 잠재적 조합)하기 위한 검색 기술(또는 "모델링 방법")을 구현할 수 있다. 검색 기술은, 어떠한 예측 모델링 기술이 예측 문제에 대한 적절한 해결책을 제공할 가능성이 있는지에 대한 초기 평가를 포함할 수 있다. 일부 실시예에서, 검색 기술은 (예를 들어, 데이터 세트의 증가하는 부분을 사용하는) 검색 공간의 증분 평가 및 (예를 들어, 일관적인 메트릭을 사용하는) 예측 문제에 대한 상이한 모델링 해결책의 적절성의 일관적인 비교를 포함한다. 일부 실시예에서, 검색 기술은 이전 검색의 결과에 기초해 적응하여 시간의 경과에 따라 검색 기술의 효과성을 향상시킬 수 있다.1 , in some embodiments, the
탐색 엔진(110)은 검색 공간에서 잠재적인 모델링 해결책을 평가하기 위해 모델링 기술의 라이브러리(130)를 사용할 수 있다. 일부 실시예에서, 모델링 기술 라이브러리(130)는 완전한 모델링 기술을 인코딩하는 머신-실행 가능 템플릿을 포함한다. 머신-실행 가능 템플릿은 하나 이상의 예측 모델링 알고리즘을 포함할 수 있다. 일부 실시예에서, 템플릿에 포함된 모델링 알고리즘은 몇몇 방식으로 관련될 수 있다. 예를 들어, 모델링 알고리즘은 동일한 모델링 알고리즘의 변형 또는 모델링 알고리즘의 패밀리 멤버일 수 있다. 일부 실시예에서, 머신-실행 가능 템플릿은 템플릿의 알고리즘(들)과 함께 사용하기에 적절한 하나 이상의 사전-프로세싱 및/또는 사후-프로세싱 단계를 추가로 포함한다. 알고리즘(들), 사전-프로세싱 단계 및/또는 사후-프로세싱 단계는 파라미터화될 수 있다. 머신-실행 가능 템플릿은 데이터 세트에 의해 나타내어지는 예측 문제에 대한 잠재적인 예측 모델링 해결책을 생성하기 위해 사용자 데이터 세트에 적용될 수 있다.The
탐색 엔진(110)은 검색 공간 또는 그 일부를 탐색하기 위해 분산 컴퓨팅 시스템의 연산 자원을 사용할 수 있다. 일부 실시예에서, 탐색 엔진(110)은 분산 컴퓨팅 시스템의 자원을 사용하여 검색을 효율적으로 수행하기 위한 검색 계획을 생성하고, 분산 컴퓨팅 시스템은 검색 계획에 따라 검색을 실행한다. 분산 컴퓨팅 시스템은 예측 모델링 기술의 큐잉(queuing) 및 모니터링, 컴퓨팅 시스템 자원의 가상화, 데이터베이스에의 액세스, 검색 계획의 분할 및 모델링 기술의 평가에 대한 컴퓨팅 시스템의 자원의 할당, 실행 결과의 수집 및 조직화, 사용자 입력의 수용 등을 위한 인터페이스에 한정되지는 않지만 이를 포함하는 검색 계획에 따른 예측 모델링 해결책의 평가를 용이하게 하는 인터페이스를 제공할 수 있다.The
사용자 인터페이스(120)는 예측 모델링 공간의 검색을 모니터링 및/또는 가이드하기 위한 도구를 제공한다. 이러한 도구는 (예를 들어, 데이터 세트의 문제가 있는 변수를 강조 표시하고, 데이터 세트의 변수 간 관계를 식별하는 등에 의해) 예측 문제의 데이터 세트에 대한 통찰력 및/또는 검색 결과에 대한 통찰력을 제공할 수 있다. 일부 실시예에서, 데이터 분석자는 예를 들어 모델링 해결책을 평가하고 비교하는 데 사용되는 메트릭을 특정하고, 적절한 모델링 해결책을 인식하기 위한 기준을 특정하는 것 등에 의해 검색을 가이드하기 위해 인터페이스를 사용할 수 있다. 따라서, 사용자 인터페이스는 그 자신의 생산성을 향상시키고 및/또는 탐색 엔진(110)의 성능을 향상시키기 위해 분석자에 의해 사용될 수 있다. 일부 실시예에서, 사용자 인터페이스(120)는 검색의 결과를 실시간으로 제시하고, 사용자가 실시간으로 검색을 가이드할 수 있게(예를 들어, 검색의 범위 또는 상이한 모델링 해결책의 평가 중 자원의 할당을 조정할 수 있게) 한다. 일부 실시예에서, 사용자 인터페이스(120)는 동일한 예측 문제 및/또는 관련된 예측 문제에 대해 작업하는 복수의 데이터 분석자의 노력을 조정하기 위한 도구를 제공한다.The
일부 실시예에서, 사용자 인터페이스(120)는 모델링 기술의 라이브러리(130)에 대한 머신-실행 가능 템플릿을 개발하기 위한 도구를 제공한다. 시스템 사용자는 기존 템플릿을 수정하거나, 새로운 템플릿을 생성하거나, 라이브러리(130)로부터 템플릿을 제거하기 위해 이러한 도구를 사용할 수 있다. 이러한 방식으로, 시스템 사용자는 예측 모델링 연구의 진보를 반영하고 및/또는 독점적 예측 모델링 기술을 포함하도록 라이브러리(130)를 갱신할 수 있다.In some embodiments,
모델 배치(deployment) 엔진(140)은 동작 환경에서의 예측 모델(예를 들어, 탐색 엔진(110)에 의해 생성된 예측 모델)을 배치하기 위한 도구를 제공한다. 일부 실시예에서, 모델 배치 엔진은 또한 예측 모델을 모니터링 및/또는 갱신하기 위한 도구를 제공한다. 시스템 사용자는 탐색 엔진(110)에 의해 생성된 예측 모델을 배치하고, 그러한 예측 모델의 성능을 모니터링하고, (예를 들어, 새로운 데이터 또는 예측 모델링 기술에서의 진보에 기초하여) 그러한 모델을 갱신하기 위해 배치 엔진(140)을 사용할 수 있다. 일부 실시예에서, 탐색 엔진(110)은 예측 문제에 대한 검색 공간의 탐색을 가이드하기 위해(예를 들어, 예측 문제에 대한 기본 데이터 세트의 변화에 대한 응답으로 예측 모델을 다시 맞추거나 튜닝하기 위해) (예를 들어, 배치된 예측 모델의 성능을 모니터링한 결과에 기초하여) 배치 엔진(140)에 의해 수집 및/또는 생성된 데이터를 사용할 수 있다.The model deployment engine 140 provides tools for deploying a predictive model (eg, a predictive model generated by the search engine 110 ) in an operating environment. In some embodiments, the model deployment engine also provides tools for monitoring and/or updating predictive models. System users deploy predictive models generated by
예측 모델링 시스템(100)의 이러한 양태 및 다른 양태가 이하에서 더욱 상세하게 설명된다.These and other aspects of the
모델링 기술의 라이브러리A library of modeling techniques
예측 모델링 기술의 라이브러리(130)는 완전한 예측 모델링 기술을 인코딩하는 머신-실행 가능 템플릿을 포함한다. 일부 실시예에서, 머신-실행 가능 템플릿은 하나 이상의 예측 모델링 알고리즘, 알고리즘(들)과 함께 사용하기에 적절한 제로(zero) 이상의 사전-프로세싱 단계, 및 알고리즘(들)과 함께 사용하기에 적절한 제로 이상의 사후-프로세싱 단계를 포함한다. 알고리즘(들), 사전-프로세싱 단계 및/또는 사후-프로세싱 단계는 파라미터화될 수 있다. 머신-실행 가능 템플릿은 데이터 세트에 의해 나타내어지는 예측 문제에 대한 잠재적인 예측 모델링 해결책을 생성하기 위해 데이터 세트에 적용될 수 있다.The library of
템플릿은 머신 실행을 위해, 템플릿의 예측 모델링 알고리즘(들)과 함께 사용하기에 적절한 사전-프로세싱 단계, 모델-맞춤(fitting) 단계 및/또는 사후-프로세싱 단계를 인코딩할 수 있다. 사전-프로세싱 단계의 예는 누락값 입력, 피처 엔지니어링(예를 들어, 원-핫(one-hot) 인코딩, 스플라인, 텍스트 마이닝 등), 피처 선택(예를 들어, 정보가 없는 피처 탈락, 관련성이 높은 피처 탈락, 원래 피처를 톱(top) 주요 컴포넌트로 대체 등)을 포함하지만, 이에 한정되지 않는다. 모델-맞춤 단계의 예는 알고리즘 선택, 파라미터 추정, 하이퍼-파라미터 튜닝, 스코어링, 진단 등을 포함하지만 이에 한정되지 않는다. 사후-프로세싱 단계의 예는 예측의 교정, 검열, 혼합(blending) 등을 포함하지만, 이에 한정되지 않는다.The template may encode pre-processing steps, model-fitting steps and/or post-processing steps suitable for use with the template's predictive modeling algorithm(s) for machine execution. Examples of pre-processing steps include missing-value input, feature engineering (e.g., one-hot encoding, splines, text mining, etc.), feature selection (e.g., missing features without information, unrelated high feature dropouts, replacement of original features with top major components, etc.). Examples of model-fitting steps include, but are not limited to, algorithm selection, parameter estimation, hyper-parameter tuning, scoring, diagnosis, and the like. Examples of post-processing steps include, but are not limited to, proofreading, censoring, blending, and the like.
일부 실시예에서, 머신-실행 가능 템플릿은 템플릿에 의해 인코딩되는 예측 모델링 기술의 속성을 설명하는 메타데이터를 포함한다. 메타데이터는, 템플릿이 (예를 들어, 사전-프로세싱 단계, 사후-프로세싱 단계 또는 예측 모델링 알고리즘의 단계에서) 예측 모델링 해결책의 일부로서 수행할 수 있는 하나 이상의 데이터 프로세싱 기술을 나타낼 수 있다. 이러한 데이터 프로세싱 기술은 텍스트 마이닝, 피처 정규화, 치수 감소 또는 다른 적절한 데이터 프로세싱 기술을 포함할 수 있지만 이에 한정되지 않는다. 대안적으로 또는 부가적으로, 메타데이터는 데이터 세트의 차원성에 대한 제약, 예측 문제의 타겟(들)의 특성, 및/또는 예측 문제의 피처(들)의 특성에 한정되지 않지만 이를 포함하는 템플릿에 의해 인코딩되는 예측 모델링 기술에 의해 부과되는 하나 이상의 데이터 프로세싱 제약을 나타낼 수 있다.In some embodiments, the machine-executable template includes metadata that describes properties of the predictive modeling technique encoded by the template. The metadata may represent one or more data processing techniques that the template may perform as part of a predictive modeling solution (eg, in a pre-processing step, post-processing step, or step of a predictive modeling algorithm). Such data processing techniques may include, but are not limited to, text mining, feature normalization, dimension reduction, or other suitable data processing techniques. Alternatively or additionally, the metadata may be contained in a template including, but not limited to, constraints on the dimensionality of the data set, characteristics of the target(s) of the prediction problem, and/or characteristics of the feature(s) of the prediction problem. may indicate one or more data processing constraints imposed by a predictive modeling technique encoded by
일부 실시예에서, 템플릿의 메타데이터는, 대응하는 모델링 기술이 주어진 데이터 세트에 대해 얼마나 효과적인지를 추정하는 것과 관련된 정보를 포함한다. 예를 들어, 템플릿의 메타데이터는 넓은 데이터 세트, 키가 큰 데이터 세트, 희소(sparse) 데이터 세트, 밀집(dense) 데이터 세트, 텍스트를 포함하거나 포함하지 않는 데이터 세트, 다양한 데이터 유형(예를 들어, 숫자, 서수, 카테고리, 인터프리팅(예를 들어, 날짜, 시간, 텍스트) 등)의 변수를 포함하는 데이터 세트, 다양한 통계적 특성(예를 들어, 변수의 누락값, 기수(cardinality), 분산 등과 관련된 통계적 특성)을 갖는 변수를 포함하는 데이터 세트 등에 한정되지 않지만 이를 포함하는 특정의 특징을 갖는 데이터 세트에 대해 대응하는 모델링 기술이 얼마나 잘 수행할 것으로 예측되는지를 나타낼 수 있다. 다른 예에서, 템플릿의 메타데이터는, 하나 이상의 성능 메트릭(예를 들어, 목적 함수)의 관점에서 대응하는 모델링 기술의 예측되는 성능을 나타낸다.In some embodiments, the metadata of the template includes information related to estimating how effective the corresponding modeling technique is for a given data set. For example, the metadata of a template can be large data sets, tall data sets, sparse data sets, dense data sets, data sets with or without text, and different data types (e.g. , data sets containing variables of numbers, ordinal numbers, categories, interpreting (e.g., date, time, text), etc.), various statistical characteristics (e.g., missing values of variables, cardinality, variance) It may indicate how well a corresponding modeling technique is predicted to perform on a data set having a particular characteristic including, but not limited to, a data set including a variable having a statistical characteristic associated with the same. In another example, the metadata of the template represents predicted performance of the corresponding modeling technique in terms of one or more performance metrics (eg, objective functions).
일부 실시예에서, 템플릿의 메타데이터는 프로세싱 단계의 허용된 데이터 유형(들), 구조 및/또는 차원에 한정되지 않지만 이를 포함하는 대응하는 모델링 기술에 의해 구현되는 프로세싱 단계의 특성화를 포함한다.In some embodiments, the metadata of the template includes a characterization of the processing step implemented by a corresponding modeling technique including but not limited to allowed data type(s), structure and/or dimensions of the processing step.
일부 실시예에서, 템플릿의 메타데이터는 하나 이상의 예측 문제 및/또는 데이터 세트에 템플릿에 의해 나타내어지는 예측 모델링 기술을 적용한 결과(실제 또는 예상)를 나타내는 데이터를 포함한다. 예측 모델링 기술을 예측 문제 또는 데이터 세트에 적용한 결과는, 예측 모델링 기술에 의해 생성된 예측 모델이 예측 문제 또는 데이터 세트의 타겟(들)을 예측하는 정확도, 예측 문제 또는 데이터 세트에 대한 (다른 예측 모델링 기술과 관련된) 예측 모델링 기술에 의해 생성된 예측 모델의 정확도의 등급, 예측 문제 또는 데이터 세트에 대한 예측 모델을 생성하기 위해 예측 모델링 기술을 사용하는 유틸리티를 나타내는 스코어(예를 들어, 목적 함수에 대한 예측 모델에 의해 생성된 값) 등을 포함할 수 있지만, 이에 한정되지 않는다.In some embodiments, the metadata of the template includes data representing the results (actual or expected) of applying the predictive modeling techniques represented by the template to one or more predictive problems and/or data sets. The result of applying a predictive modeling technique to a predictive problem or data set is the accuracy with which the predictive model generated by the predictive modeling technique predicts the target(s) of the predictive problem or data set, for the predictive problem or data set (other predictive modeling A score indicating the degree of accuracy of the predictive model generated by the predictive modeling technique (related to the technique), the utility of using the predictive modeling technique to generate a predictive model for a predictive problem or data set (e.g., for an objective function). values generated by the predictive model), and the like.
예측 모델링 기술을 예측 문제 또는 데이터 세트에 적용한 결과를 나타내는 데이터는 (예를 들어, 예측 문제 또는 데이터 세트에 대한 예측 모델링 기술을 사용하려는 이전 시도의 결과에 기초하여) 탐색 엔진(110)에 의해 제공되고, (예를 들어, 사용자의 전문 기술에 기초하여) 사용자에 의해 제공되고, 및/또는 임의의 다른 적절한 소스로부터 얻어질 수 있다. 일부 실시예에서, 탐색 엔진(110)은 예측 문제의 인스턴스의 실제 결과와 예측 모델링 기술을 통해 생성된 예측 모델에 의해 예측된 결과 사이의 관계에 적어도 부분적으로 기초하여 이러한 데이터를 갱신한다.Data representing the results of applying the predictive modeling technique to the predictive problem or data set is provided by the search engine 110 (eg, based on the results of previous attempts to use the predictive modeling technique to the predictive problem or data set). provided by the user (eg, based on the user's expertise), and/or may be obtained from any other suitable source. In some embodiments, the
일부 실시예에서, 템플릿의 메타데이터는, 모델링 기술이 분산 컴퓨팅 인프라스트럭처 상에서 얼마나 효율적으로 실행될 것인지를 추정하는 것과 관련된 대응하는 모델링 기술의 특성을 기술한다. 예를 들어, 템플릿의 메타데이터는 주어진 크기의 데이터 세트에 대해 모델링 기술을 트레이닝 및/또는 테스트하는 데 필요한 프로세싱 자원, 상호 유효성 검증 폴드의 수의 자원 소비에 대한 영향 및 하이퍼-파라미터 공간에서 검색된 포인트의 수, 모델링 기술에 의해 수행되는 프로세싱 단계의 본질적인 병렬화 등을 나타낼 수 있다.In some embodiments, the metadata of the template describes characteristics of the corresponding modeling technique related to estimating how efficiently the modeling technique will execute on a distributed computing infrastructure. For example, the template's metadata may include the processing resources needed to train and/or test modeling techniques on a data set of a given size, the impact on resource consumption of the number of mutual validation folds, and the points retrieved in the hyper-parameter space. , the intrinsic parallelism of processing steps performed by the modeling technique, etc.
일부 실시예에서, 모델링 기술의 라이브러리(130)는 예측 모델링 기술 간의 유사성(또는 차이)을 평가하기 위한 도구를 포함한다. 이러한 도구는 2개의 예측 모델링 기술 사이의 유사성을 (예를 들어, 미리 정해진 스케일 상의) 스코어, 분류(예를 들어, "매우 유사", "다소 유사", "다소 비유사", "매우 비유사"), 바이너리 결정(예를 들어, "유사" 또는 "비유사") 등으로 표현할 수 있다. 이러한 도구는 2개의 예측 모델링 기술을 동일하거나 유사한 예측 문제에 적용한 결과를 나타내는 데이터 등에 기초하여, 모델링 기술에 공통적인 프로세싱 단계에 기초하여 2개의 예측 모델링 기술 간의 유사성을 결정할 수 있다. 예를 들어, 유사한 예측 문제에 적용될 때, 다수의 (또는 높은 퍼센티지의) 그 프로세싱 단계를 공통으로 갖고 및/또는 유사한 결과를 산출하는 주어진 2개의 예측 모델링 기술에 있어서, 도구는 모델링 기술에 높은 유사성 스코어를 할당하거나 모델링 기술을 "매우 유사"로 분류할 수 있다.In some embodiments, the
일부 실시예에서, 모델링 기술은 모델링 기술의 패밀리에 할당될 수 있다. 모델링 기술의 패밀리 분류는 (예를 들어, 직관과 경험에 기초하여) 사용자에 의해 할당될 수 있으며, (예를 들어, 모델링 기술에 공통적인 프로세싱 단계, 상이한 모델링 기술을 동일하거나 유사한 문제에 적용한 결과를 나타내는 데이터 등에 기초하여) 머신-학습 분류기에 의해 할당될 수 있거나, 다른 적절한 소스로부터 얻어질 수 있다. 예측 모델링 기술 간의 유사성을 평가하기 위한 도구는 2개의 모델링 기술 간의 유사성을 평가하기 위해 패밀리 분류에 의존할 수 있다. 일부 실시예에서, 도구는 동일한 패밀리의 모든 모델링 기술을 "유사"로 취급하고, 상이한 패밀리의 임의의 모델링 기술을 "비유사"로 취급할 수 있다. 일부 실시예에서, 모델링 기술의 패밀리 분류는 모델링 기술 간의 유사성의 도구 평가에서 단지 하나의 요인일 수 있다.In some embodiments, modeling techniques may be assigned to families of modeling techniques. A family classification of modeling techniques can be assigned by the user (eg, based on intuition and experience), and (eg, processing steps common to modeling techniques, as a result of applying different modeling techniques to the same or similar problem) may be assigned by a machine-learning classifier, etc.), or may be obtained from other suitable sources. A tool for evaluating the similarity between predictive modeling techniques may rely on family classification to evaluate the similarity between two modeling techniques. In some embodiments, the tool may treat all modeling techniques in the same family as “similar” and any modeling techniques in different families as “dissimilar”. In some embodiments, the classification of a family of modeling techniques may be only one factor in the instrumental assessment of similarities between modeling techniques.
일부 실시예에서, 예측 모델링 시스템(100)은 예측 문제의 라이브러리(도 1에 미도시)를 포함한다. 예측 문제의 라이브러리는 예측 문제의 특성을 나타내는 데이터를 포함할 수 있다. 일부 실시예에서, 예측 문제의 특성을 나타내는 데이터는 예측 문제를 나타내는 데이터 세트의 특성을 나타내는 데이터를 포함한다. 데이터 세트의 특성은 데이터 세트의 폭, 높이, 희소성 또는 밀도; 데이터 세트의 타겟 및/또는 피처의 수, 데이터 세트 변수의 데이터 유형(예를 들어, 숫자, 서수, 카테고리 또는 인터프리팅(예를 들어, 날짜, 시간, 텍스트 등); 데이터 세트의 숫자 변수의 범위; 데이터 세트의 서수 및 카테고리 변수에 대한 클래스의 수; 등을 포함할 수 있지만 이에 한정되지 않는다.In some embodiments,
일부 실시예에서, 데이터 세트의 특성은 전체 관측치의 수; 관측치에 걸친 각각의 변수에 대한 고유값의 수; 관측치에 걸친 각각의 변수의 누락값의 수; 아웃라이어(outlier) 및 인라이어(inlier)의 존재 및 범위; 각각의 변수의 값 또는 클래스 멤버십의 분산의 속성; 변수의 기수성; 등에 한정되지 않지만 이를 포함하는 데이터 세트의 변수의 통계적 속성을 포함한다. 일부 실시예에서, 데이터 세트의 특성은 변수의 그룹의 공동 분산; 하나 이상의 타겟에 대한 하나 이상의 피처의 가변적인 중요도(예를 들어, 피처 및 타겟 변수 간의 상관도); 2개 이상의 피처 간의 통계적 관계(예를 들어, 2개의 피처 간의 다중공선성(multicollinearity) 정도); 등에 한정되지 않지만 이를 포함하는 데이터 세트의 변수 간의 관계(예를 들어, 통계적 관계)를 포함한다.In some embodiments, a characteristic of a data set is the total number of observations; the number of eigenvalues for each variable across the observations; the number of missing values for each variable across the observations; the presence and extent of outliers and inliers; an attribute of the variance of the value of each variable or class membership; cardinality of variables; including, but not limited to, statistical properties of variables in data sets including them. In some embodiments, a characteristic of a data set is a joint variance of a group of variables; variable importance of one or more features to one or more targets (eg, correlations between features and target variables); a statistical relationship between two or more features (eg, the degree of multicollinearity between the two features); including, but not limited to, relationships (eg, statistical relationships) between variables in a data set comprising the same.
일부 실시예에서, 예측 문제의 특성을 나타내는 데이터는 예측 문제의 주제를 나타내는 데이터(예를 들어, 금융, 보험, 방위, 전자-상거래, 소매, 인터넷-기반 광고, 인터넷-기반 추천 엔진 등); 변수의 유래(예를 들어, 각각의 변수가 자동화 기구로부터, 자동화 계구의 인간의 기록으로부터, 인간의 측정으로부터, 기재된 인간의 응답으로부터, 구두의 인간의 반응 등으로부터 직접 획득되었는지 여부); 예측 문제에 대해 알려진 예측 모델링 해결책의 존재와 성능; 등을 포함한다.In some embodiments, data representative of the nature of the prediction problem may include data representative of the subject of the prediction problem (eg, finance, insurance, defense, e-commerce, retail, internet-based advertising, internet-based recommendation engine, etc.); origin of the variable (eg, whether each variable was obtained directly from an automated instrument, from a human record of an automated instrument, from a human measurement, from a recorded human response, an oral human response, etc.); the existence and performance of known predictive modeling solutions to predictive problems; etc.
일부 실시예에서, 예측 모델링 시스템(100)은 시계열 예측 문제(예를 들어, 일차원 또는 다차원 시계열 예측 문제)를 지원할 수 있다. 시계열 예측 문제의 경우, 목적은 일반적으로 타겟 자체를 포함하여 모든 피처의 이전 관측치 값의 함수로서 타겟의 장래값을 예측하는 것이다. 예측 문제의 특성을 나타내는 데이터는, 예측 문제가 시계열 예측 문제인지 여부를 표시하고, 시계열 예측 문제에 대응하는 데이터 세트의 시간 측정 변수를 식별함으로써, 시계열 예측 문제를 수용할 수 있다.In some embodiments, the
일부 실시예에서, 예측 문제의 라이브러리는 예측 문제 간의 유사성(또는 차이)을 평가하기 위한 도구를 포함한다. 이러한 도구는 2개의 예측 문제 간의 유사성을 (예를 들어, 미리 정해진 스케일 상의) 스코어, 분류(예를 들어, "매우 유사", "다소 유사", "다소 비유사", "매우 비유사"), 바이너리 결정(예를 들어, "유사" 또는 "비유사")으로서 표현할 수 있다. 이러한 도구는 동일하거나 유사한 예측 모델링 기술을 예측 문제에 적용한 결과를 나타내는 데이터 등에 기초하여, 예측 문제의 특성을 나타내는 데이터에 기초하여 2개의 예측 문제 간의 유사성을 결정할 수 있다. 예를 들어, 다수의(또는 높은 퍼센티지의) 특성을 공통으로 갖고 및/또는 동일하거나 유사한 예측 모델링 기술에 영향을 받기 쉬운 데이터 세트에 의해 나타내어지는 2개의 예측 문제에 있어서, 도구는 예측 문제에 높은 유사성 스코어를 할당하거나 예측 문제를 "매우 유사"로 분류할 수 있다.In some embodiments, the library of prediction problems includes tools for evaluating similarities (or differences) between prediction problems. These tools score similarities (eg, on a predetermined scale) between two prediction problems, classify them (eg, "very similar", "somewhat similar", "somewhat dissimilar", "very dissimilar"). , can be expressed as a binary crystal (eg, “like” or “dislike”). Such a tool may determine the similarity between two predictive problems based on data representative of the characteristics of the predictive problem, etc., based on data representative of the results of applying the same or similar predictive modeling techniques to the predictive problem. For example, for two prediction problems represented by data sets that have many (or a high percentage of) characteristics in common and/or are susceptible to the same or similar predictive modeling techniques, the tool is highly sensitive to the prediction problem. You can assign a similarity score or classify the prediction problem as "very similar".
도 2는 예측 모델링 기술을 인코딩하는 머신-실행 가능 템플릿을 구축하고 일부 실시예에 따라 이러한 템플릿을 예측 모델링 방법으로 통합하기에 적절한 모델링 도구(200)의 블록도를 나타낸다. 사용자 인터페이스(120)는 모델링 도구(200)에 인터페이스를 제공할 수 있다.2 shows a block diagram of a
도 2의 예에서, 도 2에서, 모델링 방법 빌더(210)는 모델링 기술의 라이브러리(130)의 톱(top) 상에 모델링 방법의 라이브러리(212)를 구축한다. 모델링 기술 빌더(220)는 모델링 작업의 라이브러리(232)의 톱 상에 모델링 기술의 라이브러리(130)를 구축한다. 모델링 방법은, 어떤 모델링 기술이 어떤 상황에서 효과적인지 대한 하나 이상의 분석자의 직관 및 경험에 대응할 수 있고, 및/또는 예측 문제에 대한 모델링 검색 공간의 탐색을 가이드하기 위해 이전 예측 문제에 대한 모델링 기술의 적용의 결과를 활용할 수 있다. 모델링 기술은 특정 모델링 알고리즘을 적용하기 위한 단계별 레시피에 대응할 수 있다. 모델링 작업은 모델링 기술 내의 프로세싱 단계에 대응할 수 있다.In the example of FIG. 2 , in FIG. 2 , the
일부 실시예에서, 모델링 기술은 작업의 계층을 포함할 수 있다. 예를 들어, 톱-레벨 "텍스트 마이닝" 작업은 (a) 문서-용어 매트릭스를 생성하고 (b) 용어를 등급화하고 중요하지 않은 용어를 탈락시키는 하위-작업을 포함할 수 있다. 이어서, "용어 등급화 및 탈락" 하위-작업은 (b.1) 등급 모델을 구축하고 (b.2) 문서-용어 매트릭스로부터 열(column)을 탈락시키기 위해 용어 등급을 사용하기 위한 하위-작업을 포함할 수 있다. 이러한 계층은 임의의 깊이를 가질 수 있다.In some embodiments, modeling techniques may include hierarchies of tasks. For example, a top-level “text mining” task may include sub-tasks that (a) generate a document-term matrix and (b) rank terms and drop unimportant terms. Then, the “grading and dropping terms” sub-task is a sub-task for (b.1) building a rating model and (b.2) using term ratings to drop columns from the document-term matrix. may include These layers can have any depth.
도 2의 예에서, 도 2에서, 모델링 도구(200)는 모델링 작업 빌더(230), 모델링 기술 빌더(220) 및 모델링 방법 빌더(210)를 포함한다. 각각의 빌더는 머신-실행 가능 포맷으로 모델링 요소 중 하나를 인코딩하기 위한 도구 또는 도구의 세트를 포함할 수 있다. 각각의 빌더는, 사용자가 기존 모델링 요소를 수정하거나 새 모델링 요소를 생성하도록 허용할 수 있다. 도 2에 나타내어진 모델링 층에 걸쳐 모델링 요소의 완전한 라이브러리를 구성하기 위해, 개발자는 하향식, 상향식, 외향식, 내향식, 또는 조합된 전략을 채용할 수 있다. 그러나, 논리적 의존성의 관점에서, 리프(leaf)-레벨 작업이 가장 작은 모델링 요소이므로, 도 2는 머신-실행 가능 템플릿을 구성하는 프로세스의 제1 단계로서 작업 생성을 도시한다.In the example of FIG. 2 , in FIG. 2 , the
각각의 빌더의 사용자 인터페이스는 표준 프로그래밍 언어로 특수화된 루틴의 컬렉션, 빌더의 요소를 인코딩할 목적으로 특별히 설계된 형식 문법, 원하는 실행 흐름을 추상적으로 특정하기 위한 리치 유저 인터페이스 등에 한정되지는 않지만 이를 사용하여 구현될 수 있다 그러나, 각 층에서 허용되는 연산의 논리적 구조는 임의의 특정 인터페이스와 독립적이다.Each builder's user interface is not limited to, but is not limited to, a collection of routines specialized in a standard programming language, a formal syntax specifically designed for the purpose of encoding the builder's elements, and a rich user interface to abstractly specify the desired flow of execution. However, the logical structure of the operations allowed in each layer is independent of any particular interface.
계층 구조의 리프-레벨에서 모델링 작업을 생성할 때, 모델링 도구(200)는, 개발자가 다른 소스로부터 소프트웨어 컴포넌트를 통합하는 것을 허용할 수 있다. 이 기능은 통계 학습과 관련된 소프트웨어의 설치된 베이스 및 이러한 소프트웨어를 어떻게 개발하는지에 대한 축적된 지식을 활용한다. 이러한 설치된 베이스는 과학 프로그래밍 언어(예를 들어, Fortran), 범용 프로그래밍 언어(예를 들어, C)로 작성된 과학 루틴, 범용 프로그래밍 언어(예를 들어, Python용 사이킷-학습(scikit-learn))의 과학 컴퓨팅 확장, 상업용 통계 환경(예를 들어, SAS/STAT) 및 오픈 소스 통계 환경(예를 들어, R)을 커버한다. 이러한 소프트웨어 컴포넌트의 기능을 통합하는 데 사용될 때, 모델링 작업 빌더(230)는 소프트웨어 컴포넌트의 입력 및 출력의 사양 및/또는 소프트웨어 컴포넌트가 수행할 수 있는 동작 유형의 특성화를 요구할 수 있다. 일부 실시예에서, 모델링 작업 빌더(230)는 소프트웨어 컴포넌트의 소스 코드 서명을 검사하거나, 소프트웨어 컴포넌트의 인터페이스 정의를 저장소로부터 리트리빙(retrieving)하거나, 요청 시퀀스로 소프트웨어 컴포넌트를 프로빙하거나, 다른 형태의 자동화 평가를 수행함으로써 이 메타데이터를 생성한다. 일부 실시예에서, 개발자는 이 메타데이터의 일부 또는 전부를 수동으로 공급한다.When creating modeling tasks at the leaf-level of a hierarchy,
일부 실시예에서, 모델링 작업 빌더(230)는 이 메타데이터를 사용하여 통합된 소프트웨어를 실행할 수 있게 하는 "래퍼(wrapper)"를 생성한다. 모델링 작업 빌더(230)는 컴포넌트의 소스 코드를 내부 실행 가능자로 컴파일링하고, 컴포넌트의 목적 코드를 내부 실행자에 링크하고, 컴포넌트의 독립형 실행자에 의해 예상되는 컴퓨팅 환경의 에뮬레이터를 통해 컴포넌트에 액세스하고, 로컬 머신 상의 소프트웨어 서비스의 일부로서 실행되는 컴포넌트의 기능에 액세스하고, 원격 머신 상의 소프트웨어 서비스의 일부로서 실행되는 컴포넌트의 기능에 액세스하고, 로컬 또는 원격 머신 상에서 실행되는 중간 소프트웨어 서비스를 통해 컴포넌트의 기능에 액세스하는 등에 한정되지 않지만 이를 포함하여 소프트웨어 컴포넌트를 통합하기 위해 임의의 메커니즘을 이용하는 이러한 래퍼를 구현할 수 있다. 래퍼가 생성된 후에 모델링 작업 빌더(230)가 어떠한 통합 메커니즘을 사용하든지, 모델링 도구(200)는 임의의 다른 루틴처럼 컴포넌트에 소프트웨어를 호출할 수 있다.In some embodiments,
일부 실시예에서, 개발자는 리프-레벨 모델링 작업을 재귀적으로 상위-레벨 작업으로 어셈블링하기 위해 모델링 작업 빌더(230)를 사용할 수 있다. 전술한 바와 같이, 작업 계층 구조의 배열을 특정하기 위해 사용자 인터페이스를 구현하는 많은 상이한 방식들이 존재한다. 그러나 논리적 관점에서 볼 때, 리프-레벨이 아닌 작업은 하위-작업의 지향 그래프를 포함할 수 있다. 이 계층 구조의 톱 및 중간 레벨 각각에는, 그 입력이 계층 구조의 부모(parent) 작업(또는 계층 구조의 톱 레벨에 있는 부모 모델링 기술)으로부터 온 하나의 개시 하위-작업이 있을 수 있다. 계층 구조에서 그 출력이 부모 작업(또는 계층 구조의 톱 레벨에 있는 부모 모델링 기술)으로 향하는 하나의 종료 하위-작업이 또한 있을 수 있다. 주어진 레벨에서의 다른 모든 하위-작업은 하나 이상의 이전 하위-작업으로부터 입력을 수신하고, 하나 이상의 후속 하위-작업으로 출력을 전송한다.In some embodiments, a developer may use the
리프-레벨 작업에 임의의 코드를 통합하는 능력과 조합하여, 지향 그래프에 따라 데이터를 전파하는 것은 중간-레벨 작업 내에서 임의의 제어 흐름의 구현을 용이하게 한다. 일부 실시예에서, 모델링 도구(200)는 추가적인 빌트인(built-in) 동작을 제공할 수 있다. 예를 들어, 임의의 특정 조건부 로직을 외부 프로그래밍 언어로 코딩된 리프-레벨 작업으로서 구현하는 것이 간단하지만, 모델링 작업 빌더(230)는 일반적인 방식으로 조건부 평가를 수행하는 빌트인 노드 또는 아크(arc)를 제공할 수 있어, 이러한 평가의 결과에 기초하여 노드로부터의 데이터의 일부 또는 전부를 상이한 후속 노드로 향하게 한다. 후속 노드에 대한 입력으로서 전파하기 전에 규칙 또는 표현에 따라 한 노드로부터의 출력을 필터링하고, 한 노드로부터의 출력을 후속 노드에 대한 입력으로 전파하기 전에 변환하고, 각 분할을 각각의 후속 노드로 전파하기 전에 규칙 또는 표현에 따라 한 노드로부터의 출력을 분할하고, 입력으로서 수용하기 전에 규칙 또는 공식에 따라 복수의 이전 노드의 출력을 조합하고, 하나 이상의 루프 변수를 사용하여 노드의 동작의 서브-그래프를 반복적으로 적용하는 것 등을 위한 유사한 대안이 존재한다.Propagating data according to directed graphs, in combination with the ability to incorporate arbitrary code into leaf-level operations, facilitates the implementation of arbitrary control flows within mid-level operations. In some embodiments, the
일부 실시예에서, 개발자는 모델링 기술 빌더(220)를 사용하여 모델링 작업 라이브러리(232)로부터의 작업을 모델링 기술로 어셈블링할 수 있다. 모델링 작업 라이브러리(232)의 적어도 일부 모델링 작업은 하나 이상의 모델링 기술의 사전-프로세싱 단계, 모델-맞춤 단계 및/또는 사후-프로세싱 단계에 대응할 수 있다. 작업 및 기술의 개발은 작업 라이브러리(232)가 채워진 후에 기술이 어셈블링되는 선형 패턴 또는 작업 및 기술이 동시에 어셈블링되는 보다 동적인 원형 패턴을 따를 수 있다. 개발자는 기존 작업을 새로운 기술로 조합하도록 고무되고, 이 기술이 새로운 작업을 필요로 한다는 것을 인식하고 새로운 기술이 완료될 때까지 반복적으로 정제(refine)할 수 있다. 대안적으로, 개발자는 아마도 학술지 발행으로부터의 새로운 기술의 개념으로 시작하여 새로운 작업으로부터 이를 구축할 수 있지만, 적절한 기능을 제공할 때 모델링 작업 라이브러리(232)로부터 기존 작업을 끌어올 수 있다. 모든 경우에, 참조 데이터 세트 또는 필드 테스트에 모델링 기술을 적용한 결과는 개발자 나 분석자가 기술의 성능을 평가할 수 있게 할 것이다. 이러한 평가는, 차례로 리프-레벨 모델링 작업으로부터 모델링 기술에 이르기까지 계층 구조에서의 어느 지점에서의 변화로 귀결될 수 있다. 모델링 도구(200)는 공통 모델링 작업 및 모델링 기술 라이브러리(232, 130)뿐만 아니라 고생산성 빌더 인터페이스(210, 220 및 230)를 제공함으로써, 개발자가 신속하고 정확하게 변경할 수 있을 뿐만 아니라 라이브러리(232, 130)에 대한 액세스를 갖는 다른 개발자 및 사용자에게 이러한 향상을 전파할 수 있다.In some embodiments, a developer may use
모델링 기술은 개발자 및 분석자가 전체 예측 모델링 절차를 개념화하기 위한 초점을 제공할 수 있으며, 모든 단계는 필드의 최상 실시에 기초하여 예상된다. 일부 실시예에서, 모델링 기술은 통계적 학습 훈련으로부터의 최상 실시를 캡슐화한다. 또한, 모델링 도구(200)는, 예를 들어, 누락 작업을 검출하고, 추가 작업을 검출하고 및/또는 단계들 중의 비정상적인 흐름을 검출하는 기존의 기술의 작업 그래프에 대해 새로운 기술에 대한 작업 그래프를 개발자가 고려 및 비교하기 위해 예를 들어, 단계의 체크리스트를 제공함으로써 고품질 기술의 개발의 안내 지침을 제공할 수 있다.Modeling techniques can provide a focus for developers and analysts to conceptualize the entire predictive modeling process, with every step expected based on best practice in the field. In some embodiments, modeling techniques encapsulate best practices from statistical learning training. In addition, the
일부 실시예에서, 탐색 엔진(110)은 모델링 기술 라이브러리(130)의 기술을 사용하여 데이터 세트(240)에 대한 예측 모델을 구축하는 데 사용된다. 탐색 엔진(110)은 모델링 방법 라이브러리(212)로부터 선택된 모델링 방법에 의해 인코딩된 우선 순위 방식에 기초하여 모델링 기술 라이브러리(130)에서 모델링 기술의 평가를 우선 순위화할 수 있다. 모델링 공간의 탐색을 위한 적절한 우선 순위 방식의 예가 다음 섹션에서 설명된다. 도 2의 예에서, 모델링 공간의 탐색 결과는 모델링 작업 및 기술과 연관된 메타데이터를 갱신하는 데 사용될 수 있다.In some embodiments, the
일부 실시예에서, 고유 식별자(ID)가 모델링 요소(예를 들어, 기술, 작업 및 하위-작업)에 할당될 수 있다. 모델링 요소의 ID는 모델링 요소의 템플릿과 연관된 메타데이터로서 저장될 수 있다. 일부 실시예에서, 이들 모델링 엘리먼트 ID는 하나 이상의 모델링 작업 또는 하위-작업을 공유하는 모델링 기술을 효율적으로 실행하는 데 사용될 수 있다. 모델링 기술을 효율적으로 실행하는 방법이 아래에서 더욱 상세하게 설명된다.In some embodiments, unique identifiers (IDs) may be assigned to modeling elements (eg, descriptions, tasks, and sub-tasks). The ID of the modeling element may be stored as metadata associated with the template of the modeling element. In some embodiments, these modeling element IDs may be used to efficiently execute modeling techniques that share one or more modeling tasks or sub-tasks. Methods of efficiently implementing modeling techniques are described in more detail below.
도 2의 예에서, 탐색 엔진(110)에 의해 생성된 모델링 결과는 모델링 작업 빌더(230), 모델링 기술 빌더(220) 및 모델링 방법 빌더(210)로 피드백된다. 모델 빌더는 모델링 결과에 기초하여 (예를 들어, 통계적 학습 알고리즘을 사용하여) 자동으로 또는 (예를 들어, 사용자에 의해) 수동으로 적응될 수 있다. 예를 들어, 모델링 방법 빌더(210)는 모델링 결과에서 관측된 패턴에 기초하여 및/또는 데이터 분석자의 경험에 기초하여 적응될 수 있다. 유사하게, 특정 모델링 기술을 실행한 결과는 이들 모델 내의 기술 또는 작업에 대한 디폴트 튜닝 파라미터값의 자동 또는 수동 조정을 알릴 수 있다. 일부 실시예에서, 모델링 빌더의 적응은 반자동일 수 있다. 예를 들어, 예측 모델링 시스템(100)은 방법, 기술 및/또는 작업에 대한 잠재적 개선을 플래깅할 수 있으며, 사용자는 이러한 잠재적 개선을 구현할지 여부를 결정할 수 있다.In the example of FIG. 2 , the modeling result generated by the
모델링 공간 탐색 엔진modeling space exploration engine
도 3은 일부 실시예에 따라 예측 문제에 대한 예측 모델을 선택하기 위한 방법(300)의 흐름도이다. 일부 실시예에서, 방법(300)은 모델링 방법 라이브러리(212)에서의 모델링 방법에 대응할 수 있다.3 is a flow diagram of a
방법(300)의 단계(310)에서, 예측 문제에 대한 복수의 예측 모델링 절차(예를 들어, 예측 모델링 기술)의 적절성이 결정된다. 예측 모델링 절차의 예측 문제에 대한 적절성은 예측 문제의 특성, 모델링 절차의 속성, 및/또는 다른 적절한 정보에 기초하여 결정될 수 있다.At
예측 문제에 대한 예측 모델링 절차의 "적절성"은 예측 모델링 절차를 사용하여 생성된 예측 모델의 예측 문제에 대한 예상된 성능을 나타내는 데이터를 포함할 수 있다. 일부 실시예에서, 예측 문제에 대한 예측 모델의 예상되는 성능은 하나 이상의 예상되는 스코어(예를 들어, 하나 이상의 목적 함수의 예상값) 및/또는 (예를 들어, 다른 예측 모델링 기술을 사용하여 생성된 다른 예측 모델에 대한) 하나 이상의 예상 등급을 포함한다.The "relevance" of a predictive modeling procedure for a predictive problem may include data indicative of the expected performance of a predictive model generated using the predictive modeling procedure for a predictive problem. In some embodiments, the expected performance of a predictive model on a predictive problem is generated using one or more expected scores (eg, predicted values of one or more objective functions) and/or (eg, using other predictive modeling techniques). It contains one or more predicted grades) for other predictive models that have been
대안적으로 또는 추가적으로, 예측 문제에 대한 예측 모델링 절차의 "적절성"은, 모델링 절차가 예측 문제에 대해 적절한 성능을 제공하는 예측 모델을 생성할 것으로 예상되는 정도를 나타내는 데이터를 포함할 수 있다. 일부 실시예에서, 예측 모델링 절차의 "적절성" 데이터는 모델링 절차의 적절성의 분류를 포함한다. 분류 스킴은 2개의 클래스(예를 들어, "적절" 또는 "비적절") 또는 2개 초과의 클래스(예를 들어, "매우 적절", "중간 정도로 적절", "중간 정도로 부적절", "매우 부적절")를 가질 수 있다.Alternatively or additionally, the “relevance” of a predictive modeling procedure for a predictive problem may include data indicating the degree to which the modeling procedure is expected to produce a predictive model that provides adequate performance for the predictive problem. In some embodiments, the “relevance” data of the predictive modeling procedure includes a classification of the relevance of the modeling procedure. A classification scheme can be divided into two classes (e.g., "adequate" or "inappropriate") or more than two classes (e.g., "very appropriate", "moderately appropriate", "moderately inadequate", "very inappropriate").
일부 실시예에서, 탐색 엔진(110)은 본원에 설명되는 (그러나 이에 한정되는 것은 아님) 특성을 포함하여, 예측 문제의 하나 이상의 특성에 적어도 부분적으로 기초하여 예측 문제에 대한 예측 모델링 절차의 적절성을 결정한다. 일례로서, 예측 문제에 대한 예측 모델링 절차의 적절성은 예측 문제에 대응하는 데이터 세트의 특성, 예측 문제에 대응하는 데이터 세트의 변수의 특성, 데이터 세트의 변수들 간의 관계 및/또는 예측 문제의 주제에 기초하여 결정될 수 있다. 탐색 엔진(110)은 예측 문제, 데이터 세트, 데이터 세트 변수 등의 특성을 결정하기 위해 예측 문제와 연관된 데이터 세트를 분석하기 위한 도구(예를 들어, 통계 분석 도구)를 포함할 수 있다.In some embodiments, the
일부 실시예에서, 탐색 엔진(110)은 (이에 한정되는 것은 아니지만) 본원에 설명되는 예측 모델링 절차의 속성을 포함하여, 예측 모델링 절차의 하나 이상의 속성에 적어도 부분적으로 기초하여 예측 문제에 대한 예측 모델링 절차의 적절성을 결정한다. 일례로서, 예측 문제에 대한 예측 모델링 절차의 적절성은 예측 모델링 절차에 의해 수행된 데이터 프로세싱 기술 및/또는 예측 모델링 절차에 의해 부과된 데이터 프로세싱 제약에 기초하여 결정될 수 있다.In some embodiments, the
일부 실시예에서, 예측 문제에 대한 예측 모델링 절차의 적절성을 결정하는 것은 예측 문제에 대한 고려로부터 적어도 하나의 예측 모델링 절차를 제거하는 것을 포함한다. 고려로부터 예측 모델링 절차를 제거하기로 한 결정은 본원에서 제거된 모델링 절차를 "정리(pruning)" 및/또는 "검색 공간 정리"로 칭해질 수 있다. 일부 실시예에서, 사용자는 모델링 절차를 정리하기로 한 탐색 엔진의 결정을 무시할 수 있어, 이전에 정리된 모델링 절차가 검색 공간의 탐색 중에 추가적인 실행 및/또는 평가에 적격으로 남아 있다.In some embodiments, determining the appropriateness of a predictive modeling procedure for the predictive problem comprises removing at least one predictive modeling procedure from consideration for the predictive problem. A decision to remove a predictive modeling procedure from consideration may be referred to herein as "pruning" and/or "search space theorem" the modeling procedure removed. In some embodiments, the user may override the search engine's decision to refine the modeling procedure so that the previously compiled modeling procedure remains eligible for further execution and/or evaluation during exploration of the search space.
예측 모델링 절차는 예측 모델링 절차의 속성 및 예측 문제의 특성에 하나 이상의 연역적 규칙을 적용한 결과에 기초하여 고려에서 제외될 수 있다. 연역적 규칙은 다음을 포함할 수 있지만 이에 한정되지 않는다: (1) 예측 문제가 카테고리 타겟 변수를 포함하는 경우, 실행을 위한 분류 기술만을 선택한다; (2) 데이터 세트의 숫자 피처가 크게 상이한 크기 범위에 걸쳐 있는 경우, 정규화를 제공하는 기술을 선택하거나 우선 순위화한다; (3) 데이터 세트가 텍스트 피처를 갖는 경우, 텍스트 마이닝을 제공하는 기술을 선택하거나 우선 순위화한다; (4) 데이터 세트가 관측치보다 많은 피처를 갖는 경우, 피처의 수보다 많거나 동등한 관측치의 수를 필요로 하는 모든 기술을 제거한다; (5) 데이터 세트의 폭이 임계폭을 초과하는 경우, 크기 감소를 제공하는 기술을 선택하거나 우선 순위화한다; (6) 데이터 세트가 크고 희소한 경우(예를 들어, 데이터 세트의 크기가 임계 크기를 초과하고 데이터 세트의 희소성이 임계 희소성을 초과하는 경우), 희소한 데이터 구조에 대해 효율적으로 실행되는 기술을 선택하거나 우선 순위화하고; 및/또는 규칙이 가정문(if-then statement) 형태로 표현될 수 있는 모델링 기술을 선택, 우선 순위화 또는 제거하기 위한 임의의 규칙을 포함한다. 일부 실시예에서, 연역적 규칙은 연쇄되어, 몇몇 규칙의 순차적 실행이 결론을 생성한다. 일부 실시예에서, 연역적 규칙은 이력적 성능에 기초하여 갱신, 정제 또는 개선될 수 있다.A predictive modeling procedure may be excluded from consideration based on the properties of the predictive modeling procedure and the results of applying one or more deductive rules to the nature of the prediction problem. Deductive rules may include, but are not limited to: (1) if the prediction problem includes a categorical target variable, select only classification techniques for execution; (2) select or prioritize techniques that provide normalization when the numeric features of the data set span widely different size ranges; (3) select or prioritize techniques that provide text mining if the data set has text features; (4) if the data set has more features than observations, remove all descriptions that require a number of observations greater than or equal to the number of features; (5) select or prioritize techniques that provide size reduction if the width of the data set exceeds a threshold width; (6) If the data set is large and sparse (e.g., the size of the data set exceeds the threshold size and the sparsity of the data set exceeds the critical sparsity), find a technique that runs efficiently on sparse data structures. select or prioritize; and/or any rules for selecting, prioritizing, or eliminating modeling techniques in which the rules may be expressed in the form of if-then statements. In some embodiments, deductive rules are chained, such that sequential execution of several rules produces a conclusion. In some embodiments, a priori rules may be updated, refined, or improved based on historical performance.
일부 실시예에서, 탐색 엔진(110)은 유사한 예측 문제에 대한 유사한 예측 모델링 절차들의 수행(예상 또는 실제)에 기초하여 예측 문제에 대한 예측 모델링 절차의 적절성을 결정한다(특별한 경우로서, 탐색 엔진(110)은 유사한 예측 문제에 대한 동일한 예측 모델링 절차의 성능(예상 또는 실제)에 기초하여 예측 문제에 대한 예측 모델링 절차의 적절성을 결정할 수 있음).In some embodiments, the
전술한 바와 같이, 모델링 기술의 라이브러리(130)는 예측 모델링 기술들 간의 유사성을 평가하기 위한 도구를 포함할 수 있고, 예측 문제의 라이브러리는 예측 문제들 간의 유사성을 평가하기 위한 도구를 포함할 수 있다. 탐색 엔진(110)은 예측 모델링 절차 및 문제가 되는 예측 모델링 절차 및 예측 문제와 유사한 예측 문제를 식별하기 위해 이 도구를 사용할 수 있다. 예측 문제에 대한 예측 모델링 절차의 적절성을 결정할 목적으로, 탐색 엔진(110)은 문제가 되는 모델링 절차와 가장 유사한 M 모델링 절차를 선택하고, 문제가 되는 모델링 절차에 대한 임계 유사도 값을 초과하는 모든 모델링 절차를 선택하는 것 등을 수행할 수 있다. 마찬가지로, 예측 문제에 대한 예측 모델링 절차의 적절성을 결정할 목적으로, 탐색 엔진(110)은 문제가 되는 예측 문제와 가장 유사한 N 예측 문제를 선택하고, 문제가 되는 예측 문제에 대한 임계치 유사도 값을 초과하는 모든 예측 문제를 선택하는 것 등을 수행할 수 있다.As described above, the library of
예측 모델링 절차의 세트 및 모델링 절차 및 문제가 되는 예측 문제와 유사한 예측 문제의 세트에 있어서, 탐색 엔진은 문제가 되는 예측 문제에 대해 문제가 되는 모델링 절차의 예상되는 적절성을 결정하기 위해 유사한 예측 문제에 대한 유사한 모델링 절차의 성능을 조합할 수 있다. 전술한 바와 같이, 모델링 절차의 템플릿은, 대응하는 모델링 절차가 주어진 데이터 세트에 대해 얼마나 잘 수행할 것인지를 평가하는 데 관련된 정보를 포함할 수 있다. 탐색 엔진(110)은 유사한 예측 문제에 대한 유사한 모델링 절차의 성능 값(예상 또는 실제)을 결정하기 위해 모델 성능 메타데이터를 사용할 수 있다. 그 후, 이러한 성능 값은 문제가 되는 예측 문제에 대한 모델링 절차의 적절성의 추정을 생성하기 위해 조합될 수 있다. 예를 들어, 탐색 엔진(110)은 유사한 예측 문제에 대한 유사한 모델링 절차의 성능 값들의 가중화된 합으로서 문제가 되는 모델링 절차의 적절성을 계산할 수 있다.For a set of predictive modeling procedures and a set of modeling procedures and prediction problems that are similar to the prediction problem in question, the search engine is used to evaluate the prediction problem in question to determine the expected adequacy of the modeling procedure in question for the prediction problem in question. It is possible to combine the performance of similar modeling procedures for As mentioned above, a template of a modeling procedure may include information related to evaluating how well a corresponding modeling procedure will perform on a given data set. The
일부 실시예에서, 탐색 엔진(110)은, 다른 예측 문제(예를 들어, 문제가 되는 예측 문제와 유사한 예측 문제)에 대한 다양한 모델링 절차(예를 들어, 문제가 되는 모델링 절차와 유사한 모델링 절차)의 결과에 기초하여 예측 문제에 대한 모델링 절차의 적절성을 결정하도록 트레이닝될 수 있는 "메타" 머신-학습 모델의 출력에 적어도 부분적으로 기초하여 예측 문제에 대한 예측 모델링 절차의 적절성을 결정한다. 예측 문제에 대한 예측 모델링 절차의 적절성을 추정하기 위한 머신-학습 모델은, 문제가 되는 예측 문제에 대해 어떤 기술이 가장 성공 가능성이 높은지를 예측하기 위해 머신 학습을 재귀적으로 적용하기 때문에 "메타" 머신-학습 모델이라 칭해질 수 있다. 따라서, 탐색 엔진(110)은 다른 예측 문제를 푼 결과에 대해 트레이닝된 메타-머신-학습 알고리즘을 사용함으로써 예측 문제에 대한 모델링 기술의 적절성의 메타-예측을 생성할 수 있다.In some embodiments,
일부 실시예에서, 탐색 엔진(110)은 사용자 입력(예를 들어, 예측 모델링 절차의 적절성에 관한 데이터 분석자의 직관 또는 경험을 나타내는 사용자 입력)에 적어도 부분적으로 기초하여 예측 문제에 대한 예측 모델링 절차의 적절성을 결정할 수 있다.In some embodiments, the
도 3을 참조하면, 방법(300)의 단계(320)에서, 예측 모델링 절차의 적어도 한 서브세트가 예측 문제에 대한 모델링 절차의 적절성에 기초하여 선택될 수 있다. 모델링 절차가 적절성 카테고리(예를 들어, "적절" 또는 "부적절", "매우 적절", "중간 정도로 적절", "중간 정도로 부적절" 또는 "매우 부적절" 등)에 할당된 실시예에서, 모델링 절차의 서브세트를 선택하는 것은 하나 이상의 적절성 카테고리에 할당된 모델링 절차(예를 들어, "적절한 카테고리"에 할당된 모든 모델링 절차; "매우 부적절" 카테고리에 할당되지 않은 모든 모델링 절차; 등)를 선택하는 것을 포함할 수 있다.Referring to FIG. 3 , at
모델링 절차에 적절성 값이 할당되는 실시예에서, 탐색 엔진(110)은 적절성 값에 기초하여 모델링 절차의 서브세트를 선택할 수 있다. 일부 실시예에서, 탐색 엔진(110)은 임계 적절성 스코어를 초과하는 적절성 스코어를 갖는 모델링 절차를 선택한다. 임계 적절성 스코어는 사용자에 의해 제공되거나 탐색 엔진(110)에 의해 결정될 수 있다. 일부 실시예에서, 탐색 엔진(110)은 모델링 절차의 실행을 위해 이용 가능한 프로세싱 자원의 양에 따라, 실행을 위해 선택된 모델링 절차의 수를 증가시키거나 감소시키도록 임계 적절성 스코어를 조정할 수 있다.In embodiments in which relevance values are assigned to modeling procedures,
일부 실시예에서, 탐색 엔진(110)은 문제가 되는 예측 문제에 대한 임의의 모델링 절차에 할당된 최고 적절성 스코어의 특정 범위 내의 적절성 스코어를 갖는 모델링 절차를 선택한다. 범위는 절대적(예를 들어, 최고 스코어의 S 포인트 내의 스코어) 또는 상대적(예를 들어, 최고 스코어의 P% 내의 스코어)일 수 있다. 범위는 사용자에 의해 제공되거나 탐색 엔진(110)에 의해 결정될 수 있다. 일부 실시예에서, 탐색 엔진(110)은 모델링 절차의 실행을 위해 이용 가능한 프로세싱 자원의 양에 따라 실행을 위해 선택된 모델링 절차의 수를 증가 또는 감소시키도록 범위를 조정할 수 있다.In some embodiments, the
일부 실시예에서, 탐색 엔진(110)은 문제가 되는 예측 문제에 대해 최고의 적절성 스코어를 갖는 모델링 절차의 부분을 선택한다. 동등하게, 탐색 엔진(110)은 (예를 들어, 모델링 절차에 대한 적절성 스코어가 이용 가능하지 않지만, 모델링 절차의 적절성의 순서(등급화)가 이용 가능한 경우에) 최고의 적절성 등급을 갖는 모델링 절차의 부분을 선택할 수 있다. 부분은 사용자에 의해 제공되거나 탐색 엔진(110)에 의해 결정될 수 있다. 일부 실시예에서, 탐색 엔진(110)은 모델링 절차의 실행을 위해 이용 가능한 프로세싱 자원의 양에 따라, 실행을 위해 선택된 모델링 절차의 수를 증가시키거나 감소시키도록 부분을 조정할 수 있다.In some embodiments, the
일부 실시예에서, 사용자는 실행될 하나 이상의 모델링 절차를 선택할 수 있다. 사용자가 선택한 절차는 탐색 엔진(110)에 의해 선택된 하나 이상의 모델링 절차에 추가하여 또는 그 대신에 실행될 수 있다. 특히 데이터 분석자의 직관 및 경험이, 모델링 시스템(100)이 예측 문제에 대한 모델링 절차의 적절성을 정확하게 추정하지 못했음을 나타내는 시나리오에서, 사용자가 실행을 위한 모델링 절차를 선택할 수 있게 하면, 예측 모델링 시스템(100)의 성능을 향상시킬 수 있다.In some embodiments, a user may select one or more modeling procedures to be executed. The user-selected procedure may be executed in addition to or in lieu of one or more modeling procedures selected by the
일부 실시예에서, 탐색 엔진(110)은, 모델링 절차 P0...PN 전부가 문제가 되는 예측 문제에 대해 적절한 것으로 결정되는 경우에도, 모델링 절차 P0...PN을 선택하지 않고 하나 이상의 다른 모델링 절차 P1...PN을 나타내는(예를 들어, 유사한) 모델링 절차 P0를 선택함으로써 검색 공간 평가의 입도(granularity)를 제어할 수 있다. 또한, 탐색 엔진(110)은 선택된 모델링 절차 P0를 실행한 결과를 모델링 절차 P1...PN을 실행한 결과를 나타내는 것으로서 취급할 수 있다. 검색 공간을 평가하는 이러한 거친(coarse-grained) 접근법은, 특히 검색 공간의 평가의 초기 단계 중에 적용되는 경우 프로세싱 자원을 절약할 수 있다. 탐색 엔진(110)이, 모델링 절차 P0가 예측 문제에 대한 가장 적절한 모델링 절차 중에 있는 것으로 나중에 결정하는 경우, 유사한 모델링 절차 P1...PN을 실행 및 평가함으로써 검색 공간의 관련 부분의 세분화된 평가가 수행될 수 있다.In some embodiments, the
도 3을 참조하면, 방법(300)의 단계(330)에서, 자원 할당 스케줄이 생성될 수 있다. 자원 할당 스케줄은 선택된 모델링 절차의 실행을 위한 프로세싱 자원을 할당할 수 있다. 일부 실시예에서, 자원 할당 스케줄은 문제가 되는 예측 문제에 대한 모델링 절차의 결정된 적절성에 기초하여 모델링 절차에 프로세싱 자원을 할당한다. 일부 실시예에서, 탐색 엔진(110)은 자원 할당 스케줄에 따라 선택된 모델링 절차를 실행하기 위한 명령으로 하나 이상의 프로세싱 노드에 자원 할당 스케줄을 송신한다.Referring to FIG. 3 , at
할당된 프로세싱 자원은 시간 자원(예를 들어, 하나 이상의 프로세싱 노드의 실행 사이클, 하나 이상의 프로세싱 노드의 실행 시간 등), 물리적 자원(예를 들어, 다수의 프로세싱 노드, 상당한 양의 머신-판독 가능 저장소(예를 들어, 메모리 및/또는 2차 저장소) 등), 및/또는 다른 할당 가능한 프로세싱 자원을 포함할 수 있다. 일부 실시예에서, 할당된 프로세싱 자원은 분산 컴퓨팅 시스템 및/또는 클라우드-기반 컴퓨팅 시스템의 자원을 프로세싱하는 것일 수 있다. 일부 실시예에서, 프로세싱 자원이 할당 및/또는 사용될 때 비용이 발생할 수 있다(예를 들어, 데이터 센터의 자원을 사용하는 대가로 데이터 센터의 운영자에 의해 요금이 징수될 수 있음).The allocated processing resources include time resources (eg, execution cycles of one or more processing nodes, execution time of one or more processing nodes, etc.), physical resources (eg, multiple processing nodes, a significant amount of machine-readable storage). (eg, memory and/or secondary storage), and/or other allocable processing resources. In some embodiments, the allocated processing resources may be processing resources of distributed computing systems and/or cloud-based computing systems. In some embodiments, costs may arise when processing resources are allocated and/or used (eg, a fee may be collected by the operator of the data center in exchange for using the resources of the data center).
전술한 바와 같이, 자원 할당 스케줄은 문제가 되는 예측 문제에 대한 모델링 절차의 적절성에 기초하여 모델링 절차에 프로세싱 자원을 할당할 수 있다. 예를 들어, 자원 할당 스케줄은 예측 문제에 대해 더 높은 예측 적절성을 갖는 모델링 절차에 더 많은 프로세싱 자원을 할당하고, 예측 문제에 대해 더 낮은 예측 적절성을 갖는 모델링 절차에 더 적은 프로세싱 자원을 할당할 수 있어, 보다 유망한 모델링 절차가 제한된 프로세싱 자원 중 더 많은 부분의 이익을 누린다. 다른 예로서, 자원 할당 스케줄은 더 큰 데이터 세트를 프로세싱하기에 충분한 프로세싱 자원을 보다 높은 예측된 적절성을 갖는 모델링 절차에 할당하고, 보다 작은 데이터 세트를 프로세싱하기에 충분한 프로세싱 자원을 보다 낮은 예측된 적절성을 갖는 모델링 절차에 할당할 수 있다.As described above, the resource allocation schedule may allocate processing resources to the modeling procedure based on the adequacy of the modeling procedure for the prediction problem in question. For example, a resource allocation schedule may allocate more processing resources to modeling procedures with higher predictive relevance for prediction problems and less processing resources to modeling procedures with lower predictive relevance for prediction problems. Therefore, more promising modeling procedures benefit from a larger fraction of the limited processing resources. As another example, a resource allocation schedule allocates processing resources sufficient to process a larger data set to a modeling procedure with a higher predicted relevance, and allocates processing resources sufficient to process a smaller data set to a lower predicted relevance. can be assigned to a modeling procedure with
다른 예로서, 자원 할당 스케줄은 더 낮은 예측된 적절성을 갖는 모델링 절차의 실행 이전에 더 높은 예측된 적절성을 갖는 모델링 절차의 실행을 스케줄링할 수 있으며, 이는 또한 더 많은 프로세싱 자원을 보다 유망한 모델링 절차에 할당하는 효과를 가질 수 있다. 일부 실시예에서, 모델링 절차를 실행한 결과는, 그 결과가 이용 가능해질 때 사용자 인터페이스(120)를 통해 사용자에게 제시될 수 있다. 이러한 실시예에서, 더 낮은 예측된 적절성을 갖는 모델링 절차 이전에 실행될 더 높은 예측된 적절성을 갖는 모델링 절차를 스케줄링하는 것은 평가의 초기 단계에서 검색 공간의 평가에 대한 추가적인 중요한 정보를 사용자에게 제공할 수 있으며, 이에 의해 신속한 사용자-구동 조정을 검색 계획으로 조정하는 것을 용이하게 한다. 예를 들어, 예비 결과에 기초하여, 사용자는 매우 잘 수행될 것으로 예상되었던 하나 이상의 모델링 절차가 실제로 매우 열등하게 수행하는 것으로 결정할 수 있다. 사용자는 열등한 성능의 원인을 조사하고, 예를 들어, 열등한 성능이 데이터 세트의 준비에서의 오류로 인해 발생한 것으로 결정할 수 있다. 그 후, 사용자는 오류를 수정하고, 오류의 영향을 받은 모델링 절차의 실행을 재개할 수 있다.As another example, the resource allocation schedule may schedule the execution of a modeling procedure with a higher predicted relevance prior to the execution of a modeling procedure with a lower predicted relevance, which also dedicates more processing resources to a more promising modeling procedure. It can have the effect of allocating. In some embodiments, the results of executing the modeling procedure may be presented to the user via the
일부 실시예에서, 자원 할당 스케줄은 모델링 절차의 자원 이용 특성 및/또는 병렬 특성에 적어도 부분적으로 기초하여 프로세싱 자원을 모델링 절차에 할당할 수 있다. 전술한 바와 같이, 모델링 절차에 대응하는 템플릿은, 모델링 절차가 분산 컴퓨팅 인프라스트럭처 상에서 얼마나 효율적으로 실행될 것인지를 추정하는 것과 관련된 메타데이터를 포함할 수 있다. 일부 실시예에서, 이 메타데이터는 모델링 절차의 자원 이용 특성(예를 들어, 주어진 크기의 데이터 세트에 대한 모델링 절차를 트레이닝 및/또는 테스트하는 데 필요한 프로세싱 자원)의 표시를 포함한다. 일부 실시예에서, 이 메타데이터는, 모델링 절차의 병렬 특성(예를 들어, 모델링 절차가 복수의 프로세싱 노드 상에서 병렬로 실행될 수 있는 정도)의 표시를 포함한다. 자원 할당 스케줄을 결정하기 위해 모델링 절차의 자원 이용 특성 및/또는 병렬 특성을 사용하는 것은 프로세싱 자원을 모델링 절차에 효율적으로 할당하는 것을 용이하게 할 수 있다.In some embodiments, the resource allocation schedule may allocate processing resources to the modeling procedure based at least in part on resource utilization characteristics and/or parallelism characteristics of the modeling procedure. As described above, a template corresponding to a modeling procedure may include metadata related to estimating how efficiently the modeling procedure will be executed on a distributed computing infrastructure. In some embodiments, this metadata includes an indication of the resource usage characteristics of the modeling procedure (eg, processing resources needed to train and/or test the modeling procedure for a data set of a given size). In some embodiments, this metadata includes an indication of the parallel nature of the modeling procedure (eg, the degree to which the modeling procedure may be executed in parallel on a plurality of processing nodes). Using resource utilization characteristics and/or parallelism characteristics of a modeling procedure to determine a resource allocation schedule may facilitate efficiently allocating processing resources to a modeling procedure.
일부 실시예에서, 자원 할당 스케줄은 모델링 절차의 실행을 위해 특정된 양의 프로세싱 자원을 할당할 수 있다. 할당 가능한 프로세싱 자원의 양은 사용자에 의해 제공되거나 다른 적절한 소스로부터 얻어질 수 있는 프로세싱 자원 예산에서 특정될 수 있다. 프로세싱 자원 예산은 모델링 절차를 실행하기 위해 사용되는 프로세싱 자원(예를 들어, 사용되는 시간의 양, 사용되는 프로세싱 노드의 수, 데이터 센터 또는 클라우드-기반 프로세싱 자원을 사용하는 데 발생하는 비용 등)에 대한 제한을 부과할 수 있다. 일부 실시예에서, 프로세싱 자원 예산은 특정 예측 문제에 대한 예측 모델을 생성하는 프로세스에 사용되는 총 프로세싱 자원에 제한을 부과할 수 있다.In some embodiments, the resource allocation schedule may allocate a specified amount of processing resources for the execution of the modeling procedure. The amount of allocable processing resources may be specified in the processing resource budget, which may be provided by the user or obtained from other suitable sources. The processing resource budget depends on the processing resources used to execute the modeling procedure (eg, the amount of time used, the number of processing nodes used, the cost of using the data center or cloud-based processing resources, etc.). restrictions may be imposed on In some embodiments, the processing resource budget may impose limits on the total processing resources used in the process of generating a predictive model for a particular predictive problem.
도 3으로 돌아가서, 방법(300)의 단계(340)에서, 자원 할당 스케줄에 따라 선택된 모델링 절차를 실행한 결과가 수신될 수 있다. 이러한 결과는 실행된 모델링 절차에 의해 생성된 하나 이상의 예측 모델을 포함할 수 있다. 일부 실시예에서, 모델링 절차의 실행이 예측 문제와 연관된 하나 이상의 데이터 세트에 예측 모델을 맞추는 것을 포함할 수 있기 때문에, 단계(340)에서 수신된 예측 모델은 예측 문제와 연관된 데이터 세트(들)에 맞춤화된다. 예측 모델을 예측 문제의 데이터 세트(들)에 맞춤화하는 것은 예측 모델을 생성하는 예측 모델링 절차의 하나 이상의 하이-파라미터를 튜닝하는 것, 생성된 예측 모델의 하나 이상의 파라미터를 튜닝하는 것 및/또는 다른 적절한 모델-맞춤 단계를 포함할 수 있다.3 , in
일부 실시예에서, 단계(340)에서 수신된 결과는 예측 문제에 대한 모델의 성능의 평가(예를 들어, 스코어)를 포함한다. 이러한 평가는 예측 문제와 연관된 데이터 세트(들)에 대해 예측 모델을 테스트함으로써 얻을 수 있다. 일부 실시예에서, 예측 모델을 테스트하는 것은 예측 문제와 연관된 트레이닝 데이터 세트의 상이한 폴드(fold)를 사용하여 모델을 상호 유효성 검증하는 것을 포함한다. 일부 실시예에서, 모델링 절차의 실행은 생성된 모델의 테스트를 포함한다. 일부 실시예에서, 생성된 모델의 테스트는 모델링 절차의 실행과는 별개로 수행된다.In some embodiments, the results received at
모델은 적절한 테스트 기술에 따라 테스트되고 적절한 스코어링 메트릭(예를 들어, 목적 함수)에 따라 스코어링될 수 있다. 상이한 스코어링 메트릭은 모델링 정확도(예를 들어, 모델이 예측 문제의 결과를 올바르게 예측하는 비율), 잘못된 긍정 비율(예를 들어, 모델이 "긍정적인" 결과를 올바르지 않게 예측하는 비율), 잘못된 부정 비율(예를 들어, 모델이 "부정적인" 결과를 올바르지 않게 예측하는 비율), 긍정적인 예측값, 부정적인 예측값, 감도, 특이성 등에 한정되지 않지만 이를 포함하는 예측 모델의 성능의 상이한 양태에 대한 상이한 가중치를 둘 수 있다. 사용자는 사용자 인터페이스(120)를 통해 제시된 옵션의 세트, 또는 사용자 인터페이스(120)를 통해 특정한 커스텀 스코어링 메트릭(예를 들어, 커스텀 목적 함수)으로부터 표준 스코어링 메트릭(예를 들어, 적합도(goodness-of-fit), R-스퀘어 등)을 선택할 수 있다. 탐색 엔진(110)은 사용자-선택 또는 사용자-특정 스코어링 메트릭을 사용하여 예측 모델의 성능을 스코어링할 수 있다.The model may be tested according to an appropriate testing technique and scored according to an appropriate scoring metric (eg, an objective function). Different scoring metrics measure modeling accuracy (e.g., the rate at which the model correctly predicts the outcome of a prediction problem), the false positive rate (e.g., the rate at which the model incorrectly predicts a "positive" outcome), and the false negative rate. Different weights can be given to different aspects of the performance of a predictive model, including but not limited to (e.g., the rate at which the model incorrectly predicts a "negative" outcome), positive predictive values, negative predictive values, sensitivity, specificity, etc. have. A user may select a standard scoring metric (eg, goodness-of-fitness) from a set of options presented via
도 3으로 돌아가서, 방법(300)의 단계(350)에서, 예측 모델은 생성된 예측 모델의 평가(예를 들어, 스코어)에 기초하여 예측 문제에 대해 선택될 수 있다. 공간 검색 엔진(110)은 예측 문제에 대한 예측 모델을 선택하기 위해 임의의 적절한 기준을 사용할 수 있다. 일부 실시예에서, 공간 검색 엔진(110)은 최고 스코어를 갖는 모델, 또는 임계 스코어를 초과하는 스코어를 갖는 임의의 모델, 또는 최고 스코어의 특정 범위 내의 스코어를 갖는 임의의 모델을 선택할 수 있다. 일부 실시예에서, 예측 모델의 스코어는 예측 문제에 대한 예측 모델을 선택할 때 공간 탐색 엔진(110)에 의해 고려되는 단 하나의 요인일 수도 있다. 공간 탐색 엔진에 의해 고려되는 다른 요인은 예측 모델의 복잡성, 예측 모델의 연산 요구 등을 포함할 수 있지만, 이에 한정되는 것은 아니다.3 , at
일부 실시예에서, 예측 문제에 대한 예측 모델을 선택하는 것은 예측 모델의 서브세트를 반복적으로 선택하는 것 및 선택된 예측 모델을 데이터 세트의 더 큰 부분 또는 다른 부분에 대해 트레이닝시키는 것을 포함할 수 있다. 이러한 반복 프로세스는, 예측 모델이 예측 문제에 대해 선택될 때까지 또는 예측 모델을 생성하기 위해 예산 책정된 프로세싱 자원이 소진될 때까지 계속될 수 있다.In some embodiments, selecting a predictive model for a predictive problem may include iteratively selecting a subset of the predictive models and training the selected predictive model on a larger or different portion of the data set. This iterative process may continue until a predictive model is selected for the predictive problem or until the processing resources budgeted for generating the predictive model are exhausted.
예측 모델의 서브세트를 선택하는 것은 최고 스코어를 갖는 예측 모델의 부분을 선택하는 것, 임계 스코어를 초과하는 스코어를 갖는 모든 모델을 선택하는 것, 최고-스코어링 모델의 스코어의 특정 범위 내에서 스코어를 갖는 모든 모델을 선택하는 것, 또는 모델의 임의의 다른 적절한 그룹을 선택하는 것을 포함할 수 있다. 일부 실시예에서, 예측 모델의 서브세트를 선택하는 것은 방법(300)의 단계(320)를 참조하여 전술한 바와 같이, 예측 모델링 절차의 서브세트를 선택하는 것과 유사할 수 있다. 따라서, 예측 모델의 서브세트를 선택하는 상세 사항은 여기에서 논하지 않는다.Selecting a subset of predictive models includes selecting the portion of the predictive model with the highest score, selecting all models with scores above a threshold score, and scoring within a certain range of scores of the highest-scoring models. selecting all models with, or selecting any other suitable group of models. In some embodiments, selecting a subset of predictive models may be similar to selecting a subset of a predictive modeling procedure, as described above with reference to step 320 of
선택된 예측 모델을 트레이닝하는 것은 선택된 모델의 트레이닝을 위해 프로세싱 노드의 프로세싱 자원을 할당하는 자원 할당 스케줄을 생성하는 것을 포함할 수 있다. 프로세싱 자원의 할당은 적어도 부분적으로, 선택된 모델을 생성하는 데 사용되는 모델링 기술의 적절성 및/또는 데이터 세트의 다른 샘플에 대한 선택된 모델의 스코어에 기초하여 결정될 수 있다. 선택된 예측 모델을 트레이닝하는 것은 선택된 예측 모델을 데이터 세트의 특정 부분에 맞추기 위해 프로세싱 노드에 명령어를 송신하는 것, 및 맞춤화된 모델 및/또는 맞춤화된 모델의 스코어를 포함하는 트레이닝 프로세스의 결과를 수신하는 것을 더 포함할 수 있다. 일부 실시예에서, 선택된 예측 모델을 트레이닝하는 것은 방법(300)의 단계(320-330)를 참조하여 전술한 바와 같이, 선택된 예측 모델링 절차를 실행하는 것과 유사할 수 있다. 따라서, 선택된 예측 모델을 트레이닝하는 상세 사항은 여기에서 논하지 않는다.Training the selected predictive model may include generating a resource allocation schedule that allocates processing resources of the processing node for training of the selected model. The allocation of processing resources may be determined based, at least in part, on the adequacy of modeling techniques used to generate the selected model and/or the score of the selected model relative to other samples of the data set. Training the selected predictive model includes sending instructions to a processing node to fit the selected predictive model to a particular portion of a data set, and receiving the results of a training process comprising the customized model and/or scores of the customized model. may include more. In some embodiments, training the selected predictive model may be similar to executing the selected predictive modeling procedure, as described above with reference to steps 320 - 330 of
일부 실시예에서, 단계(330 및 340)는, 예측 모델이 예측 문제에 대해 선택될 때까지 또는 예측 모델을 생성하기 위해 예산 책정된 프로세싱 자원이 소진될 때까지 반복적으로 수행될 수 있다. 각 반복의 끝에서, 예측 문제에 대한 예측 모델링 절차의 적절성은 모델링 절차를 실행한 결과에 적어도 부분적으로 기초하여 다시 결정될 수 있으며, 예측 모델링 절차의 새로운 세트가 다음 반복 동안 실행을 위해 선택될 수 있다.In some embodiments,
일부 실시예에서, 단계(330 및 340)의 반복에서 실행되는 모델링 절차의 수는 반복 횟수가 증가함에 따라 감소하는 경향이 있으며, 생성된 모델을 트레이닝 및/또는 테스트하는 데 사용되는 데이터의 양은 반복 횟수가 증가함에 따라 증가하는 경향이 있다. 따라서, 초기 반복은 상대적으로 작은 데이터 세트에 대해 상대적으로 많은 수의 모델링 절차를 실행하여 "넓은 그물을 던질(cast a wide net)" 수 있으며, 이후 반복은 초기 반복 동안 식별된 가장 유망한 모델링 절차의 보다 엄격한 테스트를 수행할 수 있다. 대안적으로 또는 추가적으로, 초기 반복은 검색 공간의 보다 거친(coarse-grained) 평가를 구현할 수 있으며, 이후 반복은 가장 유망한 것으로 결정된 검색 공간의 부분의 보다 세분화된(fine-grained) 평가를 구현할 수 있다.In some embodiments, the number of modeling procedures executed in iterations of
일부 실시예에서, 방법(300)은 도 3에 나타내지 않은 하나 이상의 단계를 포함한다. 방법(300)의 추가 단계는 예측 문제와 연관된 데이터 세트를 프로세싱하고, 혼합된 예측 모델을 형성하기 위해 2개 이상의 예측 모델을 혼합하고, 및/또는 예측 문제에 대해 선택된 예측 모델을 튜닝하는 단계를 포함할 수 있다. 이들 단계의 일부 실시예가 아래에서 더욱 상세하게 설명된다.In some embodiments,
방법(300)은 예측 문제와 연관된 데이터 세트가 프로세싱되는 단계를 포함할 수 있다. 일부 실시예에서, 예측 문제의 데이터 세트를 프로세싱하는 단계는 데이터 세트를 특성화하는 것을 포함한다. 데이터 세트의 특성화는 데이터 누락을 식별하는 것(예를 들어, 데이터 세트가 타겟과 강하게 상관되는 피처를 포함하지만, 피처의 값이 예측 문제에 의해 부과되는 조건 하에서 예측 문제에 대한 입력으로서 이용 가능하지 않은 시나리오), 누락 관측치를 검출하는 것, 누락 변수값을 검출하는 것, 아웃라잉 변수값을 식별하는 것 및/또는 중요한 예측값("중요 변수")를 가질 가능성이 있는 변수를 식별하는 것에 한정되지 않지만 이를 포함하는 데이터 세트로 잠재적 문제를 식별하는 것을 포함할 수 있다.
일부 실시예에서, 예측 문제의 데이터 세트를 프로세싱하는 것은 데이터 세트에 피처 엔지니어링을 적용하는 것을 포함한다. 데이터 세트에 피처 엔지니어링을 적용하는 것은 2개 이상의 피처를 조합하고 구성 피처를 조합된 피처로 대체하고, 날짜/시간 변수의 다른 양태(예를 들어, 시간 및 계절 정보)를 별도의 변수로 추출하고, 변수 값을 정규화하고, 누락된 변수 값을 채우는 것을 포함할 수 있다.In some embodiments, processing the data set of the prediction problem comprises applying feature engineering to the data set. Applying feature engineering to a data set involves combining two or more features, replacing constituent features with the combined features, extracting different aspects of date/time variables (e.g., time and seasonal information) as separate variables, and , normalizing variable values, and filling in missing variable values.
방법(300)은, 2개 이상의 예측 모델이 혼합되어 혼합된 예측 모델을 형성하는 단계를 포함할 수 있다. 혼합 단계는 예측 모델링 기술을 실행하고 생성된 예측 모델을 평가하는 것과 관련하여 반복적으로 수행될 수 있다. 일부 실시예에서, 혼합 단계는 실행/평가 반복의 일부에서만(예를 들어, 복수의 유망한 예측 모델이 생성된 이후의 반복에서) 수행될 수 있다.
구성 모델의 출력을 조합함으로써 2개 이상의 모델이 혼합될 수 있다. 일부 실시예에서, 혼합된 모델은 구성 모델의 출력의 가중화된 선형 조합을 포함할 수 있다. 혼합된 예측 모델은, 특히 다른 구성 모델이 상보적인 경우에, 구성 예측 모델보다 더욱 양호하게 수행할 수 있다. 예를 들어, 구성 모델이 예측 문제의 데이터 세트의 상이한 부분에 대해 잘 수행되는 경향이 있을 때, 모델의 혼합이 다른(예를 들어, 유사한) 예측 문제에 대해 잘 수행되었을 때, 모델을 생성하는 데 사용되는 모델 기술이 비유사할 때(예를 들어, 하나의 모델은 선형 모델이고 다른 모델은 트리 모델임) 등의 경우에, 혼합된 모델이 잘 수행되는 것으로 예상될 수 있다. 일부 실시예에서, 혼합될 구성 모델들은 (예를 들어, 사용자의 직관과 경험에 기초하여) 사용자에 의해 식별된다.Two or more models can be mixed by combining the outputs of the constituent models. In some embodiments, the blended model may include a weighted linear combination of the outputs of the constituent models. A mixed predictive model may perform better than a constituent predictive model, especially when the other constituent models are complementary. For example, when a constitutive model tends to perform well on different parts of the data set of a prediction problem, when a mixture of models performs well on different (e.g., similar) prediction problems, creating a model Mixed models can be expected to perform well, such as when the model techniques used are dissimilar (eg, one model is a linear model and the other is a tree model). In some embodiments, the constituent models to be blended are identified by the user (eg, based on the user's intuition and experience).
방법(300)은 예측 문제에 대해 선택된 예측 모델이 튜닝되는 단계를 포함할 수 있다. 일부 경우, 배치 엔진(140)은 사용자에게 예측 모델을 구현하는 소스 코드를 제공하며, 이에 의해 사용자가 예측 모델을 튜닝할 수 있게 한다. 그러나, 예측 모델의 소스 코드를 공개하는 것은 일부 경우(예를 들어, 예측 모델링 기술 또는 예측 모델이 독점 기능 또는 정보를 포함하는 경우)에 바람직하지 않을 수 있다. 사용자가 모델의 소스 코드를 노출시키지 않고 예측 모델을 튜닝하도록 허용하기 위해, 배치 엔진(140)은 예측 모델의 표현(예를 들어, 수학적 표현)에 기초하여 모델의 파라미터를 튜닝하기 위한 인간 판독 가능한 규칙을 구성할 수 있고, 인간 판독 가능한 규칙을 사용자에게 제공할 수 있다. 그 후, 사용자는 모델의 소스 코드에 액세스하지 않고 인간 판독 가능한 규칙을 사용하여 모델의 파라미터를 튜닝할 수 있다. 따라서, 예측 모델링 시스템(100)은 독점 모델링 기술에 대한 소스 코드를 최종 사용자에게 노출시키지 않고 독점 예측 모델링 기술의 평가 및 튜닝을 지원할 수 있다.
일부 실시예에서, 예측 모델링 절차에 대응하는 머신-실행 가능 템플릿은 리던던트 연산을 감소시키기 위한 효율성-향상 피처를 포함할 수 있다. 이러한 효율성-향상 피처는, 검색 공간을 탐색하고 예측 모델을 생성하기 위해 상대적으로 적은 양의 프로세싱 자원이 예산 책정되는 경우 특히 가치 있을 수 있다. 전술한 바와 같이, 머신-실행 가능 템플릿은 대응하는 모델링 요소(예를 들어, 기술, 작업 또는 하위-작업)에 대한 고유 ID를 저장할 수 있다. 또한, 예측 모델링 시스템(100)은 데이터 세트 샘플 S에 고유 ID를 할당할 수 있다. 일부 실시예에서, 머신-실행 가능 템플릿 T가 데이터 세트 샘플 S 상에서 실행될 때, 템플릿은 그 모델링 요소 ID, 데이터 세트/샘플 ID 및 데이터 샘플 상에서 템플릿을 실행한 결과를 다른 템플릿에 액세스할 수 있는 저장 구조체(예를 들어, 테이블, 캐시, 해시 등)에 저장한다. 템플릿 T가 데이터 세트 샘플 S 상에서 호출될 때, 템플릿은 저장 구조체를 확인하여, 해당 데이터 세트 샘플 상에서 해당 템플릿을 실행한 결과가 이미 저장되어 있는지 여부를 결정한다. 저장되어 있다면, 동일한 결과를 얻기 위해 데이터 세트 샘플을 다시 프로세싱하는 것이 아니라, 템플릿은 저장 구조체로부터 대응 결과를 단순히 리트리빙하고 그 결과를 반환한 다음 종료한다. 저장 구조체는 모델링 절차가 실행되는 루프의 개별 반복 내에서, 절차-실행 루프의 복수의 반복에 걸쳐, 또는 복수의 검색 공간 탐색에 걸쳐 지속될 수 있다. 많은 작업과 하위-작업이 상이한 모델링 기술에 의해 공유되기 때문에 이러한 효율성-향상 피처를 통해 달성된 연산 절감이 상당할 수 있으며, 방법(300)은 종종 동일한 데이터 세트에 대해 상이한 모델링 기술을 실행하는 것을 포함한다.In some embodiments, a machine-executable template corresponding to a predictive modeling procedure may include efficiency-enhancing features to reduce redundant operations. This efficiency-enhancing feature can be particularly valuable when relatively small amounts of processing resources are budgeted for exploring the search space and generating predictive models. As described above, a machine-executable template may store a unique ID for a corresponding modeling element (eg, a skill, task, or sub-task). In addition, the
도 4는 일부 실시예에 따라 예측 문제에 대한 예측 모델을 선택하기 위한 방법(400)의 흐름도를 나타낸다. 방법(300)은 방법(400)의 예에 의해 구현될 수 있다.4 illustrates a flow diagram of a
도 4의 예에서, 공간 검색 엔진(110)은 모델링 방법 라이브러리(212), 모델링 기술 라이브러리(130) 및 모델링 작업 라이브러리(232)를 사용하여 예측 모델링 문제에 대한 해결책을 위해 이용 가능한 모델링 기술의 공간을 탐색한다. 초기에, 사용자는 라이브러리(212)로부터 모델링 방법을 선택할 수 있거나, 공간 검색 엔진(110)이 디폴트 모델링 방법을 자동으로 선택할 수 있다. 이용 가능한 모델링 방법은 연역적 규칙의 적용에 기초한 모델링 기술의 선택, 유사한 예측 문제에 대한 유사한 모델링 기술의 성능에 기초한 모델링 기술의 선택, 메타 머신-학습 모델의 출력에 기초한 모델링 기술의 선택, 전술한 모델링 기술의 임의의 조합, 또는 다른 적절한 모델링 기술을 포함할 수 있지만 이에 한정되지 않는다.In the example of FIG. 4 , the
방법(400)의 단계(402)에서, 탐색 엔진(110)은 해결될 예측 모델링 문제에 대한 데이터 세트를 선택할 것을 사용자에게 촉구한다. 사용자는 이전에 로드된 데이터 세트로부터 선택하거나 다른 정보 시스템으로부터 데이터를 리트리빙하기 위한 파일 또는 명령어로부터 새로운 데이터 세트를 생성할 수 있다. 파일의 경우에, 탐색 엔진(110)은 쉼표로 분리된 값, 탭-구분된, 확장 마크업 언어(XML: cXtensible Markup Language), JavaScript Object Notation, 원시 데이터베이스 파일 등에 한정되지 않지만 이를 포함하는 하나 이상의 포맷을 지원할 수 있다. 명령어의 경우에, 사용자는 정보 시스템의 유형, 그 네트워크 주소, 액세스 크리덴셜, 각각의 시스템 내의 데이터의 서브세트에 대한 참조 및 타겟 데이터 스키마를 원하는 데이터 세트 스키마에 매핑하기 위한 규칙을 특정할 수 있다. 이러한 정보 시스템은 데이터베이스, 데이터 웨어하우스, 데이터 통합 서비스, 분산 애플리케이션, 웹 서비스 등을 포함할 수 있지만 이에 한정되지 않는다.At
방법(400)의 단계(404)에서, 탐색 엔진(110)은 (예를 들어, 특정된 파일을 판독하거나 특정된 정보 시스템에 액세스함으로써) 데이터를 로딩한다. 내부적으로, 탐색 엔진(110)은 하나의 축 상의 피처 및 다른 축 상의 관측치를 갖는 2차원 매트릭스를 구성할 수 있다. 개념적으로, 매트릭스의 각 열은 변수에 대응할 수 있고, 매트릭스의 각각의 행은 관측치에 대응할 수 있다. 탐색 엔진(110)은 원본 소스로부터 얻어진 메타데이터(예를 들어, 명시적으로 특정된 데이터 유형) 및/또는 로딩 프로세스 중에 생성된 메타데이터(예를 들어, 변수의 명백한 데이터 유형; 변수가 서수, 기수 또는 인터프리팅된 유형으로 보이는지 여부 등)를 포함하는 관련 메타데이터를 변수에 첨부할 수 있다.At
방법(400)의 단계(406)에서, 탐색 엔진(110)은 변수들 중 어느 것이 타겟인지 및/또는 어느 것이 피처인지를 식별할 것을 사용자에게 촉구한다. 일부 실시예에서, 탐색 엔진(110)은 또한 사용자에게 모델을 스코어링하는 데 사용되는 모델 성능의 메트릭(예를 들어, 탐색 엔진(110)에 의해 구현되는 통계적 학습 알고리즘에 의해, 통계적 최적화 기술의 관점에서 최적화되는 모델 성능의 메트릭)을 식별할 것을 촉구한다.At
방법(400)의 단계(408)에서, 탐색 엔진(110)은 데이터 세트를 평가한다. 이 평가는 데이터 세트의 특성을 계산하는 것을 포함할 수 있다. 일부 실시예에서, 이 평가는 데이터 세트의 분석을 수행하는 것을 포함하며, 이는 사용자가 예측 문제를 더 잘 이해하는 것을 도울 수 있다. 이러한 분석은 문제가 되는 변수(예를 들어, 아웃라이어 또는 인라이어를 갖는 변수)를 식별하기 위해 하나 이상의 알고리즘을 적용하는 것, 변수 중요도를 결정하는 것, 변수 효과를 결정하는 것 및 효과 핫스팟(hotspot)을 식별하는 것을 포함할 수 있다.At
데이터 세트의 분석은 임의의 적절한 기술을 사용하여 수행될 수 있다. 각각의 피처가 타겟을 예측하는 데 갖는 중요성의 정도를 측정하는 변수 중요도는 "그래디언트 부스티드 트리(gradient boosted tree)", Breiman 및 Cutler의 "랜덤 포리스트(Random Forest)", "교번 조건 기대" 및/또는 다른 적절한 기술을 사용하여 분석될 수 있다. 피처가 타겟에 미치는 효과의 방향과 크기를 측정하는 변수 효과는 "정규화된 회귀", "로지스틱 회귀" 및/또는 다른 적절한 기술을 사용하여 분석될 수 있다. 피처가 타겟을 예측할 때 가장 많은 정보를 제공하는 범위를 식별하는 효과 핫스팟은 "RuleFit"알고리즘 및/또는 다른 적절한 기술을 사용하여 분석될 수 있다.Analysis of the data set may be performed using any suitable technique. Variable importance, which measures the degree of importance each feature has in predicting its target, is a "gradient boosted tree", Breiman and Cutler's "Random Forest", "alternating condition expectation" and and/or analyzed using other suitable techniques. Variable effects that measure the direction and magnitude of the effect of a feature on a target may be analyzed using "normalized regression", "logistic regression" and/or other suitable techniques. Effect hotspots that identify the extent to which a feature provides the most information when predicting a target may be analyzed using the "RuleFit" algorithm and/or other suitable techniques.
일부 실시예에서, 원본 데이터 세트에 포함된 피처의 중요도를 평가하는 것에 추가하여, 방법(400)의 단계(408)에서 수행되는 평가는 피처 생성을 포함한다. 피처 생성 기술은 데이터 세트의 변수의 논리적 유형을 인터프리팅하고 다양한 변환을 변수에 적용하여 추가 피처를 생성하는 것을 포함할 수 있다. 변환의 예는 숫자 피처에 대한 다항식 및 로그 변환을 포함하지만 이에 한정되지 않는다. 인터프리팅된 변수(예를 들어, 날짜, 시간, 통화, 측정 단위, 백분율 및 위치 좌표)의 경우, 변환의 예는 예측 파워에 대한 날짜의 각각의 양태를 테스트하기 위해 날짜 스트링을 연속적인 시간 변수, 요일, 월 및 계절로 파싱하는 것을 포함하지만 이에 한정되지 않는다.In some embodiments, in addition to evaluating the importance of features included in the original data set, the evaluation performed at
잠재적인 예측 모델링 기술로 그 체계적인 테스트에 선행하는 수치 및/또는 인터프리팅된 변수의 체계적인 변환은 예측 모델링 시스템(100)이 잠재적인 모델 공간을 더 검색하고 더 정밀한 예측을 달성할 수 있게 한다. 예를 들어 "날짜/시간"의 경우, 시간 정보와 계절 정보를 별도의 피처로 분리하는 것은, 이러한 개별 피처가 종종 타겟 변수와 매우 다른 관계를 나타내기 때문에 매우 유용할 수 있다.Systematic transformation of numerical and/or interpreted variables that precede systematic testing of potential predictive modeling techniques enables
원래 피처를 인터프리팅하고 변환함으로써 유도된 피처를 생성하는 것은 원래의 데이터 세트의 차원을 증가시킬 수 있다. 예측 모델링 시스템(100)은 데이터 세트의 차원의 증가를 상쇄시킬 수 있는 차원 감소 기술을 적용할 수 있다. 그러나, 일부 모델링 기술은 다른 모델링 기술보다 차원에 더 민감하다. 또한, 다른 차원 감소 기술은 다른 기술보다 일부 모델링 기술로 더 잘 작동하는 경향이 있다. 일부 실시예에서, 예측 모델링 시스템(100)은 이들 상호 작용을 설명하는 메타데이터를 유지한다. 시스템(100)은 메타데이터가 나타내는 성공 가능성이 가장 높은 조합을 우선화하는 차원 감소 기술과 모델링 기술의 다양한 조합을 체계적으로 평가할 수 있다. 시스템(100)은 시간 경과에 따른 조합의 경험적 성능에 기초하여 이 메타데이터를 추가로 갱신할 수 있고 새로운 차원 감소 기술이 발견될 때 이를 통합할 수 있다.Generating derived features by interpreting and transforming the original features can increase the dimensionality of the original data set. The
방법(400)의 단계(410)에서, 예측 모델링 시스템(100)은 사용자에게 데이터 세트 평가의 결과(예를 들어, 데이터 세트 분석의 결과, 데이터 세트의 특성 및/또는 데이터 세트 변환의 결과)를 제시한다. 일부 실시예에서, 데이터 세트 평가의 결과는 (예를 들어, 그래프 및/또는 테이블을 사용하여) 사용자 인터페이스(120)를 통해 제시된다.At
방법(400)의 단계(412)에서, 사용자는 (예를 들어, 데이터 세트 평가의 결과에 기초하여) 데이터 세트를 정제할 수 있다. 이러한 정제는 하나 이상의 피처에 대한 누락값 또는 아웃라이어를 처리하고, 인터프리팅된 변수의 유형을 변경하고, 고려 중인 변환을 변경하고, 고려에서 피처를 제거하고, 특정 값을 직접 편집하고, 함수를 사용하여 피처를 변환하고, 공식을 사용하여 피처의 값을 조합하고, 완전히 새로운 피처를 데이터 세트에 추가하는 등을 위한 선택 방법을 포함할 수 있다.At
방법(400)의 단계(402-412)는 방법(300)의 일부 실시예와 관련하여 전술한 바와 같이, 예측 문제의 데이터 세트를 프로세싱하는 단계의 일 실시예를 나타낼 수 있다.Steps 402 - 412 of
방법(400)의 단계(414)에서, 검색 공간 엔진(100)은 모델링 기술 라이브러리(130)로부터 이용 가능한 모델링 기술을 로드할 수 있다. 어떤 모델링 기술이 이용 가능한지의 결정은 선택된 모델링 방법에 따를 수 있다. 일부 실시예에서, 모델링 기술의 로드는 방법(400)의 하나 이상의 단계(402-412)와 병렬로 발생할 수 있다.At
방법(400)의 단계(416)에서, 사용자는 수동 모드 또는 자동 모드에서 모델링 해결책에 대한 검색을 시작하도록 탐색 엔진(110)에 명령한다. 자동 모드에서, 탐색 엔진(110)은 디폴트 샘플링 알고리즘을 사용하여 데이터 세트를 분할하고(단계(418)), 디폴트 우선 순위 알고리즘을 사용하여 모델링 기술에 우선 순위화한다(단계(420)). 모델링 기술의 우선 순위화는 예측 문제에 대한 모델링 기술의 적절성을 결정하고, 그 결정된 적절성에 기초하여 실행을 위한 모델링 기술의 적어도 서브세트를 선택하는 것을 포함할 수 있다.At
수동 모드에서, 탐색 엔진(110)은 데이터 분할을 제시하고(단계(422)), 모델링 기술의 우선 순위를 제시한다(단계(424)). 사용자는 제시된 데이터 분할을 수용하거나 커스텀 분할을 특정할 수 있다(단계(426)). 마찬가지로, 사용자는 모델링 기술의 제시된 우선 순위를 수용하거나 모델링 기술의 커스텀 우선 순위를 특정할 수 있다(단계(428)). 일부 실시예에서, 사용자는, 탐색 엔진(110)이 모델링 기술의 실행을 시작하기 전에 (예를 들어, 모델링 기술 빌더(220) 및/또는 모델링 작업 빌더(230)를 사용하여) 하나 이상의 모델링 기술을 수정할 수 있다(단계(430)).In the manual mode, the
상호 유효성 검증을 용이하게 하기 위해, 예측 모델링 시스템(100)은 데이터 세트를 K "폴드"로 분할(또는 데이터 세트의 분할을 제안)할 수 있다. 상호 유효성 검증은 각각의 맞춤화 중에 상이한 폴드가 테스트 세트로의 역할을 하고 나머지 폴드가 트레이닝 세트로서의 역할을 하도록 분할된 데이터 세트에 예측 모델을 K회 맞춤화하는 것을 포함한다. 상호 유효성 검증은, 예측 모델의 정확도가 상이한 트레이닝 데이터에 따라 어떻게 변하는지에 대한 유용한 정보를 생성할 수 있다. 단계(418 및 422)에서, 예측 모델링 시스템은 데이터 세트를 K개의 폴드로 분할할 수 있으며, 여기서 폴드의 수 K는 디폴트 파라미터이다. 단계(426)에서, 사용자는 폴드의 수 K를 변경하거나 상호 유효성 검증의 사용을 모두 취소할 수 있다.To facilitate cross-validation,
예측 모델의 엄격한 테스트를 용이하게 하기 위해, 예측 모델링 시스템(100)은 트레이닝 세트 및 "홀드아웃(holdout)" 테스트 세트로 데이터 세트를 분할(또는 데이터 세트의 분할을 제시)할 수 있다. 일부 실시예에서, 트레이닝 세트는 상호 유효성 검증을 위해 K 폴드로 추가로 분할된다. 트레이닝 세트는 예측 모델을 트레이닝하고 평가하는 데 사용될 수 있지만, 홀드아웃 테스트 세트는 예측 모델을 테스트하기 위해 엄격하게 보존될 수 있다. 일부 실시예에서, 예측 모델링 시스템(100)은 지정된 권한 및/또는 크리덴셜(credential)을 가진 사용자가 이를 해제할 때까지 홀드아웃 테스트를 액세스 불가능하게 설정함으로써 테스트용(트레이닝용이 아님) 홀드아웃 테스트 세트의 사용을 강하게 실시할 수 있다. 단계(418 및 422)에서, 예측 모델링 시스템(100)은, 데이터 세트의 디폴트 퍼센티지가 홀드아웃 세트에 예약되도록 데이터 세트를 분할할 수 있다. 단계(426)에서, 사용자는 홀드아웃 세트에 예약된 데이터 세트의 퍼센티지를 변경하거나, 홀드아웃 세트의 사용을 모두 취소할 수 있다.To facilitate rigorous testing of predictive models,
일부 실시예에서, 예측 모델링 시스템(100)은 모델링 검색 공간의 평가 동안 컴퓨팅 자원의 효율적인 사용을 용이하게 하기 위해 데이터 세트를 분할한다. 예를 들어, 예측 모델링 시스템(100)은 데이터 세트의 상호 유효성 검증 폴드를 더 작은 샘플로 분할할 수 있다. 예측 모델이 맞춤화되는 데이터 샘플의 크기를 감소시키는 것은 상이한 다른 모델링 기술의 상대적 성능을 평가하는 데 필요한 컴퓨팅 자원의 양을 감소시킬 수 있다. 일부 실시예에서, 더 작은 샘플은 폴드의 데이터의 랜덤 샘플을 취함으로써 생성될 수 있다. 마찬가지로, 예측 모델이 맞춤화되는 데이터 샘플의 크기를 감소시키는 것은 예측 모델의 파라미터 또는 모델링 기술의 하이퍼-파라미터를 튜닝하는 데 필요한 컴퓨팅 자원의 양을 감소시킬 수 있다. 하이퍼-파라미터는 모델 맞춤 프로세스의 속도, 효율성 및/또는 정확도에 영향을 줄 수 있는 모델링 기술의 변수 설정을 포함한다. 하이퍼-파라미터의 예는 탄성-네트 모델의 페널티 파라미터, 그래디언트 부스티드 트리 모델의 트리의 수, 최근접 이웃 모델의 이웃의 수를 포함하지만 이에 한정되지 않는다.In some embodiments, the
방법(400)의 단계(432-458)에서, 선택된 모델링 기술은 검색 공간을 평가하기 위해 분할된 데이터를 사용하여 실행될 수 있다. 이 단계는 아래에서 더욱 상세히 설명된다. 편의상, 데이터 파티셔닝과 관련된 검색 공간의 평가의 일부 양태가 다음 단락에서 설명된다.At steps 432-458 of
상호 유효성 검증 폴드의 테스트 세트를 포함하는 샘플 데이터를 사용하여 하이퍼-파라미터를 튜닝하는 것은 모델 초과-맞춤으로 이어질 수 있고, 이에 의해 상이한 모델의 성능의 비교를 신뢰할 수 없게 만든다. "특정 접근법"을 사용하는 것이 이 문제를 피하는 것을 도울 수 있으며, 몇몇 다른 중요한 이점을 제공할 수 있다. 따라서, 탐색 엔진(110)의 몇몇 실시예는 "네스팅된(nested) 상호 유효성 검증" 기술을 구현하며, 이에 의해 k-폴드 크로스 검증의 2개의 루프가 적용된다. 외부 루프는 주어진 모델을 다른 모델과 비교하고 장래의 샘플 상에서 각 모델의 예측을 교정하는 것 모두를 위한 테스트 세트를 제공한다. 내부 루프는 주어진 모델의 하이퍼-파라미터를 튜닝하기 위한 테스트 세트 및 도출된 피처에 대한 트레이닝 세트 모두를 제공한다.Tuning hyper-parameters using sample data comprising a test set of mutual validation folds can lead to model over-fitting, thereby making comparisons of the performance of different models unreliable. Using a “specific approach” can help avoid this problem, and can provide several other important advantages. Accordingly, some embodiments of
또한, 내부 루프에서 생성된 상호 유효성 검증 예측은 복수의 상이한 모델을 조합하는 혼합 기술을 용이하게 할 수 있다. 일부 실시예에서, 혼합기로의 입력은 샘플 외부의 모델로부터의 예측이다. 샘플 내 모델로부터의 예측을 사용하는 것은 일부 혼합 알고리즘과 함께 사용되면 초과-맞춤으로 귀결될 수 있다. 네스팅된 상호 유효성 검증을 일관되게 적용하기 위한 잘 정의된 프로세스 없이는, 가장 경험이 많은 사용자조차도 단계를 생략하거나 올바르지 않게 구현할 수 있다. 따라서, k-폴드 크로스 검증의 이중 루프의 적용은 예측 모델링 시스템(100)이 이하의 5개의 중요한 목적을 동시에 달성할 수 있게 한다: (1) 다수의 하이퍼-파라미터를 갖는 복잡한 모델을 튜닝 (2) 정보가 있는 도출된 피처를 개발, (3) 2 이상의 모델의 혼합을 튜닝, (4) 단일 및/또는 혼합 모델의 예측을 교정, 및 (5) 상이한 모델을 정확하게 비교할 수 있는 순수한 접촉되지 않은 테스트 세트를 유지.Additionally, mutually validated predictions generated in inner loops can facilitate mixing techniques that combine multiple different models. In some embodiments, the input to the mixer is a prediction from a model outside the sample. Using predictions from in-sample models can result in over-fitting when used with some blending algorithms. Without a well-defined process for consistently applying nested mutual validation, even the most experienced users can omit steps or implement them incorrectly. Thus, application of the double loop of k-fold cross validation enables the
방법(400)의 단계(432)에서, 탐색 엔진(110)은 선택된 모델링 기술의 초기 세트의 실행을 위한 자원 할당 스케줄을 생성한다. 자원 할당 스케줄에 의해 나타내어지는 자원의 할당은 모델링 기술의 우선 순위, 분할된 데이터 샘플 및 이용 가능한 연산 자원에 기초하여 결정될 수 있다. 일부 실시예에서, 탐색 엔진(110)은 선택된 모델링 기술에 그리디어하게(greedily) 자원을 할당한다(예를 들어, 연산 자원을 아직 실행하지 않은 최고-우선 순위 모델링 기술에 차례로 할당함).At
방법(400)의 단계(434)에서, 탐색 엔진(110)은 자원 할당 스케줄에 따라 모델링 기술의 실행을 개시한다. 일부 실시예에서, 모델링 기술의 세트의 실행은 데이터 세트로부터 추출된 동일한 데이터 샘플에 대해 하나 이상의 모델을 트레이닝하는 것을 포함할 수 있다.At
방법(400)의 단계(436)에서, 탐색 엔진(110)은 모델링 기술의 실행 상태를 모니터링한다. 모델링 기술이 실행을 끝내면, 탐색 엔진(110)은 대응 데이터 샘플에 대한 맞춤화된 모델 및/또는 모델 맞춤의 메트릭을 포함할 수 있는 결과를 수집한다(단계(438)). 이러한 메트릭은 지니(Gini) 계수, r-스퀘어드, 잔류 평균 제곱 에러(residual mean squared error), 그 임의의 변형 등에 한정되지 않지만 이를 포함하는 맞춤화를 수행하는 기본 소프트웨어 컴포넌트로부터 추출될 수 있는 임의의 메트릭을 포함할 수 있다.At
방법(400)의 단계(440)에서, 탐색 엔진(110)은 (예를 들어, 모델 맞춤 메트릭에 따라 생성한 모델의 성능에 기초한) 고려 사항으로부터 최악의-수행 모델링 기술을 제거한다. 탐색 엔진(110)은 모델 맞춤 메트릭의 최소 임계값을 만족하는 모델을 생성하지 않는 것을 제거하거나, 생성되는 모든 모델의 톱 부분에서 현재 모델을 생성한 것을 제외한 모든 모델링 기술을 제거하거나 톱 모델의 특정 범위 내에 있는 모델을 생성하지 않은 임의의 모델링 기술을 제거하는 것에 한정되지 않지만 이를 포함하여, 적절한 기술을 사용하여 어떠한 모델링 기술을 제거할 것인지를 결정할 수 있다. 일부 실시예에서, 상이한 절차가 평가의 상이한 단계에서 모델링 기술을 제거하기 위해 사용될 수 있다. 일부 실시예에서, 사용자는 상이한 모델링 문제에 대해 상이한 제거 기술을 특정하도록 허용될 수 있다. 일부 실시예에서, 사용자는 커스텀 제거 기술을 구축하고 사용하도록 허용될 수 있다. 일부 실시예에서, 메타-통계-학습 기술이 제거-기술 중에서 선택하고 및/또는 이들 기술의 파라미터를 조정하는 데 사용될 수 있다.At
탐색 엔진(110)이 모델 성능을 계산하고 고려 사항으로부터 모델링 기술을 제거함에 따라, 예측 모델링 시스템(100)은 사용자 인터페이스(120)를 통해 사용자에게 검색 공간 평가의 진행을 제시할 수 있다(단계(442)). 일부 실시예에서, 단계(444)에서, 탐색 엔진(110)은 사용자로 하여금 검색 공간 평가의 진행, 사용자의 전문 지식 및/또는 다른 적절한 정보에 기초하여 검색 공간을 평가하는 프로세스를 수정할 수 있게 한다. 사용자가 검색 공간 평가 프로세스에 대한 수정을 특정하면, 공간 평가 엔진(110)은 그에 따라 프로세싱 자원을 재할당한다(예를 들어, 어떠한 작업(job)이 영향을 받는지를 결정하고, 이를 스케줄링 큐(queue) 내에서 이동시키거나 큐로부터 삭제함). 다른 작업은 이전과 같이 프로세싱을 계속한다.As the
사용자는 많은 다른 방식으로 검색 공간 평가 프로세스를 수정할 수 있다. 예를 들어, 사용자는, 선택된 메트릭에 대해 생성한 모델의 성능이 양호했던 경우에도, 일부 모델링 기술의 우선 순위를 줄이거나 일부 모델링 기술을 고려 사항으로부터 제거할 수 있다. 다른 예로서, 사용자는, 생성한 모델링의 성능이 열등했던 경우에도, 일부 모델링 기술의 우선 순위를 높이거나 일부 모델링 기술을 고려 사흥으로 선택할 수 있다. 다른 예로서, 다른 예로서, 사용자는 특정 모델의 평가 또는 특정된 모델링 기술의 실행을 추가 데이터 샘플에 대해 우선 순위화할 수 있다. 다른 예로서, 사용자는 하나 이상의 모델링 기술을 수정하고 수정된 기술을 고려 사항으로 선택할 수 있다. 다른 예로서, 사용자는 (예를 들어, 피처를 추가하거나, 피처를 제거하거나, 상이한 피처를 선택함으로써) 모델링 기술을 트레이닝하거나 모델을 맞춤화하는 데 사용되는 피처를 변경할 수 있다. 이러한 변경은, 결과가 피처의 크기가 정규화를 필요로 하거나 피처의 일부가 "데이터 누락"을 나타내는 경우, 유용할 수 있다.Users can modify the search space evaluation process in many different ways. For example, a user may reduce the priority of some modeling techniques or remove some modeling techniques from consideration, even if the performance of the model generated for the selected metric was good. As another example, even when the performance of the generated modeling was inferior, the user may increase the priority of some modeling techniques or select some modeling techniques as considerations. As another example, as another example, a user may prioritize evaluation of a particular model or execution of a specified modeling technique over additional data samples. As another example, a user may modify one or more modeling techniques and select the modified techniques for consideration. As another example, a user may change features used to customize a model or train modeling techniques (eg, by adding features, removing features, or selecting different features). This change can be useful if the results indicate that the size of the features needs normalization or that some of the features are "missing data".
일부 실시예에서, 단계(432-444)는 반복적으로 수행될 수 있다. (예를 들어, 단계(440)에서의 시스템 또는 단계(444)에서의 사용자에 의해) 제거되지 않은 모델링 기술은 또 다른 반복에서 생존한다. 이전 반복(또는 반복들)에서 생성된 모델의 성능에 기초하여, 탐색 엔진(110)은 대응하는 모델링 기술의 우선 순위를 조정하고 이에 따라 프로세싱 자원을 모델링 기술에 할당한다. 연산 자원이 이용 가능해지면, 엔진은 이용 가능한 자원을 사용하여 갱신된 우선 순위에 기초하여 모델-기술-실행 작업을 론칭한다.In some embodiments, steps 432-444 may be performed iteratively. Modeling techniques that are not removed (eg, by the system at
일부 실시예에서, 단계(432)에서, 탐색 엔진(110)은 (예를 들어, 혼합기에 포함시키기 위한 단계적 모델 선택을 사용하여) 상이한 수학적 조합을 사용하여 복수의 모델을 "혼합(blend)"하여 새로운 모델을 생성할 수 있다. 일부 실시예에서, 예측 모델링 시스템(100)은, 사용자가 그 자신의 자동 혼합 기술을 플러그인할 수 있게 하는 모듈형 프레임워크를 제공한다. 일부 실시예에서, 예측 모델링 시스템(100)은, 사용자가 상이한 모델 혼합을 수동으로 특정할 수 있게 한다.In some embodiments, at
일부 실시예에서, 예측 모델링 시스템(100)은 혼합된 예측 모델을 개발할 때 하나 이상의 이점을 제공할 수 있다. 첫째, 매우 다양한 후보 모델이 혼합하는 데 이용 가능한 경우 혼합은 더 효과적일 수 있다. 또한, 후보 모델 간의 차이가 알고리즘의 단순히 사소한 변화가 아니라 선형 모델, 트리-기반 모델, 지원 벡터 머신 및 최근접 이웃 분류 중에서와 같이 접근에 있어 주요한 차이에 대응할 때, 혼합은 더 효과적일 수 있다. 예측 모델링 시스템(100)은 광범위하게 다양한 모델을 자동으로 생성하고 후보 모델이 어떻게 다른지를 기술하는 메타데이터를 유지함으로써 실질적인 선두 시작을 전달할 수 있다. 예측 모델링 시스템(100)은 또한 예를 들어, 후보 모델들에 걸쳐 변수의 스케일을 자동으로 정규화함으로써 임의의 모델이 혼합된 모델에 통합될 수 있게 하는 프레임워크를 제공할 수 있다. 이 프레임워크는, 사용자가 자동으로 생성된 모델에 사용자 자신이 맞춤화한 또는 독립적으로 생성된 모델을 용이하게 추가할 수 있게 하여 다양성을 더욱 높일 수 있다.In some embodiments,
혼합에 이용 가능한 후보 모델의 다양성을 증가시키는 것에 추가하여, 예측 모델링 시스템(100)은 우수한 혼합을 초래할 수 있는 다수의 사용자 인터페이스 피처 및 분석 피처를 또한 제공한다. 우선, 사용자 인터페이스(120)는 후보 모델 맞춤 및 이중 리프트 차트(dual lift chart)와 같은 그래픽의 몇몇 다른 대안적인 측정을 포함하는 상호 작용 모델 비교를 제공할 수 있어, 사용자가 혼합을 위한 정확하고 상보적인 모델을 용이하게 식별할 수 있다. 둘째, 모델링 시스템(100)은 사용자에게 특정 후보 모델 및 혼합 기술을 선택하거나 후보 모델의 일부 또는 전부를 사용하여 모델링 기술 라이브러리에서 일부 또는 모든 혼합 기술을 자동으로 맞춤화하는 옵션을 제공한다. 네스팅된 상호 유효성 검증 프레임워크는 그 후 혼합기 자체를 튜닝하거나 그 컴포넌트 모델의 하이퍼-파라미터를 튜닝할 때 각 혼합 모델을 등급화하는 데 사용되는 데이터가 사용되지 않는 조건을 실시한다. 이 규율은 사용자에게 대안적인 혼합기 성능의 보다 정확한 비교를 제공할 수 있다. 일부 실시예에서, 모델링 시스템(100)은, 혼합 모델에 대한 연산 시간이 그 가장 느린 컴포넌트 모델의 연산 시간에 접근하도록, 혼합 모델의 프로세싱을 병렬로 구현한다.In addition to increasing the variety of candidate models available for blending,
도 4로 복귀하여, 방법(400)의 단계(446)에서, 사용자 인터페이스(120)는 최종 결과를 사용자에게 제시한다. 이 표현에 기초하여, 사용자는 (예를 들어, 단계(412)로 복귀함으로써) 데이터 세트를 정제하고, (예를 들어, 단계(444)로 복귀함으로써) 실행 모델링 기술에 대한 자원의 할당을 조정하고, (예를 들어, 단계(430)로 복귀함으로써) 정확도를 향상시키기 위해 하나 이상의 모델링 기술을 수정하고, (예를 들어, 단계(402)로 복귀함으로써) 데이터 세트를 변경하는 것 등을 수행할 수 있다.Returning to FIG. 4 , at
방법(400)의 단계(448)에서, 검색 공간 평가 또는 그의 일부를 재개하는 것이 아니라, 사용자는 하나 이상의 톱 예측 모델 후보를 선택할 수 있다. 단계(450)에서, 예측 모델링 시스템(100)은 선택된 예측 모델 후보(들)에 대한 홀드아웃 테스트의 결과를 제시할 수 있다. 홀드아웃 테스트 결과는, 이들 후보들의 비교 방법에 대한 최종 척도(final gauge)를 제공할 수 있다. 일부 실시예에서, 적절한 특권을 가진 사용자만이 홀드아웃 테스트 결과를 해제할 수 있다. 후보 예측 모델이 선택될 때까지 홀드아웃 테스트 결과의 해제를 방지하는 것은 성능의 편향되지 않은 평가를 용이하게 할 수 있다. 그러나, 탐색 엔진(110)은, 후보 예측 모델이 선택된 후까지 결과가 숨겨진 채로 있는 한, 모델링 작업 실행 프로세스(예를 들어, 단계(432-444)) 동안 홀드아웃 테스트 결과를 실제로 계산할 수 있다.At
사용자 인터페이스user interface
도 1로 복귀하면, 사용자 인터페이스(120)는 예측 모델링 공간의 검색을 모니터링 및/또는 가이드하기 위한 도구를 제공할 수 있다. 이러한 도구는 (예를 들어, 데이터 세트의 문제가 있는 변수를 강조 표시하고 데이터 세트의 변수들 간 관계를 식별하는 등에 의해) 예측 문제의 데이터 세트에 대한 통찰력 및/또는 검색 결과에 대한 통찰력을 제공할 수 있다. 일부 실시예에서, 데이터 분석자는 예를 들어 모델링 해결책을 평가하고 비교하는 데 사용되는 메트릭을 특정하고, 적절한 모델링 해결책을 인식하기 위한 기준을 특정하는 것 등에 의해, 검색을 가이드하기 위해 인터페이스를 사용할 수 있다. 따라서, 사용자 인터페이스는 그 자신의 생산성을 향상시키고 및/또는 탐색 엔진(110)의 성능을 향상시키기 위해 분석자에 의해 사용될 수 있다. 일부 실시예에서, 사용자 인터페이스(120)는 검색의 결과를 실시간으로 제시하고, (예를 들어, 상이한 모델링 해결책의 평가 중 검색의 범위 또는 자원의 할당을 조정하기 위해) 사용자가 실시간으로 검색을 가이드할 수 있게 한다. 일부 실시예에서, 사용자 인터페이스(120)는 동일한 예측 문제 및/또는 관련된 예측 문제에 대해 효과적인 다수의 데이터 분석자의 노력을 조정하기 위한 도구를 제공한다.Returning to FIG. 1 , the
일부 실시예에서, 사용자 인터페이스(120)는 모델링 기술의 라이브러리(130)에 대한 머신-실행 가능 템플릿을 개발하기 위한 도구를 제공한다. 시스템 사용자는 이러한 도구를 사용하여 기존 템플릿을 수정하거나, 새로운 템플릿을 생성하거나, 라이브러리(130)로부터 템플릿을 제거할 수 있다. 이러한 방식으로, 시스템 사용자는 라이브러리(130)를 갱신하여 예측 모델링 연구의 진보를 반영하고 및/또는 독점적 예측 모델링 기술을 포함할 수 있게 한다.In some embodiments,
사용자 인터페이스(120)는, 사용자가 조직 내의 복수의 모델링 프로젝트를 관리하고, 모델링 방법론 계층 구조의 요소를 생성 및 수정하고, 정확한 예측 모델에 대한 포괄적인 검색을 수행하고, 데이터 세트 및 모델 결과에 대한 통찰력을 얻고, 및/또는 새로운 데이터에 대한 예측을 수행하기 위해 완성된 모델을 배치할 수 있게 하는 다양한 인터페이스 컴포넌트를 포함할 수 있다.
일부 실시예에서, 사용자 인터페이스(120)는 관리자, 기술 개발자, 모델 빌더 및 관측자의 4개 유형의 사용자를 구분한다. 관리자는 프로젝트에 대한 사람 및 컴퓨팅 자원의 할당을 제어할 수 있다. 기술 개발자는 모델링 기술과 컴포넌트 작업을 생성 및 수정할 수 있다. 모델 빌더는, 기술 및 작업에 대한 약간의 조정을 할 수 있지만, 양호한 모델을 검색하는 데 중점을 둔다. 관측자는 프로젝트 진행 및 모델링 결과의 특정 양태를 볼 수 있지만, 데이터에 대한 임의의 변경을 수행하거나 임의의 모델-구축을 시작하는 것으로부터 금지될 수 있다. 개인은 특정 프로젝트 또는 복수 프로젝트에서 하나 초과의 역할을 수행할 수 있다.In some embodiments,
관리자로서 역할하는 사용자는 프로젝트 파라미터를 설정하고, 사용자에 대한 프로젝트 책임을 할당하고, 컴퓨팅 자원을 프로젝트에 할당하기 위해 사용자 인터페이스(120)의 프로젝트 관리 컴포넌트에 액세스할 수 있다. 일부 실시예에서, 관리자는 프로젝트 관리 컴포넌트를 사용하여 복수의 프로젝트를 그룹 또는 계층 구조로 조직할 수 있다. 그룹 내의 모든 프로젝트는 그룹의 설정을 상속받을 수 있다. 계층 구조에서, 프로젝트의 모든 자녀는 프로젝트의 설정을 상속받을 수 있다. 일부 실시예에서, 충분한 권한을 가진 사용자는 상속된 설정을 무시할 수 있다. 일부 실시예에서, 충분한 권한을 가진 사용자는 설정을 상이한 섹션으로 추가로 분할하여, 대응하는 권한을 가진 사용자만이 이를 변경할 수 있다. 일부 경우에, 관리자는 프로젝트의 조직과 직교로 특정 자원에 대한 액세스를 허용할 수 있다. 예를 들어, 명시적으로 금지되지 않는 한, 특정 기술과 작업이 모든 프로젝트에서 이용 가능하게 될 수 있다. 명시적으로 허용되지 않는 한, 다른 것은 금지될 수 있다. 또한, 일부 자원은 사용자 단위로 할당될 수 있으므로, 그 권리를 소유한 사용자가 특정 프로젝트에 할당된 경우에만 프로젝트가 자원에 액세스할 수 있다.A user acting as an administrator can access the project management component of the
사용자 관리에서, 관리자는 시스템에 허가된 모든 사용자의 그룹, 허가된 역할 및 시스템-레벨 권한을 제어할 수 있다. 일부 실시예에서, 관리자는 대응 그룹에 사용자를 추가하고 액세스 크리덴셜의 일부 형식을 이들에 발행하여 사용자를 시스템에 추가할 수 있다. 일부 실시예에서, 사용자 인터페이스(120)는 사용자 이름과 패스워드, 통합 인증 프레임워크(예를 들어, OAuth), 하드웨어 토큰(예를 들어, 스마트 카드) 등에 한정되지 않지만 이를 포함하는 상이한 종류의 크리덴셜을 지원할 수 있다.In user management, an administrator can control the groups, permitted roles, and system-level privileges of all users permitted to the system. In some embodiments, administrators can add users to the system by adding users to corresponding groups and issuing them some form of access credentials. In some embodiments, the
일단 허가되면, 관리자는, 특정 사용자가 임의의 프로젝트에 대해 가정하는 디폴트 역할을 갖는 것을 특정할 수 있다. 예를 들어, 특정 프로젝트에 대해 관리자에 의해 다른 역할에 대해 특별히 인증되지 않는 한, 특정 사용자는 관측자로 지정될 수 있다. 다른 사용자는, 관리자에 의해 특별히 제외하지 않는 한 모든 프로젝트에 대한 기술 개발자로서 제공될 수 있으며, 다른 사용자는 프로젝트의 특정 그룹만 또는 프로젝트 계층 구조의 브랜치에 대한 기술 개발자로서 제공될 수 있다. 디폴트 역할에 추가하여, 관리자는 사용자에게 시스템 레벨에서 보다 구체적인 권한을 추가로 할당할 수 있다. 예를 들어, 관리자는 특정 유형의 컴퓨팅 자원에 대한 액세스를 허가할 수 있으며, 일부 기술 개발자 및 모델 빌더는 빌더 내의 특정 피처에 액세스할 수 있고; 일부 모델 빌더는 새로운 프로젝트를 시작하거나, 주어진 레벨보다 많은 연산 자원을 소비하거나, 자신이 소유하지 않은 프로젝트에 새로운 사용자를 초대하도록 인증될 수 있다.Once granted, the administrator can specify that a particular user has a assumed default role for any project. For example, certain users can be designated as observers, unless specifically authorized for other roles by the administrator for a particular project. Other users may serve as technical developers for all projects unless specifically excluded by the administrator, and other users may serve only as technical developers for a specific group of projects or branches of the project hierarchy. In addition to the default roles, administrators can assign additional, more specific privileges to users at the system level. For example, an administrator may grant access to certain types of computing resources, some technical developers and model builders may access certain features within a builder; Some model builders may be authorized to start a new project, consume more computational resources than a given level, or invite new users to a project they do not own.
일부 실시예에서, 관리자는 프로젝트 레벨에서 액세스, 허가 및 책임을 할당할 수 있다. 액세스는 특정 프로젝트 내의 임의의 정보에 액세스하는 능력을 포함할 수 있다. 권한은 프로젝트에 대한 특정 동작을 수행하는 능력을 포함할 수 있다. 액세스 및 권한은 시스템-수준 권한을 무시하거나 보다 세부적인 제어를 제공할 수 있다. 전자의 예로서, 통상적으로 전체 빌더 권한을 가진 사용자는 특정 프로젝트에 대한 부분 빌더 권한으로 제한될 수 있다. 후자의 예로서, 특정 사용자는 새로운 데이터를 기존 프로젝트로 로드하는 것에서 제한될 수 있다. 책임은, 사용자가 프로젝트를 위해 완료하도록 예상되는 액션 항목을 포함할 수 있다.In some embodiments, administrators may assign access, permissions, and responsibilities at the project level. Access may include the ability to access any information within a particular project. Privileges may include the ability to perform specific actions on a project. Access and privileges can override system-level privileges or provide more granular control. As an example of the former, a user who typically has full builder rights may be limited to partial builder rights for a specific project. As an example of the latter, certain users may be restricted from loading new data into existing projects. Responsibilities may include action items a user is expected to complete for a project.
개발자로서 역할하는 사용자는 인터페이스의 빌더 영역에 액세스하여 모델링 방법, 기술 및 작업을 생성 및 수정할 수 있다. 전술한 바와 같이, 각 빌더는 대응 논리적 동작을 수행하는 상이한 유형의 사용자 인터페이스를 가진 하나 이상의 도구를 제시할 수 있다. 일부 실시예에서, 사용자 인터페이스(120)는, 개발자가 기술에 첨부된 메타데이터를 편집하기 위해 "속성" 시트를 사용할 수 있게 할 수 있다. 기술은 또한 특정 작업에 대한 변수에 대응하는 튜닝 파라미터를 가질 수 있다. 개발자는 이러한 튜닝 파라미터를 기술-레벨 속성 시트에 게시하여, 디폴트 값과 모델 빌더가 이러한 디폴트를 무시할 수 있는지 여부를 특정할 수 있다.Users acting as developers can access the Builder area of the interface to create and modify modeling methods, techniques, and tasks. As noted above, each builder may present one or more tools with different types of user interfaces that perform corresponding logical operations. In some embodiments,
일부 실시예에서, 사용자 인터페이스(120)는 조건부 로직에 대한 임의의 빌트인 동작과 함께 작업의 계층적 지향 그래프를 특정하고, 출력을 필터링하고, 출력을 변환하고, 출력을 분할하고, 입력을 조합하고, 서브-그래프에 대해 반복하는 것 등을 위해 그래픽 흐름도 도구를 제공할 수 있다. 일부 실시예에서, 사용자 인터페이스(120)는 각 작업에 대해 설정될 수 있는 속성을 포함하여, 리프-레벨 작업을 구현하기 위한 기존 소프트웨어 주위에 래퍼(wrapper)를 생성하기 위한 설비를 제공할 수 있다.In some embodiments,
일부 실시예에서, 사용자 인터페이스(120)는 리프-레벨 작업을 구현하기 위한 상호 작용 개발 환경(IDE)에 대한 빌트인 액세스를 고급 개발자에게 제공할 수 있다. 개발자는 대안적으로 외부 환경의 컴포넌트를 코딩하고 리프-레벨 작업으로서 코드를 래핑할 수 있지만, 이러한 환경에 직접 액세스할 수 있으면 더 편리할 수 있다. 이러한 실시예에서, IDE 자체는 인터페이스에 래핑되어 논리적으로 작업 빌더에 통합될 수 있다. 사용자 관점에서 볼 때, IDE는 동일한 인터페이스 프레임워크 내에서 작업 빌더와 동일한 연산 인프라스트럭처 상에서 실행될 수 있다. 이러한 기능은 고급 개발자가 개발 및 수정 기술을 보다 신속하게 반복하게 할 수 한다. 일부 실시예는 동일한 리프-레벨 작업을 동시에 프로그래밍하는 복수의 개발자 간의 조정을 용이하게 하는 코드 협업 피처를 추가로 제공할 수 있다.In some embodiments,
모델 빌더는 개발자에 의해 생성된 기술을 활용하여 자신의 특정 데이터 세트에 대한 예측 모델을 구축할 수 있다. 상이한 모델 빌더는 상이한 레벨의 경험을 가질 수 있으므로, 사용자 인터페이스와는 상이한 지원을 필요로 할 수 있다. 비교적 새로운 사용자의 경우, 사용자 인터페이스(120)는 가능한 한 자동 프로세스를 제시할 수 있지만, 여전히 사용자에게 옵션을 탐색할 능력을 제공할 수 있고, 이에 의해 예측 모델링에 대해 더 많이 학습할 수 있다. 중간 사용자의 경우, 사용자 인터페이스(120)는 특정 문제가 얼마나 쉽게 해결될지를 신속하게 평가하고, 기존의 예측 모델이, 예측 모델링 시스템(100)이 자동으로 생성할 수 있는 것에 대해 어떻게 적층하는지 비교하고, 궁극적으로 실질적인 수동 튜닝으로부터 이익을 얻을 복잡한 프로젝트에 대한 가속화된 개시를 얻는 것을 용이하게 하기 위해 정보를 제시할 수 있다. 고급 사용자의 경우, 사용자 인터페이스(120)는 기존의 예측 모델에 대한 정확도의 약간의 여분의 소수점 이하의 자리수의 추출, 작업한 문제에 대한 새로운 기술의 적용 가능성의 신속한 평가, 및 그 조직이 직면할 수 있는 문제의 전체 클래스에 대한 기술의 개발을 용이하게 할 수 있다. 고급 사용자에 대한 지식을 포착함으로써, 일부 실시예는 조직의 나머지에 전반적으로 그 지식의 전파를 용이하게 한다.Model builders can leverage the skills generated by developers to build predictive models for their specific data sets. Different model builders may have different levels of experience and thus may require different support than the user interface. For relatively new users, the
이러한 사용자 요구의 폭을 지원하기 위해, 사용자 인터페이스(120)의 일부 실시예는 모델 구축 프로세스를 반영하는 인터페이스 도구의 시퀀스를 제공한다. 또한, 각 도구는 기본에서 고급까지 다양한 피처를 제공할 수 있다. 모델 구축 프로세스의 제1 단계는 데이터 세트를 로드 및 준비하는 것을 포함할 수 있다. 전술한 바와 같이, 사용자는 파일을 업로드하거나 온라인 시스템으로부터 어떻게 데이터에 액세스하는지를 특정할 수 있다. 프로젝트 그룹 또는 계층 구조를 모델링하는 관점에서, 사용자는 또한 현재 프로젝트에 사용할 부모 데이터 세트의 부분과 추가할 부분을 특정할 수 있다.To support this breadth of user needs, some embodiments of
기본 사용자에 대해, 예측 모델링 시스템(100)은, 데이터 세트가 특정된 후에 모델을 구축하는 것으로 즉시 진행할 수 있으며, 파싱 불가능한 데이터, 양호한 결과를 예측하기에는 너무 적은 관측치, 합리적인 양의 시간으로 실행하기에는 너무 많은 관측치, 너무 많은 누락값, 또는 그 분산이 비정상적인 결과로 이어질 수 있는 변수에 한정되지 않지만 이를 포함하는 난처한 문제를 사용자 인터페이스(120)가 플래깅하는 경우에만 중지된다. 중간 사용자에 대해, 사용자 인터페이스(120)는 데이터 세트 특성의 테이블 및 변수 중요도의 그래프, 변수 효과 및 효과 핫스팟을 제시함으로써 데이터를 보다 깊이 이해하는 것을 용이하게 할 수 있다. 또한, 사용자 인터페이스(120)는 상관 매트릭스, 부분 의존도 플롯 및/또는 k- 수단 및 계층적 클러스터링과 같은 비감독 머신-학습 알고리즘의 결과에 한정되지 않지만 이를 포함하는 시각화 도구를 제공함으로써 변수들 간의 관계의 이해 및 시각화를 용이하게 할 수 있다. 일부 실시예에서, 사용자 인터페이스(120)는, 기존 피처 또는 이들의 조합을 변환하는 공식을 특정함으로써 고급 사용자가 완전히 새로운 데이터 세트 피처를 생성할 수 있게 한다.For a basic user, the
일단 데이터 세트가 로드되면, 사용자는 최적화될 모델-맞춤 메트릭을 특정할 수 있다. 기본 사용자에 대해, 예측 모델링 시스템(100)은 모델-맞춤 메트릭을 선택할 수 있고, 사용자 인터페이스(120)는 선택에 대한 설명을 제시할 수 있다. 중간 사용자에 대해, 사용자 인터페이스(120)는, 사용자가 특정 데이터 세트에 대한 상이한 메트릭을 선택함에 있어 상충 관계를 이해하는 것을 돕도록 정보를 제시할 수 있다. 고급 사용자에 대해, 사용자 인터페이스(120)는, 사용자가 탐색 엔진(110)에 의해 수집된 저-레벨 성능 데이터에 기초하여 공식(예를 들어, 목적 함수)을 작성함으로써, 또는 심지어 커스텀 메트릭 계산 코드를 업로드함으로써 커스텀 메트릭을 특정할 수 있게 할 수 있다.Once the data set is loaded, the user can specify the model-fit metrics to be optimized. For a primary user, the
데이터 세트가 로드되고 모델-맞춤 메트릭이 선택되면, 사용자는 탐색 엔진을 론칭할 수 있다. 기본 사용자에 대해, 탐색 엔진(110)은 모델링 기술에 대한 디폴트 우선 순위 설정을 사용할 수 있고, 사용자 인터페이스(120)는 모델 성능, 데이터 세트로 얼마나 멀리 실행이 진행되었는지, 및 연산 자원의 일반적인 소비에 대한 고-레벨 정보를 제공할 수 있다. 중간 사용자에 대해, 사용자 인터페이스(120)는, 사용자가 초기 우선 순위들 중 일부를 고려하고 약간 조정하는 기술의 서브세트를 특정할 수 있게 할 수 있다. 일부 실시예에서, 사용자 인터페이스(120)는 보다 세부적인 성능 및 진행 데이터를 제공하여, 중간 사용자가 전술한 바와 같이 인-플라이트(in-flight) 조정을 할 수 있다. 일부 실시예에서, 사용자 인터페이스(120)는 중간 사용자에게 연산 자원 소비의 더 많은 직관 및 제어를 제공한다. 일부 실시예에서, 사용자 인터페이스(120)는 고려된 기술 및 그 우선 순위, 이용 가능한 모든 성능 데이터 및 중요한(예를 들어, 완전한) 자원 소비의 제어의 중요한(예를 들어, 완전한) 제어를 고급 사용자에게 제공할 수 있다. 상이한 레벨의 사용자에게 별개의 인터페이스를 제공하거나 디폴트로 보다 낮은 고급 사용자를 위한 보다 고급 피처를 "붕괴"시키는 것에 의해, 사용자 인터페이스(120)의 일부 실시예는 그 대응 레벨에서 사용자를 지원할 수 있다.Once the data set is loaded and model-fit metrics are selected, the user can launch the search engine. For a basic user, the
검색 공간의 탐색 중에 그리고 그 후에, 사용자 인터페이스는 하나 이상의 모델링 기술의 수행에 관한 정보를 제시할 수 있다. 일부 성능 정보는 테이블 포맷으로 표시될 수 있지만 다른 성능 정보는 그래픽 포맷으로 표시될 수 있다. 예를 들어, 테이블 포맷으로 제시된 정보는 기술별 모델 성능의 비교, 평가된 데이터의 부분, 기술 속성 또는 연산 자원의 현재 소비에 한정되지 않지만 이를 포함할 수 있다. 그래픽 포맷으로 제시되는 정보는 모델링 절차의 작업의 지향 그래프, 데이터 세트의 상이한 분할에 걸친 모델 성능의 비교, 수신기 작동 특성 및 리프트 차트와 같은 모델 성능의 표현, 예측값 대 실제값 및 시간 경과에 따른 연산 자원의 소비를 포함할 수 있지만 이에 한정되지 않는다. 사용자 인터페이스(120)는 어느 유형의 새로운 성능 정보의 용이한 포함을 허용하는 모듈식 사용자 인터페이스 프레임워크를 포함할 수 있다. 또한, 일부 실시예는 각 데이터 분할 및/또는 각 기술에 대한 일부 유형의 정보의 표시를 허용할 수 있다.During and after navigation of the search space, the user interface may present information regarding the performance of one or more modeling techniques. Some performance information may be displayed in a table format while other performance information may be displayed in a graphical format. For example, information presented in a table format may include, but is not limited to, comparison of model performance by technology, a portion of evaluated data, technology attributes, or current consumption of computational resources. Information presented in graphical format includes directed graphs of the tasks of the modeling procedure, comparison of model performance across different partitions of data sets, representation of model performance such as receiver operating characteristics and lift charts, predicted versus actual values, and calculations over time. may include, but is not limited to, consumption of resources.
전술한 바와 같이, 사용자 인터페이스(120)의 일부 실시예는 복수의 프로젝트에 대한 복수의 사용자의 협업을 지원한다. 프로젝트에 걸쳐, 사용자 인터페이스(120)는, 사용자가 데이터, 모델링 작업 및 모델링 기술을 공유하도록 허용할 수 있다. 프로젝트 내에서, 사용자 인터페이스(120)는, 사용자가 데이터, 모델 및 결과를 공유하도록 허용할 수 있다. 일부 실시예에서, 사용자 인터페이스(120)는, 사용자가 프로젝트의 속성을 수정하고 프로젝트에 할당된 자원을 사용하도록 허용할 수 있다. 일부 실시예에서, 사용자 인터페이스(120)는, 복수의 사용자가 프로젝트 데이터를 수정하고 모델을 프로젝트에 추가한 다음 이들 기여도를 비교하도록 허용할 수 있다. 일부 실시예에서, 사용자 인터페이스(120)는, 어떤 사용자가 프로젝트에 대한 특정의 변경을 하였는지, 변경이 언제 이루어졌는지, 및 사용자가 어떤 프로젝트 자원을 사용했는지를 식별할 수 있다.As noted above, some embodiments of
모델 배치 엔진model placement engine
모델 배치 엔진(140)은 동작 환경에서 예측 모델을 배치하기 위한 도구를 제공한다. 일부 실시예에서, 모델 배치 엔진(140)은 배치된 예측 모델의 성능을 모니터링하고, 배치된 모델을 생성한 모델링 기술과 연관된 성능 메타데이터를 갱신하여, 성능 데이터가 배치된 모델의 성능을 정확하게 반영한다.The model deployment engine 140 provides tools for deploying predictive models in an operational environment. In some embodiments, the model deployment engine 140 monitors the performance of the deployed predictive model and updates performance metadata associated with the modeling technique that generated the deployed model, so that the performance data accurately reflects the performance of the deployed model. do.
사용자는, 맞춤화된 모델이 현장 테스트를 보증하거나 값을 추가할 수 있다고 믿을 때 맞춤화된 예측 모델을 배치할 수 있다. 일부 실시예에서, 사용자 및 외부 시스템은 (예를 들어, 예측 모델링 시스템(100)의 인터페이스 서비스 층에서) 예측 모듈에 액세스하고, 사용될 하나 이상의 예측 모델을 특정하고, 새로운 관측치를 제공할 수 있다. 그 후, 예측 모듈은 그 모델에 의해 제공된 예측을 반환할 수 있다. 일부 실시예에서, 관리자는, 어떤 사용자 및 외부 시스템이 이 예측 모듈에 대한 액세스를 갖는지를 제어할 수 있고 및/또는 단위 시간당 허용되는 예측의 수와 같은 사용 제한을 설정할 수 있다.Users can deploy customized predictive models when they believe the customized model can warrant field testing or add value. In some embodiments, users and external systems may access the prediction module (eg, at the interface service layer of the predictive modeling system 100 ), specify one or more predictive models to be used, and provide new observations. The prediction module may then return the predictions provided by the model. In some embodiments, administrators may control which users and external systems have access to this prediction module and/or may set usage restrictions, such as the number of predictions allowed per unit time.
각각의 모델에 대해, 탐색 엔진(110)은 계수 및 하이퍼-파라미터값을 포함하여, 모델을 생성하는 데 사용된 모델링 기술의 기록 및 맞춤화 후의 모델의 상태를 저장할 수 있다. 각 기술이 이미 머신-실행 가능하기 때문에, 이 값은, 실행 엔진이 새로운 관측치 데이터에 대한 예측을 생성하는 데 충분할 수 있다. 일부 실시예에서, 모델의 예측은 모델링 기술에서 설명된 사전-프로세싱 및 모델링 단계를 새로운 입력 데이터의 각 인스턴스에 적용함으로써 생성될 수 있다. 그러나 일부 경우에, 장래의 예측 계산의 속도를 높이는 것이 가능할 수 있다. 예를 들어, 맞춤화된 모델은 특정 변수의 값을 몇몇 독립적인 확인을 행할 수 있다. 이러한 확인의 일부 또는 전부를 조합한 다음 편리할 때 단순히 참조하는 것은 예측을 생성하는 데 사용되는 총 연산량을 줄일 수 있다. 마찬가지로, 혼합 모델의 몇몇 컴포넌트 모델이 동일한 데이터 변환을 수행할 수 있다. 따라서, 일부 실시예는 중복 계산을 식별하고, 단지 한 번만 이를 수행하고, 이를 사용하는 컴포넌트 모델에서 계산 결과를 참조함으로써 연산 시간을 감소시킬 수 있다.For each model, the
일부 실시예에서, 배치 엔진(140)은 병렬 프로세싱을 위한 기회를 식별함으로써 예측 모델의 성능을 향상시키고, 이에 의해 기본 하드웨어가 복수의 명령어를 병렬로 실행할 수 있을 때 각각의 예측을 수행하는 응답 시간을 감소시킨다. 일부 모델링 기술은 일련의 단계를 순차적으로 설명할 수 있지만, 실제로 일부 단계는 논리적으로 독립적일 수 있다. 각 단계 중의 데이터 흐름을 조사함으로써, 배치 엔진(140)은 논리적 독립의 상황을 식별한 다음 예측 모델의 실행을 재구성할 수 있어 독립적인 단계가 병렬로 실행된다. 혼합 모델은, 임의의 공통 데이터 변환이 완료되면 구성 예측 모델이 병렬로 실행될 수 있기 때문에, 특별한 클래스의 병렬화를 제시할 수 있다.In some embodiments, the placement engine 140 improves the performance of predictive models by identifying opportunities for parallel processing, whereby the response time to perform each prediction when the underlying hardware can execute multiple instructions in parallel. reduces the While some modeling techniques may describe a sequence of steps sequentially, in practice some steps may be logically independent. By examining the data flow during each step, the placement engine 140 can identify situations of logical independence and then reconstruct the execution of the predictive model so that the independent steps are executed in parallel. Mixed models can present a special class of parallelism, since the construct prediction models can be run in parallel once any common data transformations are complete.
일부 실시예에서, 배치 엔진(140)은 예측 모델의 상태를 메모리에 캐싱(caching)할 수 있다. 이 접근법을 사용하면, 동일한 모델의 연속적인 예측 요청이 모델 상태를 로드하는 데 시간을 소비하지 않을 수 있다. 상대적으로 적은 수의 관측치에 대한 예측에 대한 많은 요청이 있는 경우 캐싱이 특히 잘 작동될 수 있으므로, 이 로딩 시간은 전체 실행 시간 중 잠재적으로 큰 부분이다.In some embodiments, placement engine 140 may cache the state of the predictive model in memory. Using this approach, successive prediction requests of the same model may not spend time loading the model state. This loading time is a potentially large fraction of the total execution time, as caching can work particularly well when there are many requests for predictions for a relatively small number of observations.
일부 실시예에서, 배치 엔진(140)은 서비스-기반 및 코드-기반의 적어도 2개의 예측 모델의 구현을 제공할 수 있다. 서비스-기반 예측에 대해, 계산은 후술하는 바와 같이, 분산 컴퓨팅 인프라스트럭처 내에서 실행된다. 최종 예측 모델은 분산 컴퓨팅 인프라스트럭처의 데이터 서비스 층에 저장될 수 있다. 사용자 또는 외부 시스템이 예측을 요청할 때, 어떤 모델이 사용될 것인지 그리고 적어도 하나의 새로운 관측치를 제공하는지를 나타낼 수 있다. 그 후, 예측 모듈은 데이터 서비스 층 또는 모듈의 메모리 내 캐시로부터 모델을 로드하고, 제출된 관측치가 원래 데이터 세트의 구조와 매칭되는지를 검증하고, 각 관측에 대한 예측값을 연산할 수 있다. 일부 구현에서, 예측 모델은 클라우드 작업자의 전용 풀(pool)에서 실행될 수 있으며, 이에 의해 낮은 분산의 응답 시간을 갖는 예측의 생성을 용이하게 한다.In some embodiments, placement engine 140 may provide implementations of at least two predictive models, service-based and code-based. For service-based prediction, the computation is performed within a distributed computing infrastructure, as described below. The final predictive model may be stored in the data service layer of the distributed computing infrastructure. When a user or external system requests a prediction, it may indicate which model will be used and provide at least one new observation. The prediction module can then load the model from the data service layer or the module's in-memory cache, verify that the submitted observations match the structure of the original data set, and compute a prediction value for each observation. In some implementations, the predictive model may be run on a dedicated pool of cloud workers, thereby facilitating the creation of predictions with low variance response times.
서비스-기반 예측은 상호 작용으로 또는 API를 통해 발생할 수 있다. 상호 작용 예측에 대해, 사용자는 각각의 새로운 관측치에 대한 피처의 값을 입력하거나 하나 이상의 관측치에 대한 데이터를 포함하는 파일을 업로드할 수 있다. 그 후, 사용자는 사용자 인터페이스(120)를 통해 직접 예측을 수신하거나 파일로서 다운로드할 수 있다. API 예측에 대해, 외부 시스템은 로컬 또는 원격 API를 통해 예측 모듈에 액세스하고, 하나 이상의 관측치를 제출하고, 반환으로 대응하는 계산된 예측을 수신할 수 있다.Service-based prediction can occur interactively or through APIs. For interactive prediction, a user can enter a value for a feature for each new observation or upload a file containing data for one or more observations. The user can then receive the prediction directly via
배치 엔진(140)의 몇몇 구현은, 조직이 서비스-기반 예측을 수행할 목적으로 분산 컴퓨팅 인프라스트럭처의 하나 이상의 소형화된 인스턴스를 생성하도록 허용할 수 있다. 분산 컴퓨팅 인프라스트럭처의 인터페이스 층에서, 이러한 각 인스턴스는 사용자-관련 기능에 액세스하지 않고도 외부 시스템에 의해 액세스할 수 있는 모니터링 및 예측 모듈의 부분을 사용할 수 있다. 분석 서비스 층은 기술 IDE 모듈을 사용하지 않을 수 있으며 이 층의 나머지 모듈은 제거되어 예측 요청을 서비스하기 위해 최적화될 수 있다. 데이터 서비스 층은 사용자 또는 모델-구축 데이터 관리를 사용할 수 없다. 이러한 독립형 예측 인스턴스는 클라우드 자원의 병렬 풀에 배치되거나, 다른 물리적 위치로 분산되거나, 심지어 "예측 어플라이언스"로 작동하는 하나 이상의 전용 머신에 다운로드될 수 있다.Some implementations of deployment engine 140 may allow an organization to create one or more miniaturized instances of a distributed computing infrastructure for the purpose of performing service-based prediction. At the interface layer of the distributed computing infrastructure, each such instance may use portions of the monitoring and prediction modules that are accessible by external systems without access to user-related functions. The analytics service layer may not use the technical IDE module and the remaining modules in this layer may be removed and optimized to service prediction requests. The data service layer cannot use user or model-building data management. These standalone prediction instances can be deployed in a parallel pool of cloud resources, distributed to different physical locations, or even downloaded to one or more dedicated machines acting as “prediction appliances”.
전용 예측 인스턴스를 생성하기 위해, 사용자는 예를 들어, 클라우드 인스턴스의 세트인지 또는 전용 하드웨어의 세트인지 여부와 같은 타겟 컴퓨팅 인프라스트럭처를 특정할 수 있다. 그 후 대응 모듈이 제공되고 타겟 컴퓨팅 인프라스트럭처에 설치하거나 설치를 위해 패키지화할 수 있다. 사용자는 초기 예측 모델의 세트로 인스턴스를 구성하거나 "빈(blank)" 인스턴스를 생성할 수 있다. 초기 설치 후, 사용자는 새로운 것을 설치하거나 메인 설치로부터 기존 것을 갱신함으로써 이용 가능한 예측 모델을 관리할 수 있다.To create a dedicated prediction instance, a user may specify a target computing infrastructure, such as, for example, whether it is a set of cloud instances or a set of dedicated hardware. The corresponding module is then provided and can be installed on the target computing infrastructure or packaged for installation. Users can construct instances from a set of initial predictive models or create “blank” instances. After initial installation, users can manage available predictive models by installing new ones or updating existing ones from the main installation.
코드-기반 예측에 대해, 배치 엔진(140)은 특정 모델에 기초하여 예측을 계산하기 위한 소스 코드를 생성할 수 있고, 사용자는 소스 코드를 다른 소프트웨어에 통합할 수 있다. 모델이, 그 리프-레벨 작업이 모두 사용자에 의해 요청된 것과 동일한 프로그래밍 언어로 구현되는 기술에 기초할 때, 배치 엔진(140)은 리프-레벨 작업을 위한 코드를 수집 분석함으로써 예측 모델에 대한 소스 코드를 생성할 수 있다. 모델이 다른 언어로부터의 코드를 통합하거나 언어가 사용자의 원하는 언어와 상이한 경우, 배포 엔진(140)은 보다 복잡한 접근법을 사용할 수 있다.For code-based prediction, deployment engine 140 may generate source code for calculating predictions based on a particular model, and users may incorporate the source code into other software. When the model is based on a technology whose leaf-level operations are all implemented in the same programming language as requested by the user, the placement engine 140 collects and analyzes the code for the leaf-level operations, thereby providing a source for the predictive model. code can be generated. If the model incorporates code from other languages or the language is different from the user's desired language, the deployment engine 140 may use a more complex approach.
하나의 접근법은 소스-대-소스 컴파일러를 사용하여 리프-레벨 적업의 소스 코드를 타겟 언어로 번역하는 것이다. 다른 접근법은 타겟 언어로 함수 스터브(stub)를 생성한 다음 원래 언어로 링크-인(link-in)된 객체 코드를 호출하거나 이러한 객체 코드를 실행하는 에뮬레이터에 액세스하는 것이다. 전자의 접근법은 사용자의 타겟 컴퓨팅 플랫폼을 위해 특별히 객체 코드를 생성하기 위해 크로스-컴파일러를 사용하는 것을 포함할 수 있다. 후자의 접근법은 사용자의 타겟 플랫폼 상에서 실행될 에뮬레이터의 사용을 포함할 수 있다.One approach is to use a source-to-source compiler to translate the source code of the leaf-level work into the target language. Another approach is to create a function stub in the target language and then call the object code linked-in to the original language or access an emulator that executes this object code. The former approach may include using a cross-compiler to generate object code specifically for the user's target computing platform. The latter approach may involve the use of an emulator that will run on the user's target platform.
또 다른 접근법은 특정 모델의 추상적 설명을 생성한 다음 그 설명을 타겟 언어로 컴파일하는 것이다. 추상적 설명을 생성하기 위해, 배치 엔진(140)의 일부 실시예는 다수의 잠재적 사전-프로세싱, 모델-맞춤 및 사후-프로세싱 단계를 설명하기 위한 메타-모델을 사용할 수 있다. 그 후 배치 엔진은 완전한 모델에 대한 특정 동작을 추출하고 메타-모델을 사용하여 이를 인코딩할 수 있다. 이러한 실시예에서, 타겟 프로그래밍 언어에 대한 컴파일러는 메타-모델을 타겟 언어로 번역하는 데 사용될 수 있다. 따라서, 사용자가 지원되는 언어로 예측 코드를 원하면, 컴파일러가 이를 생성할 수 있다. 예를 들어, 결정-트리 모델에서, 트리의 결정은 광범위하게 다양한 프로그래밍 언어로 직접 구현 가능한 논리적 if/then/else 구문으로 추상화될 수 있다. 마찬가지로, 통상적인 프로그래밍 언어에서 지원되는 수학 연산의 세트가 선형 회귀 모델을 구현하는 데 사용될 수 있다.Another approach is to generate an abstract description of a particular model and then compile that description into the target language. To generate abstract descriptions, some embodiments of deployment engine 140 may use meta-models to describe a number of potential pre-processing, model-fitting, and post-processing steps. The batch engine can then extract the specific behavior for the complete model and encode it using the meta-model. In such an embodiment, a compiler for the target programming language may be used to translate the meta-model into the target language. So, if a user wants predictive code in a supported language, the compiler can generate it. For example, in the decision-tree model, the decision of a tree can be abstracted into logical if/then/else constructs that can be directly implemented in a wide variety of programming languages. Likewise, any set of mathematical operations supported in conventional programming languages may be used to implement a linear regression model.
그러나, 임의의 언어로 예측 모델의 소스 코드를 공개하는 것은 몇몇 경우에(예를 들어, 예측 모델링 기술 또는 예측 모델이 독점 기능 또는 정보를 포함하는 경우) 바람직하지 않을 수 있다. 따라서, 배치 엔진(140)은 그 절차의 상세 사항을 공개하지 않고 예측 모델의 예측 기능을 보존하는 규칙의 세트로 예측 모델을 변환할 수 있다. 하나의 접근법은 가상적인 관측치에 대한 응답으로 예측 모델이 생성되는 가상의 예측의 세트로부터 이러한 규칙을 생성하는 알고리즘을 적용하는 것이다. 이러한 일부 알고리즘은 예측을 수행하기 위한 if-then 규칙의 세트(예를 들어, RuleFit)를 생성할 수 있다. 이 알고리즘들에 대해, 배치 엔진(140)은 원래의 예측 모델을 변환하는 대신 결과적인 if-then 규칙을 타겟 언어로 변환할 수 있다. 예측 모델을 if-then 규칙의 세트로 변환하는 추가적인 이점은, 프로그래밍 언어들에서 조건부 로직의 기본 모델이 보다 유사하기 때문에, 임의의 제어 및 데이터 흐름을 갖는 예측 모델보다 if-then 규칙의 세트를 타겟 프로그래밍 언어로 변환하는 것이 일반적으로 더 용이하다는 것이다.However, disclosing the source code of a predictive model in any language may be undesirable in some cases (eg, where predictive modeling techniques or predictive models contain proprietary functionality or information). Accordingly, the placement engine 140 may transform the predictive model into a set of rules that preserve the predictive function of the predictive model without disclosing the details of its procedures. One approach is to apply an algorithm that generates these rules from a set of hypothetical predictions in which a predictive model is generated in response to hypothetical observations. Some of these algorithms can generate a set of if-then rules (eg RuleFit) for performing predictions. For these algorithms, the placement engine 140 may convert the resulting if-then rule into the target language instead of transforming the original predictive model. An additional advantage of transforming a predictive model into a set of if-then rules is that it targets a set of if-then rules rather than a predictive model with arbitrary control and data flow, since the underlying model of conditional logic in programming languages is more similar. Converting to a programming language is usually easier.
모델이 새로운 관측치에 대한 예측을 일단 시작하면, 배치 엔진(140)은 이들 예측을 추적하고, 그 정확도를 측정하며, 예측 모델링 시스템(100)을 개선하기 위해 이들 결과를 사용할 수 있다. 서비스-기반 예측의 경우에, 시스템의 나머지 부분과 동일한 분산 컴퓨팅 환경 내에서 예측이 발생하므로, 각 관측치 및 예측은 데이터 서비스 층을 통해 저장될 수 있다. 각각의 예측에 대한 식별자를 제공함으로써, 일부 실시예는, 사용자 또는 외부 소프트웨어 시스템이 기록된 경우 및 그 때의 실제 값을 제출하도록 허용할 수 있다. 코드-기반 예측의 경우, 일부 실시예는 로컬 시스템 또는 데이터 서비스 층의 인스턴스로 다시 관측치 및 예측을 저장하는 코드를 포함할 수 있다. 다시, 각 예측에 대한 식별자를 제공하는 것은 이용 가능하게 될 때 실제 타겟 값에 대한 모델 성능 데이터의 수집을 용이하게 할 수 있다.Once the model starts making predictions for new observations, the placement engine 140 can track these predictions, measure their accuracy, and use these results to improve the
예측의 정확도 및/또는 다른 채널을 통해 얻어진 관측치에 대해 배치 엔진(140)에 의해 직접 수집된 정보는 (예를 들어, 기존 모델을 "리프레시"하기 위해, 또는 모델링 검색 공간의 일부 또는 전체를 다시 탐색함으로써 모델을 생성하기 위해) 예측 문제에 대한 모델을 개선하는 데 사용될 수 있다. 모델을 생성하기 위해 원래 데이터가 추가되었던 것과 동일한 방식으로 모델을 개선하거나 이전에 예측에 사용된 데이터에 대한 타겟 값을 제출함으로써 새 데이터가 추가될 수 있다.Information gathered directly by the placement engine 140 about the accuracy of predictions and/or observations obtained through other channels (e.g., to "refresh" an existing model, or to rebuild some or all of the modeling search space) It can be used to improve the model for prediction problems (to create a model by exploring). New data can be added by improving the model in the same way that the original data was added to create the model, or by submitting target values for data previously used for prediction.
일부 모델은 대응하는 모델링 기술을 새로운 데이터에 적용하고 결과적인 새로운 모델을 기존 모델과 조합함으로써 리프레시(예를 들어, 재맞춤)될 수 있는 반면, 다른 모델은 대응하는 모델링 기술을 원본 및 새로운 데이터의 조합에 적용함으로써 리프레시될 수 있다. 일부 실시예에서, 모델을 리프레시하는 경우, 모델 파라미터 중 일부만이 (예를 들어, 모델을 보다 신속하게 리프레시하기 위해, 또는 새로운 데이터가 특정 파라미터에 특히 관련된 정보를 제공하기 때문에) 재계산될 수 있다.Some models can be refreshed (e.g., refitted) by applying corresponding modeling techniques to new data and combining the resulting new model with existing models, while others apply corresponding modeling techniques to the original and new data. It can be refreshed by applying it to a combination. In some embodiments, when refreshing the model, only some of the model parameters may be recalculated (e.g., to refresh the model more quickly, or because new data provides information that is particularly relevant to a particular parameter). .
대안적으로 또는 추가적으로, 데이터 세트에 포함된 새로운 데이터와 함께 부분적으로 또는 전체적으로 모델링 검색 공간을 탐색하는 새로운 모델이 생성될 수 있다. 검색 공간의 재탐색은 (예를 들어, 원래의 검색에서 잘 수행된 모델링 기술에 제한된) 검색 공간의 일부로 제한되거나 전체 검색 공간을 커버할 수 있다. 두 경우 모두 배치된 모델(들)을 생성한 모델링 기술(들)에 대한 초기 적절성 스코어는 예측 문제에 대한 배치된 모델(들)의 성능을 반영하도록 재계산될 수 있다. 사용자는 재계산을 수행하기 위해 일부 이전 데이터를 제외하도록 선택할 수 있다. 배치 엔진(140)의 일부 실시예는 데이터의 서브세트가 어떤 버전을 트레이닝하는 데 사용되었는지를 포함하여, 동일한 로직 모델의 상이한 버전을 추적할 수 있다.Alternatively or additionally, a new model may be created that partially or fully explores the modeling search space with new data included in the data set. A rescan of the search space may be limited to a portion of the search space (eg, limited to modeling techniques that performed well in the original search) or may cover the entire search space. In either case, the initial relevance score for the modeling technique(s) that produced the deployed model(s) may be recalculated to reflect the performance of the deployed model(s) on the prediction problem. Users can choose to exclude some old data to perform a recalculation. Some embodiments of placement engine 140 may keep track of different versions of the same logic model, including which subsets of data were used to train.
일부 실시예에서, 이 예측 데이터는 시간 경과에 따른 입력 파라미터 또는 예측 자체의 경향의 사후-요청 분석을 수행하고, 모델 예측의 입력 또는 품질에 대한 잠재적 문제점을 사용자에게 경고하기 위해 사용될 수 있다. 예를 들어, 모델 성능의 집계 측정이 시간이 지남에 따라 저하되기 시작하면, 시스템은 모델을 리프레싱하거나 입력 자체가 시프팅하고 있는지 여부를 조사하는 것을 고려하도록 사용자에게 경고할 수 있다. 이러한 시프트는 특정 변수의 시간적 변화 또는 전체 모집단의 표류에 의해 야기될 수 있다. 일부 실시예에서, 이 분석의 대부분은 예측 응답이 느려지는 것을 피하기 위해 예측 요청이 완료된 후에 수행된다. 그러나, 시스템은 (예를 들어, 입력값이 원래 트레이닝 데이터, 모델링 기술 및 최종 모델 맞춤 상태의 유효한 주어진 특성으로서 연산된 값의 범위 외부에 있는 경우) 특히 나쁜 예측을 피하도록 예측 시간에 일부 검증을 수행할 수 있다.In some embodiments, this prediction data may be used to perform post-request analysis of the trend of the input parameters or predictions themselves over time, and to alert the user to potential problems with the input or quality of the model predictions. For example, if an aggregate measure of model performance begins to degrade over time, the system may alert the user to consider refreshing the model or examining whether the input itself is shifting. Such shifts can be caused by temporal changes in specific variables or by drifting of the entire population. In some embodiments, most of this analysis is performed after the prediction request is completed to avoid slowing down the prediction response. However, the system does some validation at prediction time to avoid particularly bad predictions (e.g., if the input is outside the range of values computed as valid given properties of the original training data, modeling technique, and final model fit state). can be done
사후 분석은, 사용자가 트레이닝에 사용된 모집단을 훨씬 초과하는 외삽법을 만들기 위해 모델을 배치한 경우에 중요할 수 있다. 예를 들어, 모델이 한 지리적 영역으로부터의 데이터에 대해 트레이닝되었지만, 완전히 다른 지리적 영역의 모집단에 대해 예측을 수행하는 데 사용될 수 있다. 때로는, 새로운 모집단에 대한 이러한 외삽법은 예상보다 실질적으로 더 나쁜 모델 성능으로 귀결될 수 있다. 이러한 경우에, 배치 엔진(140)은 사용자에게 경고하고 및/또는 새로운 값을 사용하여 하나 이상의 모델링 기술을 다시 맞춤화함으로써 모델을 자동으로 리프레시할 수 있고 원래 트레이닝 데이터를 확장한다.Post hoc analysis can be important if the user has deployed the model to make extrapolations far beyond the population used for training. For example, although a model has been trained on data from one geographic area, it can be used to make predictions on a population in an entirely different geographic area. Sometimes, this extrapolation to a new population can result in substantially worse model performance than expected. In such a case, the placement engine 140 may automatically refresh the model and extend the original training data by alerting the user and/or re-customizing one or more modeling techniques using the new values.
일부 실시예의 이점Advantages of some embodiments
예측 모델링 시스템(100)은 임의의 스킬 레벨에서 분석자의 생산성을 상당히 개선할 수 있고 및/또는 주어진 양의 자원으로 달성 가능한 예측 모델의 정확도를 상당히 증가시킬 수 있다. 프로시저를 자동화하는 것은 작업 부하를 감소시키고, 프로세스를 시스템화하는 것은 일관성을 유지할 수 있어, 분석자가 고유한 직관을 생성하는 데 더 많은 시간을 쓸 수 있게 한다. 3개의 통상적인 시나리오가 결과 예상, 특성 예측 및 측정 추론과 같은 이점을 나타낸다.The
결과 예상Expect results
조직이 결과를 정확하게 예상할 수 있다면, 조직은 보다 효율적으로 계획하고 그 거동을 향상시킬 수 있다. 따라서, 머신 학습의 통상적인 애플리케이션은 예상을 생성하는 알고리즘을 개발하는 것이다. 예를 들어, 많은 산업 분야는 대규모의 시간-소모적인 프로젝트에서 비용 예측 문제에 직면한다.If an organization can accurately predict outcomes, it can plan more efficiently and improve its behavior. Thus, a common application of machine learning is to develop algorithms that generate predictions. For example, many industries face the problem of cost forecasting on large-scale, time-consuming projects.
일부 실시예에서, 본원에 설명되는 기술은 비용 초과(예를 들어, 소프트웨어 비용 초과 또는 건설 비용 초과)를 예상하기 위해 사용될 수 있다. 예를 들어, 본원에 설명되는 기술은 다음과 같이 비용 초과를 예상하는 문제에 적용될 수 있다:In some embodiments, the techniques described herein may be used to anticipate cost overruns (eg, over software costs or over construction costs). For example, the techniques described herein can be applied to the problem of predicting cost overruns as follows:
1. 응답 변수 유형(예를 들어, 숫자 또는 바이너리, 근사적으로 가우시안(Gaussian) 또는 강한 논(non)-가우시안)에 적절한 모델 맞춤 메트릭을 선택한다: 예측 모델링 시스템(100)은 사용자에 의한 더 적은 기술 및 노력을 필요로 하는, 데이터 특성에 기초한 메트릭을 추천할 수 있지만, 사용자가 최종 선택을 할 수 있게 한다.1. Select the appropriate model fit metric for the response variable type (e.g., numeric or binary, approximately Gaussian or strongly non-Gaussian):
2. 아웃라이어 및 누락 데이터값을 해결하기 위해 데이터를 사전-프로세싱한다: 예측 모델링 시스템(100)은 데이터 특성의 상세한 개요를 제공하여, 사용자가 모델링 문제의 보다 나은 상황 인식을 개발하고 잠재적인 모델링 과제를 보다 효과적으로 평가할 수 있게 한다. 예측 모델링 시스템(100)은 아웃라이어 검출 및 대체, 누락값 전가(imputation), 및 사용자에 의한 기술 및 노력을 덜 요구하는 다른 데이터 이상의 검출 및 처리를 위한 자동화된 절차를 포함할 수 있다. 이러한 과제를 해결하기 위한 예측 모델링 시스템의 절차는 체계적일 수 있어, 임시 데이터 편집 절차보다 방법, 데이터 세트 및 시간에 걸쳐 보다 일관된 모델링 결과로 이어질 수 있다.2. Pre-process the data to resolve outliers and missing data values: The
3. 모델링 및 평가를 위해 데이터를 분할한다: 예측 모델링 시스템(100)은 데이터를 트레이닝, 검증 및 홀드아웃 세트로 자동 분할할 수 있다. 이 분할은 일부 데이터 분석자에 의해 사용되는 트레인 및 테스트 분할보다 더욱 유연할 수 있으며, 머신 학습 커뮤니티로부터 광범위하게 수용되는 추천과 일관될 수 있다. 방법, 데이터 세트 및 시간에 걸쳐 일관된 분할 접근법의 사용은 결과를 보다 쉽게 비교 가능하게 만들 수 있어, 상업적 상황에서 자원 배치의 보다 효과적인 할당을 가능하게 한다.3. Partition data for modeling and evaluation: The
4. 모델 구조를 선택하고, 도출된 피처를 생성하고, 모델 튜닝 파라미터를 선택하고, 모델을 맞춤화하고, 평가한다: 일부 실시예에서, 예측 모델링 시스템(100)은 결정 트리, 신경 네트워크, 지원 벡터 머신 모델, 회귀 모델, 부스팅된 트리, 랜덤 포리스트, 심층 학습(deep learning) 신경망 등에 한정되지 않지만 이를 포함하는 많은 상이한 모델 유형을 맞춤화할 수 있다. 예측 모델링 시스템(100)은 최상의 개별 성능을 나타내는 이러한 컴포넌트 모델로부터 앙상블을 자동으로 구성하는 옵션을 제공할 수 있다. 잠재적인 모델의 더 큰 공간을 탐색하는 것은 정확도를 향상시킬 수 있다. 예측 모델링 시스템은 상이한 데이터 유형(예를 들어, Box-Cox 변환, 텍스트 사전-프로세싱, 주요 컴포넌트 등)에 적절한 다양한 도출된 피처를 자동으로 생성할 수 있다. 잠재적인 변환의 더 큰 공간을 탐색하는 것은 정확도를 향상시킬 수 있다. 예측 모델링 시스템(100)은 상호 유효성 검증을 사용하여 모델 구축 프로세스의 일부로서 이들 튜닝 파라미터에 대한 최상의 값을 선택할 수 있고, 이에 의해 튜닝 파라미터의 선택을 개선하고 파라미터의 선택이 결과에 어떻게 영향을 주는지에 대한 감사 추적을 생성할 수 있다. 예측 모델링 시스템(100)은 이 자동화된 프로세스의 일부로서 고려되는 상이한 모델 구조를 맞춤화하고 평가할 수 있어, 검증 세트 성능의 관점에서 결과를 등급화한다.4. Select model structures, generate derived features, select model tuning parameters, customize models, and evaluate: In some embodiments,
5. 최종 모델을 선택한다: 최종 모델의 선택은 예측 모델링 시스템(100) 또는 사용자에 의해 이루어질 수 있다. 후자의 경우, 예측 모델링 시스템은 예를 들어, 모델에 대한 등급화된 검증 세트 성능 평가, 맞춤 프로세스에서 사용된 것과 다른 품질 측정에 의해 성능의 비교 및 등급화의 옵션, 및/또는 최상의 개별 성능을 나타내는 컴포넌트 모델로부터 앙상블 모델을 구축할 수 있는 기회를 포함하여, 사용자가 이러한 결정을 내리는 것을 돕도록 지원을 제공할 수 있다.5. Select the final model: The selection of the final model may be made by the
예측 모델링 시스템의 모델 개발 프로세스의 하나의 중요한 실제적인 양태는, 일단 초기 데이터 세트가 어셈블링되면, 모든 후속 연산이 동일한 소프트웨어 환경 내에서 발생할 수 있다는 것이다. 이 양태는 종종 상이한 소프트웨어 환경의 조합을 포함하는 통상의 모델-구축 노력과 중요한 차이점을 나타낸다. 이러한 다중-플랫폼 분석 접근법의 중요한 실용적인 단점은 결과를 다른 소프트웨어 환경들 간에 공유될 수 있는 공통 데이터 포맷으로 변환할 필요가 있다는 것이다. 종종 이 변환은 수동으로 또는 커스텀 "1회용" 재포맷 스크립트로 수행된다. 이 프로세스에서의 에러는 매우 심각한 데이터 왜곡으로 이어질 수 있다. 예측 모델링 시스템(100)은 하나의 소프트웨어 환경에서 모든 연산을 수행함으로써 이러한 재포맷팅 및 데이터 전송 에러를 피할 수 있다. 보다 일반적으로, 이는 매우 자동화되어 있고, 많은 상이한 모델 구조를 맞춤화하고 최적화하기 때문에, 예측 모델링 시스템(100)은 실질적으로 더 빠르고 보다 체계적이고, 따라서 보다 쉽게 설명 가능하고 보다 반복 가능하게 최종 모델로 라우팅될 수 있다. 또한, 예측 모델링 시스템(100)이 더욱 다른 모델링 방법을 탐색하고 가능한 예측자를 포함하기 때문에, 결과적인 모델은 종래의 방법에 의해 얻어진 것보다 더 정확할 수 있다.One important practical aspect of the model development process of a predictive modeling system is that once the initial data set is assembled, all subsequent operations can occur within the same software environment. This aspect represents a significant difference from conventional model-building efforts, which often involve a combination of different software environments. A significant practical disadvantage of this multi-platform analysis approach is the need to convert the results into a common data format that can be shared between different software environments. Often this conversion is done manually or with a custom "one-time" reformatting script. Errors in this process can lead to very serious data distortions. The
속성 예측property prediction
많은 분야에서, 조직은 생산 프로세스의 결과에 있어서 불확실성에 직면하고 주어진 조건의 세트가 출력의 최종 속성에 어떻게 영향을 미칠지 예측하기를 원한다. 따라서, 머신 학습의 공통적인 애플리케이션은 이러한 속성을 예측하는 알고리즘을 개발하는 것이다. 예를 들어, 콘크리트는 통상적인 건축 자재로, 그 최종 구조 속성이 상황마다 크게 다를 수 있다. 시간에 따른 콘크리트 속성의 상당한 변화와 매우 가변적인 조성에 대한 의존성으로 인해, 제1 원리로부터 개발된 모델도 전통적인 회귀 모델로부터 개발된 모델도 적절한 예측 정확도를 제공하지 못한다.In many fields, organizations face uncertainty in the outcome of their production processes and want to predict how a given set of conditions will affect the final properties of the output. Therefore, a common application of machine learning is to develop algorithms to predict these properties. For example, concrete is a common building material whose final structural properties can vary significantly from situation to situation. Neither models developed from first principles nor models developed from traditional regression models provide adequate predictive accuracy because of the significant change in concrete properties over time and their dependence on highly variable composition.
일부 실시예에서, 본원에 설명되는 기술은 생산 프로세스의 결과의 속성(예를 들어, 콘크리트의 속성)을 예측하는 데 사용될 수 있다. 예를 들어, 본원에 설명되는 기술은 다음과 같은 콘크리트의 속성을 예측하는 문제에 적용될 수 있다:In some embodiments, the techniques described herein may be used to predict properties of the outcome of a production process (eg, properties of concrete). For example, the techniques described herein may be applied to the problem of predicting properties of concrete such as:
1. 트레이닝, 검증 및 테스트 서브세트로 데이터 세트를 분할한다.1. Split the data set into training, validation, and test subsets.
2. 모델링 데이터 세트를 클리닝한다: 예측 모델링 시스템(100)은 누락 데이터, 아웃라이어 및 다른 중요한 데이터 이상을 자동으로 확인하고, 처리 전략을 추천하고, 사용자에게 이들을 수용 또는 거절하는 옵션을 제공할 수 있다. 이 접근법은 사용자에 의한 적은 기술과 노력을 요구할 수 있고, 및/또는 방법, 데이터 세트 및 시간에 걸쳐 보다 일관된 결과를 제공할 수 있다.2. Clean the modeling data set: The
3. 응답 변수를 선택하고 1차 맞춤 메트릭을 선택한다: 사용자는 모델링 데이터 세트에서 이용 가능한 것으로부터 예측되는 응답 변수를 선택할 수 있다. 일단 응답 변수가 선택되었으면, 예측 모델링 시스템(100)은, 사용자가 수용하거나 무시할 수 있는 호환 가능한 맞춤 메트릭을 추천할 수 있다. 이 접근법은 사용자에 의한 적은 기술과 노력을 요구할 수 있다. 예측 모델링 시스템은, 응답 변수 유형과 선택된 맞춤 메트릭에 기초하여, 통상의 회귀 모델, 신경망 및 다른 머신 학습 모델(예를 들어, 랜덤 포리스트, 부스팅된 트리, 지원 벡터 머신)을 포함하는 예측 모델의 세트를 제공할 수 있다. 가능한 모델링 접근법의 공간 중에서 자동 검색함으로써, 예측 모델링 시스템(100)은 최종 모델의 예상 정확도를 증가시킬 수 있다. 모델 선택의 디폴트 세트는 특정 모델 유형을 고려 대상에서 제외하거나, 예측 모델링 시스템에 의해 지원되지만 디폴트 목록의 일부가 아닌 다른 모델 유형을 추가하거나, 사용자 자신의 커스텀 모델 유형(예를 들어, R 또는 파이썬(Python)으로 구현됨)을 추가하기 위해 무시될 수 있다.3. Select a response variable and select a first-order fit metric: the user can select a predicted response variable from what is available in the modeling data set. Once the response variables have been selected, the
4. 입력 피처를 생성하고, 모델을 맞춤화하고, 모델-특유 튜닝 파라미터를 최적화하고, 성능을 평가한다: 일부 실시예에서, 피처 생성은 수치 공변량, Box-Cox 변환, 주요 컴포넌트 등을 위한 스케일링을 포함할 수 있다. 모델에 대한 파라미터를 튜닝하는 것은 상호 유효성 검증을 통해 최적화될 수 있다. 검증 세트 성능 측정은 다른 개요 특성(예를 들어, 회귀 모델에 대한 모델 파라미터, 부스트된 트리 또는 랜덤 포리스트에 대한 변수 중요도 측정)과 함께 각 모델에 대해 연산되고 제시될 수 있다.4. Generate input features, customize the model, optimize model-specific tuning parameters, and evaluate performance: In some embodiments, feature creation allows scaling for numerical covariates, Box-Cox transforms, key components, etc. may include Tuning parameters for the model can be optimized through mutual validation. Validation set performance measures may be computed and presented for each model along with other overview properties (eg, model parameters for regression models, variable importance measures for boosted trees or random forests).
5. 최종 모델을 선택한다: 최종 모델의 선택은 예측 모델링 시스템(100) 또는 사용자에 의해 이루어질 수 있다. 후자의 경우, 예측 모델링 시스템은 예를 들어, 모델에 대한 등급화된 검증 세트 성능 평가, 맞춤 프로세스에서 사용된 것과 다른 품질 측정에 의한 성능을 비교 및 등급화하는 옵션, 및/또는 최상의 개별 성능을 나타내는 이러한 컴포넌트 모델로부터 앙상블 모델을 구축할 수 있는 기회를 포함하여 사용자가 결정을 내리는 것을 돕도록 지원을 제공할 수 있다.5. Select the final model: The selection of the final model may be made by the
측정의 추론inference of measurement
일부 측정은 다른 측정보다 비용이 훨씬 많이 들기 때문에, 조직은 보다 비싼 메트릭에 대해 보다 저렴한 메트릭으로 대체하기를 원할 수 있다. 따라서, 머신 학습의 통상적인 애플리케이션은 보다 저렴한 것의 알려진 출력으로부터 고가의 측정 가능성 있는 출력을 추론하는 것이다. 예를 들어, "컬(curl)"은 종이 제품이 평면 형상에서 벗어나는 경향을 포착하는 속성이지만, 이는 통상적으로 제품이 완성된 후에만 판정할 수 있다. 제조 과정에서 쉽게 측정되는 기계적 속성으로부터 용지의 컬을 추론할 수 있는 것은 주어진 레벨의 품질을 달성하는 데 엄청난 비용 절감으로 귀결될 수 있다. 통상적인 최종-사용 속성에 대해, 이들 속성과 제조 프로세스 조건 사이의 관계는 잘 이해되지 않는다.Because some measures cost much more than others, organizations may want to substitute a cheaper metric for a more expensive metric. Thus, a common application of machine learning is to infer an expensive measurable output from the known output of a cheaper one. For example, "curl" is an attribute that captures the tendency of a paper product to deviate from its planar shape, but this can usually only be determined after the product is finished. Being able to infer the curl of a paper from mechanical properties that are easily measured during manufacturing can result in significant cost savings in achieving a given level of quality. For typical end-use attributes, the relationship between these attributes and manufacturing process conditions is not well understood.
일부 실시예에서, 본원에 설명되는 기술은 측정을 추론하는 데 사용될 수 있다. 예를 들어, 본원에 설명되는 기술은 다음과 같이 측정을 추론하는 문제에 적용될 수 있다:In some embodiments, the techniques described herein can be used to infer measurements. For example, the techniques described herein can be applied to the problem of inferring measurements as follows:
1. 모델링 데이터 세트를 특성화한다: 예측 모델링 시스템(100)은 주요 개요 특성을 제공하고, 사용자가 자유롭게 수용하거나, 거절하거나, 더 많은 정보를 요청하는 중요한 데이터 이상의 처리에 대한 추천을 제공할 수 있다. 예를 들어, 변수의 주요 특성이 연산되고 표시될 수 있으며, 누락 데이터의 출현이 표시될 수 있고, 처리 전략을 추천될 수 있으며, 수치 변수의 아웃라이어가 검출될 수 있고, 발견되면, 처리 전략이 추천될 수 있고 및/또는 기타 데이터 이상이 자동으로 검출될 수 있고(예를 들어, 인라이어, 그 값이 변경되지 않는 정보가 없는 변수), 추천된 처리가 사용자에게 이용 가능하게 될 수 있다.1. Characterize the modeling data set: The
2. 트레이닝/검증/홀드아웃 서브세트로 데이터 세트를 분할한다.2. Split the data set into training/validation/holdout subsets.
3. 피처 생성/모델 구조 선택/모델 맞춤: 예측 모델링 시스템(100)은 이들 단계를 조합 및 자동화하여 넓은 내부 반복을 허용할 수 있다. 주요 컴포넌트와 같은 고전적인 기술과 부스팅된 트리와 같은 더 새로운 방법 모두를 사용하여 복수의 피처가 자동으로 생성 및 평가될 수 있다. 회귀 모델, 신경망, 지원 벡터 머신, 랜덤 포리스트, 부스팅된 트리 및 다른 것을 포함하여 많은 상이한 모델 유형이 맞춤화 및 비교될 수 있다. 또한, 사용자는 이 디폴트 컬렉션의 일부가 아닌 다른 모델 구조를 포함하는 옵션을 가질 수 있다. 모델 하위-구조 선택(예를 들어, 신경망의 숨은 유닛의 수의 선택, 다른 모델-특유 튜닝 파라미터의 특정 등)은 이 모델 맞춤 및 평가 프로세스의 일부로서 넓은 상호 유효성 검증에 의해 자동으로 수행될 수 있다.3. Feature Creation/Model Structure Selection/Model Fit: The
4. 최종 모델을 선택한다: 최종 모델의 선택은 예측 모델링 시스템(100) 또는 사용자에 의해 이루어질 수 있다. 후자의 경우, 예측 모델링 시스템은, 예를 들어, 모델에 대한 등급화된 검증 세트 성능 평가, 맞춤 프로세스에서 사용된 것과 다른 품질 측정에 의한 성능의 비교 및 등급화의 옵션, 및/또는 최상의 개별 성능을 나타내는 이러한 컴포넌트 모델로부터 앙상블 모델을 구축할 수 있는 기회를 포함하여, 사용자가 이러한 결정을 내리는 것을 돕도록 지원을 제공할 수 있다.4. Select the final model: The selection of the final model may be made by the
일부 실시예에서는, 예측 모델링 시스템(100)이 데이터 사전 프로세싱(예를 들어, 비정상 검출), 데이터 분할, 다중 피처 생성, 모델 맞춤 및 모델 평가를 자동화하고 효율적으로 구현하기 때문에, 모델을 개발하는 데 필요한 시간은 종래의 개발 사이클에서 이루어지는 것보다 훨씬 더 짧을 수 있다. 또한, 일부 실시예에서, 예측 모델링 시스템은 누락 데이터 및 아웃라이어와 같은 공지의 데이터 이상과, 인라이어와 같은 덜 폭넓게 이해되는 이상(데이터 분포와 일관되지만 에러인 반복되는 관측치) 및 포스트딕터(postdictor)(즉, 정보 누락으로부터 발생하는 극도로 예측적인 공변량) 모두를 취급하기 위해 데이터 후-처리 절차를 자동으로 포함하기 때문에, 결과적인 모델이 더 정확하고 더 유용할 수 있다. 일부 실시예에서, 예측 모델링 시스템(100)은 종래의 실현 가능한 것보다 훨씬 광범위한 모델 유형 및 각 유형의 더 많은 특정 모델을 탐색할 수 있다. 이 모델의 다양성은 손상된 품질의 데이터 세트에 적용된 경우에도 불만족스러운 결과가 발생할 가능성을 크게 감소시킬 수 있다.In some embodiments, the
예측 모델 시스템의 구현Implementation of a predictive model system
도 5를 참조하면, 일부 실시예에서, 예측 모델링 시스템(500)(예를 들어, 예측 모델링 시스템(100)의 일 실시예)은 적어도 하나의 클라이언트 컴퓨터(510), 적어도 하나의 서버(550) 및 하나 이상의 프로세싱 노드(570)를 포함한다. 나타내어진 구성은 단지 예시적인 목적을 위한 것이며, 임의의 수의 클라이언트(510) 및/또는 서버(550)가 있을 수 있는 것으로 의도된다.5 , in some embodiments, predictive modeling system 500 (eg, one embodiment of predictive modeling system 100 ) includes at least one client computer 510 , at least one server 550 . and one or more processing nodes 570 . The configuration shown is for illustrative purposes only, and it is intended that there may be any number of clients 510 and/or servers 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)) 상에 구현될 수 있다.In some embodiments,
하나 이상의 통신 네트워크(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), 및/또는 많은 다른 통신 매체 및 프로토콜을 수용할 수 있는 인터넷으로 알려진 글로벌 통신 네트워크를 포함한다.One or more communication networks 530 connect the client 510 with the server 550 , and one or more communication networks 580 connect the server 550 with the processing node(s) 570 . Communication can be any standard phone line, LAN or WAN link (eg T1, T3, 56kb, X.25), broadband access (ISDN, Frame Relay, ATM) and/or wireless link (IEEE 802.11, Bluetooth). This can be done through the medium of Preferably, the network 530/580 is capable of performing TCP/IP protocol communications and data transmitted by the client 510, server 550 and processing node(s) 570 (eg, HTTP /HTTPS requests, etc.) can be communicated over something like a TCP/IP network. However, the network type is not limited, and any suitable network may be used. Non-limiting examples of networks that may serve as or be part of a communications network 530/580 include a wireless or wired Ethernet-based intranet, a local or wide area network (LAN or WAN), and/or many other communications It includes a global communications network known as the Internet that can accommodate media and protocols.
클라이언트(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)로서 역할을 하기 위해 단독으로 사용되는 특수 목적 하드웨어 디바이스와 같은 하드웨어 상에서 구현될 수 있다.The client 510 is preferably implemented as software 512 running on hardware. In some embodiments, the hardware is such as the MICROSOFT WINDOWS family of operating systems from Microsoft Corporation, Redmond, Wash., the MACINTOSH operating system from Apple Computer, Cupertino, CA, and/or SUN SOLARIS from SUN MICROSYSTEMS. various Unix families, and personal computers (eg, PC with INTEL processor or APPLE MACINTOSH) capable of running with an operating system such as GNU/Linux from RED HAT, INC. of Durham, NC, USA. can Client 510 may also be operated as a smart or dumb terminal, network computer, wireless device, wireless telephone, information appliance, workstation, minicomputer, mainframe computer, personal data assistant, tablet, smart phone or general purpose computer. It may be implemented on hardware, such as another computing device, or a special purpose hardware device used solely to serve as the client 510 .
일반적으로, 일부 실시예에서, 클라이언트(510)는 전자 메일 및/또는 인스턴트 메시지의 송신 및 수신, 월드 와이드 웹 상에서 이용 가능한 컨텐츠의 요청 및 시청, 채팅 룸에의 참여, 또는 컴퓨터, 휴대용 디바이스 또는 셀룰러 전화를 사용하여 통상적으로 수행되는 다른 작업을 수행하는 것을 포함하여 다양한 활동을 위해 동작 및 사용될 수 있다. 클라이언트(510)는 또한 클라이언트(510)를 그들의 고용의 일부로서 사용자에게 제공하는 고용주와 같이 다른 사람들을 대신하여 사용자에 의해 운영될 수 있다.Generally, in some embodiments, client 510 sends and receives electronic mail and/or instant messages, requests and views content available on the World Wide Web, participates in chat rooms, or uses a computer, portable device, or cellular It can be operated and used for a variety of activities, including using the phone to perform other tasks typically performed. The client 510 may also be operated by the user on behalf of others, such as an employer providing the client 510 to the user as part of their employment.
다양한 실시예에서, 클라이언트 컴퓨터(510)의 소프트웨어(512)는 클라이언트 소프트웨어(514) 및/또는 웹 브라우저(516)를 포함한다. 웹 브라우저(514)는, 클라이언트(510)가 (예를 들어, 서버(550)로부터) 웹 페이지 또는 다른 다운로드 가능한 프로그램, 애플릿 또는 문서를 웹-페이지 요청으로 요청할 수 있게 한다. 웹 페이지의 일례는 컴퓨터 실행 가능 또는 인터프리팅 가능한 정보, 그래픽, 사운드, 텍스트 및/또는 비디오를 포함하며, 표시, 실행, 재생, 프로세싱, 스트리밍 및/또는 저장될 수 있고, 다른 웹 페이지에 대한 링크 또는 포인터를 포함할 수 있는 데이터 파일이다. 상업적으로 이용 가능한 웹 브라우저 소프트웨어(516)의 예는 Microsoft Corporation에 의해 제공되는 INTERNET EXPLORER, AOL/Time Warner에 의해 제공되는 NETSCAPE NAVIGATOR, Mozilla Foundation에 의해 제공되는 FIREFOX, 또는 Google에 의해 제공되는 CHROME이다.In various embodiments, software 512 of client computer 510 includes client software 514 and/or web browser 516 . Web browser 514 enables client 510 to request a web page or other downloadable program, applet, or document (eg, from server 550 ) in a web-page request. Examples of web pages include computer-executable or interpretable information, graphics, sound, text and/or video, which may be displayed, executed, reproduced, processed, streamed, and/or stored, and may be linked to other web pages. A data file that may contain links or pointers. Examples of commercially available web browser software 516 are INTERNET EXPLORER provided by Microsoft Corporation, NETSCAPE NAVIGATOR provided by AOL/Time Warner, FIREFOX provided by Mozilla Foundation, or CHROME provided by Google.
일부 실시예에서, 소프트웨어(512)는 클라이언트 소프트웨어(514)를 포함한다. 클라이언트 소프트웨어(514)는 예를 들어, 사용자가 전자 메일, 인스턴트 메시지, 전화 호출, 비디오 메시지, 스트리밍 오디오 또는 비디오, 또는 다른 컨텐츠를 송신 및 수신할 수 있게 하는, 클라이언트(510)에 대한 기능을 제공한다. 클라이언트 소프트웨어(514)의 예는 Microsoft Corporation에 의해 제공되는 OUTLOOK 및 OUTLOOK EXPRESS, Mozilla Foundation에 의해 제공되는 THUNDERBIRD, 및 AOL/Time Warner에 의해 제공되는 INSTANT MESSENGER를 포함하지만, 이에 한정되지 않는다. 중앙 처리 장치, 휘발성 및 비휘발성 저장소, 입력/출력 디바이스 및 디스플레이를 포함하여 클라이언트 컴퓨터와 연관된 표준 컴포넌트는 나타내어지지 않는다.In some embodiments, software 512 includes client software 514 . The client software 514 provides functionality for the client 510, for example, allowing a user to send and receive e-mail, instant messages, phone calls, video messages, streaming audio or video, or other content. do. Examples of client software 514 include, but are not limited to, OUTLOOK and OUTLOOK EXPRESS provided by Microsoft Corporation, THUNDERBIRD provided by the Mozilla Foundation, and INSTANT MESSENGER provided by AOL/Time Warner. Standard components associated with the client computer are not shown, including central processing units, volatile and non-volatile storage, input/output devices, and displays.
일부 실시예에서, 웹 브라우저 소프트웨어(516) 및/또는 클라이언트 소프트웨어(514)는, 클라이언트가 예측 모델링 시스템(100)에 대한 사용자 인터페이스(120)에 액세스하는 것을 허용할 수 있다.In some embodiments, web browser software 516 and/or client software 514 may allow a client to access
서버(550)는 클라이언트(510)와 상호 작용한다. 서버(550)는 충분한 메모리, 데이터 저장 및 프로세싱 능력을 갖고, 서버-클래스 운영 체제(예를 들어, SUN Solaris, GNU/Linux 및 MICROSOFT WINDOWS 운영 체제 패밀리)를 실행하는 하나 이상의 서버-클래스 컴퓨터 상에서 구현되는 것이 바람직하다. 디바이스의 용량 및 사용자 베이스의 크기에 따라, 본원에 구체적으로 설명되는 것과 다른 시스템 하드웨어 및 소프트웨어가 또한 사용될 수 있다. 예를 들어, 서버(550)는 서버 팜(farm) 또는 서버 네트워크와 같은 하나 이상의 서버의 논리적 그룹이거나 그 일부일 수 있다. 다른 예로서, 서로 연관되거나 접속되는 복수의 서버(550)가 존재할 수 있거나, 복수의 서버가 독립적으로 동작할 수 있지만, 공유된 데이터를 갖는다. 추가적인 실시예에서 그리고 대규모 시스템에서 통상적인 것처럼, 애플리케이션 소프트웨어는 상이한 서버 컴퓨터, 동일한 서버 또는 일부 조합에서 실행되는 상이한 컴포넌트를 갖는, 컴포넌트로 구현될 수 있다.Server 550 interacts with client 510 . Server 550 is implemented on one or more server-class computers running server-class operating systems (eg, SUN Solaris, GNU/Linux, and MICROSOFT WINDOWS operating system families) with sufficient memory, data storage, and processing capabilities. It is preferable to be Depending on the capabilities of the device and the size of the user base, other system hardware and software than those specifically described herein may also be used. For example, server 550 may be or be part of a logical grouping of one or more servers, such as a server farm or server network. As another example, there may be a plurality of servers 550 that are associated with or connected to each other, or the plurality of servers may operate independently, but have shared data. In further embodiments and as is common in large-scale systems, the application software may be implemented in components, with different components running on different server computers, the same server, or some combination.
일부 실시예에서, 서버(550)는 예측 모델링 모듈(552), 통신 모듈(556), 및/또는 데이터 저장 모듈(554)을 포함한다. 일부 실시예에서, 예측 모델링 모듈(552)은 모델링 공간 탐색 엔진(110), 모델링 기술의 라이브러리(130), 예측 문제의 라이브러리, 및/또는 모델링 배치 엔진(140)을 구현할 수 있다. 일부 실시예에서, 서버(550)는 통신 모델(556)을 사용하여 예측 모델링 모듈(552)의 출력을 클라이언트(510)에 전달하고 및/또는 프로세싱 노드(들)(570) 상의 모델링 기술의 실행을 감독할 수 있다. 명세서 전체에 걸쳐 설명된 모듈들은 임의의 적절한 프로그래밍 언어 또는 언어들(C++, C#, Java, LISP, BASIC, PERL 등)을 사용하여 소프트웨어 프로그램으로서 및/또는 하드웨어 디바이스(예를 들어, ASIC, FPGA, 프로세서, 메모리, 저장소 등)로서 전체적으로 또는 부분적으로 구현될 수 있다.In some embodiments, the server 550 includes a
데이터 저장 모듈(554)은 예를 들어, 예측 모델링 라이브러리(130) 및/또는 예측 문제의 라이브러리를 저장할 수 있다. 데이터 저장 모듈(554)은 예를 들어, 스웨덴 웁살라에 소재한 MySQL AB에 의한 MySQL Database Server, 미국 캘리포니아주 버클리에 소재한 PostgreSQL Global Development Group에 의한 PostgreSQL Database Server, 또는 미국 캘리포니아주 레드우드 쇼어스에 소재한 ORACLE Copr.에 의해 제공되는 ORACLE Database Server를 사용하여 구현될 수 있다.The
도 6 내지 도 8은 예측 모델링 시스템(100)의 하나의 가능한 구현을 나타낸다. 도 6 내지 도 8의 논의는 일부 실시예의 예시의 방식으로 주어지며, 결코 한정적인 것은 아니다.6-8 show one possible implementation of the
전술한 절차를 실행하기 위해, 예측 모델링 시스템(100)은 다양한 클라이언트 및 서버 컴퓨터 상에서 실행되는 분산 소프트웨어 아키텍처(600)를 사용할 수 있다. 소프트웨어 아키텍처(600)의 목적은 동시에 풍부한 사용자 경험 및 연산 집약적인 프로세싱을 전달하는 것이다. 소프트웨어 아키텍처(600)는 기본 4-계층 인터넷 아키텍처의 변형을 구현할 수 있다. 도 6에 나타낸 바와 같이, 애플리케이션 및 데이터 계층을 통해 조정된 클라우드-기반 연산을 활용하기 위해 이 토대를 확장한다.To carry out the procedures described above, the
아키텍처(600)와 기본 4-계층 인터넷 아키텍처 간의 유사점 및 차이점은 다음을 포함할 수 있다:Similarities and differences between
(1) 클라이언트(610). 아키텍처(600)는 임의의 다른 인터넷 애플리케이션과 클라이언트(610)에 대해 본질적으로 동일한 가정을 한다. 주요 사용-사례는 복잡한 작업을 수행하기 위해 오랜 시간 동안 자주 액세스하는 것을 포함한다. 따라서, 타겟 플랫폼은 랩톱 또는 데스크톱 상에서 실행되는 풍부한 웹 클라이언트를 포함한다. 그러나, 사용자는 모바일 디바이스를 통해 아키텍처에 액세스할 수 있다. 따라서, 아키텍처는 비교적 얇은 클라이언트-측 라이브러리를 사용하여 Interface Service API에 직접 액세스하는 네이티브 클라이언트(612)를 수용하도록 설계된다. 물론, Java 및 Flash와 같은 임의의 크로스-플랫폼 GUI 계층도 마찬가지로 이러한 API에 액세스할 수 있다.(1)
(2) 인터페이스 서비스(620). 이 아키텍처 층은 기본 인터넷 표시 층의 확장 버전이다. 머신 학습을 지시하는 데 사용될 수 있는 복잡한 사용자 상호 작용으로 인해, 정적 HTML, 동적 HTML, SVG 시각화, 실행 가능한 Javascript 코드, 심지어 자체-포함 IDE를 포함하여 대안적인 구현이 이 층을 통해 광범위하게 다양한 컨텐츠를 지원할 수 있다. 또한, 새로운 인터넷 기술이 발전함에 따라, 구현은 사용자 상호 작용 로직을 실행하기 위해 클라이언트, 표현 및 애플리케이션 층 간에 새로운 형식의 컨텐츠를 수용하거나 노동 분업을 변경해야 할 필요가 있을 수 있다. 따라서, 인터페이스 서비스 층(620)은 다양한 풍부함을 갖는 복수의 컨텐츠 전달 메커니즘과, 인증, 액세스 제어 및 입력 검증과 같은 공통 지원 설비를 함께 통합하기 위한 유연한 프레임워크를 제공할 수 있다.(2) interface service (620). This architectural layer is an extended version of the basic Internet presentation layer. Due to the complex user interactions that can be used to direct machine learning, alternative implementations, including static HTML, dynamic HTML, SVG visualization, executable Javascript code, and even self-contained IDEs, are available through this layer for a wide variety of content. can support Also, as new Internet technologies evolve, implementations may need to accommodate new types of content or change division of labor between client, presentation and application layers to execute user interaction logic. Thus, the
(3) 분석 서비스(630). 아키텍처는 예측 분석 해결책을 생성하는 데 사용될 수 있으므로, 그 애플리케이션 계층은 분석 서비스 전달에 중점을 둔다. 머신 학습의 연산 강도는 클라우드 환경에서 실행되는 다수의 가상 "작업자(worker)"에 대한 머신-학습 작업의 동적 할당과 같은 표준 애플리케이션 계층에 대한 주요 향상을 유도한다. 실행 엔진에 의해 생성된 모든 유형의 로직 연산 요구에 대해, 분석 서비스 층(630)은 요청을 수용하고, 요청을 작업으로 분해하고, 작업을 작업자에게 할당하고, 작업 실행에 필요한 데이터를 제공하고, 실행 결과를 대조하도록 다른 층과 조정한다. 표준 애플리케이션 계층으로부터의 연관된 차이점도 존재한다. 예측 모델링 시스템(100)은, 사용자가 그들 자신의 머신-학습 기술을 개발하도록 허용할 수 있고, 따라서 일부 구현은 하나 이상의 풀 IDE를 제공할 수 있으며, 클라이언트, 인터페이스 서비스 및 분석 서비스 층에 걸쳐 그 기능이 분할된다. 그 후, 실행 엔진은 이러한 IDE를 통해 생성된 새롭고 향상된 기술을 장래의 머신-학습 연산에 통합한다.(3) Analysis Services (630). The architecture can be used to create predictive analytics solutions, so its application layer is focused on delivering analytics services. The computational intensity of machine learning drives major improvements over standard application layers, such as the dynamic allocation of machine-learning tasks to multiple virtual "workers" running in a cloud environment. For any type of logic operation request generated by the execution engine, the
(4) 작업자 클라우드(640). 효율적으로 모델링 연산을 수행하기 위해, 예측 모델링 시스템(100)은 이들을 더 작은 작업으로 분해할 수 있어, 이들을 클라우드 환경에서 실행 중인 가상 작업자 인스턴스에 할당한다. 아키텍처(600)는 상이한 유형의 작업자 및 상이한 유형의 클라우드를 허용한다. 각 작업자 유형은 특정 가상 머신 구성에 대응한다. 예를 들어, 디폴트 작업자 유형은 신뢰할 수 있는 모델링 코드에 대한 일반적인 머신-학습 기능을 제공한다. 그러나, 또 다른 유형은 사용자- 개발한 코드에 대해 추가적인 보안 "샌드박싱(sandboxing)"을 실시한다. 대안적인 유형은 특정 머신-학습 기술에 최적화된 구성을 제공할 수 있다. 분석 서비스 층(630)이 각 작업자 유형의 목적을 이해하는 한, 작업을 적절하게 할당할 수 있다. 유사하게, 분석 서비스 층(630)은 상이한 유형의 클라우드에 있는 작업자를 관리할 수 있다. 조직은 사설 클라우드에 인스턴스의 풀을 유지할 수 있을 뿐만 아니라 공용 클라우드에서 인스턴스를 실행하는 옵션을 가질 수 있다. 다른 종류의 상업용 클라우드 서비스 또는 심지어 독점적인 내부 서비스 상에서 실행되는 인스턴스의 상이한 풀을 가질 수도 있다. 분석 서비스 층(630)이 기능과 비용의 상충 관계를 이해하는 한, 적절하게 작업을 할당할 수 있다.(4) worker cloud (640). In order to efficiently perform modeling operations, the
(5) 데이터 서비스(650). 아키텍처(600)는, 다양한 층에서 실행되는 다양한 서비스가 대응하는 다양한 저장 옵션으로부터 이익을 얻을 수 있는 것으로 가정한다. 따라서, 예를 들어, 임의의 유형의 영구 데이터를 위한 파일 저장소, 캐싱과 같은 목적을 위한 임시 데이터베이스, 및 장기 기록 관리를 위한 영구 데이터베이스와 같은 데이터 서비스(650)의 풍부한 어레이를 전달하기 위해 프레임워크를 제공한다. 이러한 서비스는 클라우드 작업자 및 IDE 서버에 대해 사용되는 가상 머신 이미지 파일과 같은 특정 유형의 컨텐츠에 대해 특수화될 수도 있다. 일부 경우, 데이터 서비스 계층(650)의 구현은 특정 유형의 데이터에 대한 특정 액세스 관용구를 실시할 수 있어, 다른 계층이 원활하게 조정할 수 있다. 예를 들어, 데이터 세트 및 모델 결과에 대한 포맷을 표준화한다는 것은, 분석 서비스 계층(630)이 작업자에게 작업을 할당할 때 사용자의 데이터 세트에 대한 참조를 단순히 전달할 수 있음을 의미한다. 그 후, 작업자는 데이터 서비스 계층(650)으로부터 이 데이터 세트에 액세스하고, 차례로 갖고 있는, 데이터 서비스(650)를 통해 저장된 모델 결과에 대한 참조를 반환할 수 있다.(5) data service (650).
(6) 외부 시스템(660). 임의의 다른 인터넷 애플리케이션과 마찬가지로, API의 사용은, 외부 시스템이 아키텍처(600)의 임의의 계층에서 예측 모델링 시스템(100)과 통합될 수 있게 한다. 예를 들어, 비즈니스 대시보드 애플리케이션은 그래픽 시각화 및 모델링 결과를 인터페이스 서비스 계층(620)을 통해 액세스할 수 있다. 외부 데이터 웨어하우스 또는 심지어 라이브 비즈니스 애플리케이션도 데이터 통합 플랫폼을 통해 분석 서비스 계층(630)에 모델링 데이터 세트를 제공할 수 있다. 보고 애플리케이션은 데이터 서비스 계층(650)을 통해 특정 기간으로부터 모든 모델링 결과에 액세스할 수 있다. 그러나, 대부분의 상황에서, 외부 시스템은 작업자 클라우드(640)에 대한 직접 액세스를 갖지 않을 것이고; 분석 서비스 계층(630)을 통해 이를 활용할 것이다.(6)
모든 다층 아키텍처와 마찬가지로, 아키텍처(600)의 계층은 논리적이다. 물리적으로, 상이한 계층으로부터의 서비스가 동일한 시스템 상에서 실행될 수 있고, 동일한 계층의 상이한 모듈이 별개의 머신 상에서 실행될 수 있으며, 동일한 모듈의 복수의 인스턴스가 몇몇 머신에 걸쳐 실행될 수 있다. 마찬가지로, 한 계층의 서비스는 복수의 네트워크 세그먼트에 걸쳐 실행될 수 있으며, 다른 계층으로부터의 서비스는 다른 네트워크 세그먼트 상에서 실행될 수 있거나 실행되지 않을 수 있다. 하지만 논리적 구조는 개발자와 운영자의, 상이한 모듈이 어떻게 상호 작용하는지에 대한 기대를 조정하는 것을 도울 뿐만 아니라, 운영자에게 확장성, 신뢰성 및 보안성과 같은 서비스-레벨 요건을 밸런싱하는 데 필요한 유연성을 제공한다.As with all multi-layer architectures, the layers of
고-레벨 계층은 통상적인 인터넷 애플리케이션의 것과 상당히 유사한 것처럼 보이지만, 클라우드-기반 연산의 추가는, 정보가 시스템을 통해 어떻게 흐르는지를 실질적으로 변화시킬 수 있다.Although the high-level layers appear to be quite similar to those of typical Internet applications, the addition of cloud-based operations can substantially change how information flows through the system.
인터넷 애플리케이션은 통상적으로 동기 및 비동기의 2개의 별개 유형의 사용자 상호 작용을 제공한다. 항공기 찾기 및 예약과 같은 개념적으로 동기식 동작의 경우, 사용자는 다음 요청을 하기 전에 요청을 하고 응답을 기다린다. 특정 기준을 충족하는 온라인 거래에 대한 경보 설정과 같은 개념적으로 비동기 동작의 경우, 사용자는 요청을 하고 장래의 어느 시간에 시스템이 그에게 결과를 통지할 것으로 예상한다.(통상적으로, 시스템은 사용자에게 초기 요청 "티켓"을 제공하고, 지정된 통신 채널을 통해 통지를 제공한다.)Internet applications typically provide two distinct types of user interaction, synchronous and asynchronous. For conceptually synchronous operations, such as finding and booking an aircraft, the user makes a request and waits for a response before making the next request. For conceptually asynchronous operations, such as setting an alert for an online transaction that meets certain criteria, the user makes a request and expects the system to notify him of the result at some time in the future (usually, the system will notify the user Provides an initial request "ticket", and provides a notification over a designated communication channel).
반대로, 머신-학습 모델을 구축하고 정제하는 것은 중간의 어느 지점에서 상호 작용 패턴을 포함할 수 있다. 모델링 문제를 설정하는 것은 초기의 일련의 개념적으로 동기적인 단계를 포함할 수 있다. 그러나, 사용자가 시스템에게 대안적인 해결책의 연산을 개시하도록 명령하면, 대응 연산의 규모를 이해하는 사용자는 즉각적인 응답을 기대할 가능성이 작다. 피상적으로, 지연된 결과에 대한 이러한 예상은 상호 작용의 이 단계를 비동기로 보이게 만든다.Conversely, building and refining machine-learning models may involve interaction patterns at some point in the middle. Setting up a modeling problem may involve an initial series of conceptually synchronous steps. However, if a user instructs the system to initiate computation of an alternative solution, a user who understands the scale of the corresponding computation is less likely to expect an immediate response. Superficially, this anticipation of a delayed outcome makes this phase of the interaction seem asynchronous.
그러나, 예측 모델링 시스템(100)은 통지를 수신할 때까지 사용자가 "발사 후 망각(fire-and-forget)"하도록 강제하지 않으며, 즉, 문제와 그 자신의 관여를 중지시키지 않는다. 실제로, 데이터 세트를 계속 탐색하고 예비 결과가 도착하자마자 이를 검토할 것을 그에게 권장한다. 이러한 추가적인 탐색 또는 초기 지관은 모델-구축 파라미터를 "인-플라이트"로 변경하도록 그에게 고무시킬 수 있다. 그 후, 시스템은 요청된 변경을 프로세싱하고 프로세싱된 작업을 재할당할 수 있다. 예측 모델링 시스템(100)은 사용자의 세션 전반에 걸쳐 이러한 요청-및-수정 다이내믹을 연속으로 허용할 수 있다.However, the
따라서, 분석 서비스 및 데이터 서비스 계층은 한편으로는 사용자로부터의 요청-응답 루프와 다른 한편으로는 작업자 클라우드로의 요청-응답 루프 사이를 중재할 수 있다. 도 7은 이러한 관점을 나타낸다:Thus, the analytics service and data service layers can mediate between the request-response loop from the user on the one hand and the request-response loop to the worker cloud on the other hand. 7 shows this view:
도 7은, 예측 모델링 시스템(100)이 계층화된 모델로 반드시 꼭 맞춤화되지는 않는다는 것을 강조하고, 이는 각 계층이 대부분 그 계층 바로 아래의 계층에만 의존한다고 가정한다. 오히려, 분석 서비스(630) 및 데이터 서비스(650)는 사용자 및 연산을 협업하여 조정한다. 이러한 관점에서, 정보 흐름의 3개의 "열"이 있다:Fig. 7 emphasizes that the
(1) 인터페이스 <-> 분석 + 데이터. 가장 왼쪽의 흐름의 열(710)은 우선 사용자의 미가공 데이터 세트 및 모델링 요건을 정제된 데이터 세트 및 연산 작업 목록으로 변환한 다음, 이를 합쳐 사용자가 쉽게 이해할 수 있는 포맷으로 결과를 사용자에게 전달한다. 따라서 목표와 제약은 인터페이스 서비스(620)에서 분석 서비스(630)로 흐르며, 진행과 예외는 반대로 돌아간다. 병렬적으로, 미가공 데이터 세트와 사용자 주석은 인터페이스 서비스(620)에서 데이터 서비스(650)로 흐르며, 트레이닝된 모델과 그 성능 메트릭은 반대로 흐른다. 사용자는, 임의의 지점에서 분석 서비스(630) 및 데이터 서비스(650) 계층에 의한 변경 및 강제 조정을 개시할 수 있다. 이 동적 순환 흐름에 더하여, (예를 들어, 인터넷 서비스(620)가 분석 서비스(640)로부터 시스템 상태를 리트리빙하고 데이터 서비스(650)로부터 정적 컨텐츠를 검색할 때) 보다 통상적인 선형 상호 작용이 또한 존재함에 유의한다.(1) Interface <-> analysis + data.
(2) 분석 + 데이터 <-> 작업자. 가장 우측의 흐름의 열(730)은 작업자를 프로비저닝하고, 연산 작업을 할당하고, 이러한 작업에 대한 데이터를 제공한다. 따라서, 작업 할당, 그 파라미터 및 데이터 참조는 분석 서비스(630)에서 작업자 클라우드(640)로 흐르며, 진행 및 예외는 반대로 흐른다. 정제된 데이터 세트는 데이터 서비스(650)로부터 작업자 클라우드(640)로 흐르고, 모델링 결과는 반대로 흐른다. 사용자로부터의 갱신된 지시는 분석 서비스 계층(630)이 인-플라이트 작업자를 인터럽팅하고 갱신된 모델링 작업을 할당하는 것을 강제할 뿐만 아니라, 데이터 서비스 계층(650)으로부터의 데이터 세트의 리프레시를 강제할 수 있다. 차례로, 갱신된 할당 및 데이터 세트는 결과의 흐름을 작업자로부터 다시 변경한다.(2) analysis + data <-> worker.
(3) 분석 <-> 데이터. 중간의 2개의 계층은 왼쪽과 오른쪽 열 사이를 중재하기 위해 자체 사이에서 조정한다. 이 트래픽(720)의 대부분은 클라우드 작업자의 실행 진행 및 중간 계산을 추적하는 데 관련된다. 그러나, 모델-구축 명령어에 대한 전술한 인-플라이트 변경에 응답할 때 특히 흐름은 복잡해질 수 있으며; 분석 및 데이터 서비스는 현재 연산 상태를 평가하고, 어떠한 중간 계산이 여전히 유효한지를 결정하며 새로운 연산 작업을 올바르게 구성한다. 물론, (분석 서비스가 데이터 서비스로부터 클라우드 작업자에 대한 규칙 및 구성을 리트리빙할 때) 또한 보다 통상적인 선형 상호 작용이 여기에서도 존재한다.(3) Analysis <-> data. The middle two layers mediate between themselves to mediate between the left and right columns. Most of this
이러한 정보 흐름의 개념적 모델은 계층들 내의 기능 모듈의 배열에 대한 컨텍스트를 제공한다. 이는 더 높은 레벨의 블록에 애플리케이션 프로그래밍 인터페이스(API)를 제공하고 더 낮은 레벨의 블록에서 API를 소비하는 단순한 비상태 블록이 아니다. 오히려, 이는 사용자와 연산 간의 협업에 동적인 참여자이다. 도 8은 이들 기능 모듈의 배열을 나타낸다. 사용자의 관점에서, 인터페이스 서비스 계층은 몇몇 기능의 구분된 영역을 제공한다.This conceptual model of information flow provides context for the arrangement of functional modules within hierarchies. It is not just a stateless block that provides application programming interfaces (APIs) to higher-level blocks and consumes APIs in lower-level blocks. Rather, it is a dynamic participant in the collaboration between the user and the operation. 8 shows the arrangement of these functional modules. From the user's point of view, the interface service layer provides several distinct areas of functionality.
(1) 사용자/프로젝트 관리자(802). 각각의 머신-학습 프로젝트는 인터페이스의 프로젝트 관리 컴포넌트를 사용하여 프로젝트-레벨 파라미터, 책임 및 자원을 관리할 수 있는 적어도 하나의 할당된 관리자를 갖는다. 이 기능적 컴포넌트는 또한 시스템-레벨 관리 기능을 지원한다.(1) User/Project Manager (802). Each machine-learning project has at least one assigned administrator who can manage project-level parameters, responsibilities, and resources using the project management component of the interface. This functional component also supports system-level management functions.
(2) 모니터링(810). 이 모듈은 컴퓨팅 인프라스트럭쳐 상에서 진단을 제공한다. 이는 분석 서비스 계층에서 대응하는 모듈(818)과 협업하여 각 작업자 인스턴스에 대한 실시간 및 각 연산 작업에 대한 총계 모두에서 연산 자원 사용을 추적한다.(2) Monitoring (810). This module provides diagnostics on the computing infrastructure. It cooperates with the
(3) 기술 설계자(804). 이 모듈은 전술한 방법, 기술 및 작업 빌더를 사용하기 위한 그래픽 인터페이스를 지원한다. 이 그래픽 인터페이스가 어떻게 구현될 수 있는지의 예는 클라이언트(610)에서 실행되고 AJAX 요청을 통해 기술 설계자(804)와 통신하는 Javascript이며, 그래프를 사용자에게 그래픽으로 렌더링하고 변경을 서버에 다시 푸싱(pushing)한다.(3) Technical Designer (804). This module supports a graphical interface for using the methods, techniques and task builders described above. An example of how this graphical interface can be implemented is Javascript running on the
(4) 기술 IDE(812). 전술한 바와 같이, 예측 모델링 시스템(100)의 일부 구현은 리프-레벨 작업을 구현하기 위해 기술 개발자에게 IDE에 대한 빌트인 액세스를 제공할 수 있다. 이러한 IDE는 Python 또는 R과 같은 특수 과학 컴퓨팅 환경과 같은 머신-학습에 사용되는 범용 프로그래밍 언어를 지원할 수 있다. 이 기능은 클라이언트(610), 인터페이스 서비스(620) 및 분석 서비스(630) 계층에 걸쳐 실행될 수 있다. 클라이언트 컴포넌트(610)는 AJAX를 통해 인터페이스 서비스 컴포넌트로 세션을 우선 등록하는 IDE 환경에 대한 Javascript 컨테이너를 다운로드 및 실행할 수 있다. 등록 요청을 인증 및 검증한 후에, 인터페이스 서비스 컴포넌트는 사용자의 프로젝트 데이터를 클라이언트(610)로 다운로드하고 세션을 분석 서비스 계층에서 실행 중인 전용 IDE 서버 인스턴스로 넘긴다. 이 서버 인스턴스는 그 후 웹 소켓을 통해 클라이언트(610)와 직접 통신한다.(4) Technology IDE (812). As noted above, some implementations of
(5) 데이터 도구(806). 이 모듈은, 모델 빌더가 데이터 세트를 특정하고, 이를 이해하고, 모델-구축을 위해 이를 준비할 수 있게 한다.(5) Data Tools (806). This module enables model builders to specify data sets, understand them, and prepare them for model-building.
(6) 모델링 대시보드(814). 각 프로젝트는 그 자체 모델링 대시보드를 갖는다. 이 모듈의 인스턴스는 모델 빌더에게 제어 및 척도를 제공하여 프로젝트에 대한 모델링 프로세스를 론칭하고 도착한 대로 결과를 측정하고, 인-플라이트 조정을 수행한다. 어떤 모델링 기술이 어떤 데이터 세트에 대해 실행되는지 계산하고, 이러한 요건을 분석 서비스 계층에 전달한다. 일단 실행 엔진이 모델 구축을 시작하면, 이 모듈은 실행 상태와 제어를 제공한다.(6) Modeling Dashboard (814). Each project has its own modeling dashboard. Instances of this module provide control and metrics to model builders to launch the modeling process for a project, measure results as they arrive, and perform in-flight adjustments. It calculates which modeling techniques are running on which data sets and passes these requirements to the analytics service layer. Once the execution engine starts building the model, this module provides execution state and control.
(7) 직관(808). 일단 머신-학습 프로세스가 실질적인 결과를 생성하기 시작하면, 이 모듈은 모델 빌더에게 더 깊은 직관을 제공한다. 예는 텍스트 마이닝 개요, 예측자 중요도 및 각 예측자와 타겟 간의 일방적 관계를 포함한다. 이러한 직관의 대부분은 이해하기 쉽고 통계에 대한 깊은 지식을 필요로 하지 않는다.(7) Intuition (808). Once the machine-learning process begins to produce practical results, this module provides model builders with deeper intuition. Examples include a text mining overview, predictor importance, and a one-way relationship between each predictor and target. Most of these intuitions are easy to understand and do not require deep knowledge of statistics.
(8) 예측(816). 일단 실행 엔진이 적어도 하나의 모델을 구축하면, 이 모듈은 새로운 데이터에 기초하여 예측을 하기 위한 인터페이스를 제공한다.(8) Prediction (816). Once the execution engine has built at least one model, this module provides an interface for making predictions based on new data.
인터페이스 서비스 계층의 활동은 분석 서비스 계층에서 활동을 트리거한다. 전술한 바와 같이, 기술 IDE 및 모니터링 모듈은, 부분적으로 분석 서비스 계층에서 실행되도록 분할된다(모니터링 모듈(818) 및 기술 IDE 모듈(820) 참조). 이 레이어의 다른 모듈은 이하를 포함한다:An activity in the interface service layer triggers an activity in the analytics service layer. As mentioned above, the technology IDE and monitoring module are partitioned to run in part on the analytics service layer (see
(1) 작업 큐(822). 각각의 프로젝트는 대응하는 모델링 대시보드 인스턴스로부터의 모델 연산 요청을 서비스하는 자체 작업 큐 인스턴스를 가질 수 있다. 작업은 프로젝트의 데이터 세트의 파티션에 대한 참조, 모델링 기술 및 프로젝트 내의 우선 순위를 포함한다. 그 후, 이 모듈은 작업의 우선 순위화된 목록을 구성 및 유지 관리한다. 연산 자원이 이용 가능할 때, 브로커(824)는 작업 큐로부터 다음 작업을 요청한다. 충분한 권한을 가진 사용자는 임의의 시간에 큐에서 모델링 작업을 추가, 제거 또는 다시 우선 순위화할 수 있다. 큐는 일시적인 DB 모듈(826)을 통해 지속되며, 그 백엔드 저장은 극도로 빠른 응답 시간을 제공한다.(1) job queue (822). Each project may have its own work queue instance servicing model computation requests from the corresponding modeling dashboard instance. Tasks include references to partitions in the project's data set, modeling techniques, and priorities within the project. After that, the module constructs and maintains a prioritized list of tasks. When computing resources are available, the
(2) 브로커(824). 이들 모듈은 작업자를 인스턴스화하고, 이들에 작업을 할당하고, 이들의 건강을 모니터링한다. 하나의 브로커가 각 작업자 클라우드에 대해 실행될 수 있다. 브로커는 작업자 인스턴스를 동적으로 제공하고 종료하여 열린 작업 큐 플러스(plus) 안전한 버퍼로부터의 현재 요구 레벨을 서비스한다. 론칭시에, 각각의 작업자는 그 클라우드 환경에 대한 브로커에 자동으로 등록하여, 그 연산 기능에 대한 정보를 제공한다. 브로커 및 작업자는 매 수초마다 서로 심박 메시지를 전송한다. 작업자는 그 브로커와 충돌하거나 연락이 끊어지면 자동으로 재시작하고 재등록할 것이다. 브로커는 이용 가능한 자원의 풀에서 작업자를 폐기하고 너무 많은 심박 메시지가 누락되면 경고를 로그한다. 작업 큐에서 새로운 작업이 도착하고 작업자가 기존 작업을 완료하면, 브로커는 지속적으로 작업자 수와 이러한 작업자에 대한 작업의 할당을 재계산한다.(2) Brokers (824). These modules instantiate workers, assign tasks to them, and monitor their health. One broker can run for each worker cloud. The broker dynamically provisions and terminates worker instances to service the current request level from the open work queue plus secure buffers. Upon launch, each worker automatically registers with the broker for the cloud environment, and provides information on its computational function. Brokers and workers send heartbeat messages to each other every few seconds. The worker will automatically restart and re-register if it crashes or loses contact with that broker. The broker retires workers from the pool of available resources and logs an alert if too many heartbeat messages are missed. As new jobs arrive from the job queue and workers complete existing jobs, the broker continuously recalculates the number of workers and the assignment of jobs to these workers.
(3) 작업자 클라우드(640). 이 모듈은 작업자들의 풀(pool)을 포함한다. 각 작업자는 해당 클라우드 환경 내에서 실행 중인 가상 머신 인스턴스 또는 자체-포함 연산 자원의 다른 유닛이며, 대응 브로커로부터 작업을 수신한다. 작업자의 관점에서 볼 때, 작업은 프로젝트에 대한 참조, 프로젝트의 데이터 세트의 분할 및 모델링 기술을 포함한다. 할당된 모델링 기술의 각 작업에 대해, 작업자는 우선 모델링 결과에 대한 특별한 디렉토리 서브트리를 갖는 파일 저장 모듈(830)에 질의하여 프로젝트의 그 데이터 세트 분할에 대해 임의의 다른 작업자가 완료했는지를 확인할 수 있다. 단계를 프로세싱하는 것이 제1 작업자라면, 제1 작업자는 계산을 수행하고 이를 파일 저장소(830)에 저장하여 다른 작업자가 이를 재사용할 수 있다. 모델링 기술은 공통 모델링 작업 라이브러리의 작업으로부터 어셈블링되기 때문에, 모델링 기술에 걸쳐 작업 실행의 공통성의 상당한 레벨일 있을 수 있다. 작업 실행의 결과를 캐싱하는 것은 소비되는 연산 자원의 양을 상당히 감소시키도록 구현을 허용할 수 있다.(3) worker cloud (640). This module contains a pool of workers. Each worker is a virtual machine instance or other unit of self-contained computational resources running within that cloud environment and receives work from its corresponding broker. From the operator's point of view, work involves reference to the project, segmentation of the project's data set, and modeling techniques. For each task in the assigned modeling skill, the operator can first query the
데이터 서비스 계층(650)은 다른 계층의 모듈을 지원하기 위해 다양한 상이한 저장 메커니즘을 제공한다.The
(1) 임시 DB(826). 이 모듈은, 극히 빠른 액세스로부터 이익을 얻고 및/또는 일시적인 데이터를 위한 저장 메커니즘에 대한 인터페이스를 제공하고 그 저장 메커니즘을 관리한다. 일부 구현에서 자동 장애 조치가 있는 마스터-슬레이브 구성에 배치된 인-메모리 DBMS를 사용한다. 이 모듈은 객체를 키-값 쌍으로 저장하기 위한 인터페이스를 제공한다. 키는 특정 사용자 및 프로젝트에 링크되지만 여전히 매우 작다. 값은 스트링, 목록 또는 세트일 수 있다.(1) Temporary DB (826). This module benefits from extremely fast access and/or provides an interface to and manages a storage mechanism for ephemeral data. Some implementations use an in-memory DBMS deployed in a master-slave configuration with automatic failover. This module provides an interface for storing objects as key-value pairs. Keys are linked to specific users and projects, but are still very small. Values can be strings, lists, or sets.
(2) 영구 DB(828). 이 모듈은 영구적인 데이터에 대한 저장 메커니즘에 대한 인터페이스를 제공하고 그 저장 메커니즘을 관리한다. 일부 구현에서, 이 모듈에 의해 처리되는 주요 유형의 데이터에는 JSON 객체를 포함할 수 있으며, 높은 가용성 및 고성능 모두를 위해 자동 장애 조치를 갖춘 클러스터에 배치되는, 확장성이 큰 논(non)-SQL 데이터베이스를 사용할 수 있다. 이 모듈을 통해 저장된 객체는 통상적으로 그 크기가 수 메가바이트까지의 범위이다.(2) Persistent DB (828). This module provides an interface to a storage mechanism for persistent data and manages the storage mechanism. In some implementations, the main types of data processed by this module may include JSON objects, and highly scalable non-SQL, deployed in clusters with automatic failover for both high availability and high performance. database can be used. Objects stored through this module typically range in size to several megabytes.
(3) 파일 저장(830). 이 모듈은 파일에 대한 저장 메커니즘에 대한 인터페이스를 제공하고 그 저장 메커니즘을 관리한다. 이 모듈을 통해 저장된 데이터 유형은 업로드된 데이터 세트, 도출된 데이터, 모델 연산 및 예측을 포함한다. 이 모듈은 클라우드 저장소 톱 상의 파일 디렉토리 및 명명 규칙에 겹칠 수 있다. 또한, 클라우드 작업자가 이 모듈에 액세스하면, 저장된 파일을 로컬 저장소에 또한 일시적으로 캐싱할 수 있다.(3) Save file (830). This module provides an interface to the storage mechanism for files and manages the storage mechanism. Data types stored through this module include uploaded data sets, derived data, model computations and predictions. This module can overlap file directories and naming conventions on top of cloud storage. Additionally, when cloud workers access this module, they can also temporarily cache stored files in local storage.
(4) VM 이미지 저장소(832). 이 모듈은 IDE 및 작업자 인스턴스를 실행하는 데 사용되는 VM 이미지에 대한 저장소에 대한 인터페이스를 제공하고 그 저장소를 관리한다. 이는 이미지를 자족형 VM 컨테이너 포맷으로 저장한다. IDE 인스턴스의 경우, 세션에 걸쳐 사용자의 상태를 유지하면서, 새로운 작업자 인스턴스를 해당 작업자 유형의 템플릿으로부터 빈 사본으로서 로드한다.(4) VM image storage (832). This module provides an interface to and manages storage for VM images used to run the IDE and worker instances. It stores the image in a self-contained VM container format. In the case of an IDE instance, a new worker instance is loaded as an empty copy from the template of that worker type, preserving the user's state across sessions.
이들 서비스는 함께, 다음을 비롯한, 광범위하게 다양한 정보를 관리한다:Together, these services manage a wide variety of information, including:
(1) UI 세션(834): 활성 사용자 세션의 현재 상태를 렌더링하고 간단한 요청 인증 및 액세스 제어를 수행하는 데이터.(1) UI Session 834: Data that renders the current state of an active user session and performs simple request authentication and access control.
(2) UI 객체(836): UI에 의해 표시되는 컨텐츠.(2) UI object 836: content displayed by the UI.
(3) 캐시(838): 캐싱된 애플리케이션 컨텐츠.(3) Cache 838: Cached application content.
(4) 시스템 구성(840): 컴퓨팅 인프라 스트럭처를 론칭하고 모델 검색 서비스를 실행하는 구성 파라미터.(4) system configuration 840: configuration parameters for launching the computing infrastructure and running the model retrieval service.
(5) 시스템 상태(842): 시스템(600)의 모듈로부터 수집된 실시간 데이터.(5) System Status 842: Real-time data collected from modules of
(6) 사용자/프로젝트 관리자(844): 각 프로젝트의 설정 및 사용자 특권뿐만 아니라 개별 사용자 설정.(6) User/Project Manager 844: Individual user settings as well as settings and user privileges for each project.
(7) 데이터 세트(846): 사용자에 의해 프로젝트를 위해 업로드된 데이터 파일.(7) data set 846: data files uploaded for the project by the user.
(8) 모델링 계산(848): 중간 모델링 결과, 최종 맞춤화된 모델 및 계산된 예측.(8) Modeling Calculations (848): Interim modeling results, final customized models and calculated predictions.
(9) VM 이미지(850): 새로운 IDE 서버를 론칭하는 데 사용되는 이미지.(9) VM Image (850): An image used to launch a new IDE server.
이 경우에도 전술한 특정 모듈(802-850)은 논리적 구성이다. 각 모듈은 많은 다른 소스 파일로부터의 실행 코드를 포함할 수 있으며, 주어진 소스 파일은 많은 다른 모듈에 기능을 제공할 수 있다.Even in this case, the above-described specific modules 802-850 are logical configurations. Each module can contain executable code from many other source files, and a given source file can provide functionality to many other modules.
시간외 예측Out-of-hours forecast
일부 실시예에서, 예측 모델링 시스템(100)은 시간 t 및 선택적으로 t+1,..., t+i에서 타겟 X의 값을 예측할 수 있는 시계열 모델을 포함하고, t 이전의 시간들에서 X의 관측을 하고, 선택적으로 t 이전의 시간들에서 다른 예측자 변수 P의 관측을 행한다. 일부 실시예에서, 예측 모델링 시스템(100)은 과거의 관측치를 분할하여 감독 학습 모델을 트레이닝하고, 그 성능을 측정하며, 정확도를 향상시킨다. 일부 실시예에서, 시계열 모델은 예를 들어, 상이한 래그(lag)에서의 타겟의 이전 값을 예측하는 유용한 시간-관련 예측 피처를 제공한다. 일부 실시예에서, 예측 모델링 시스템(100)은 시간이 진행되고 새로운 관측치가 도달함에 따라, 이러한 관측치 및 모델을 다시 맞춤화하는 비용에 있어서 새로운 정보의 양을 고려하여 시계열 모델을 리프레시한다.In some embodiments,
시계열 모델의 유익한 사용을 예시하는 예가 이하에 설명된다. 이 예에서 슈퍼마켓 체인은 슈퍼마켓의 각 위치에 대해 다음 6주간의 일일 판매를 예측하기를 원한다. 이용 가능한 데이터는 10,000개의 위치로부터 이전 일일 판매의 3년치 및 다른 변수(예를 들어, 각 위치 주변의 인구 및 경제 성장, 휴일 및 주요 사회적 이벤트의 이력 및 계획 날짜, 및 체인 프로모션의 계획된 날짜)를 포함한다. 일부 실시예에서, 이용 가능한 데이터에 대해 트레이닝된 시계열 모델은 슈퍼마켓의 각 위치에 대한 다음 6 주간의 일일 판매를 정확하게 예측할 수 있다.An example illustrating the beneficial use of a time series model is described below. In this example, the supermarket chain wants to predict daily sales for the next six weeks for each location in the supermarket. Available data includes three years' worth of prior daily sales from 10,000 locations and other variables (e.g., population and economic growth around each location, history and planned dates of holidays and major social events, and planned dates of chain promotions). include In some embodiments, a time series model trained on the available data can accurately predict daily sales for the next 6 weeks for each location in the supermarket.
시계열 모델을 생성하고 사용하기 위한 기술의 일부 실시예가 이하에 설명된다. 데이터 과학자가 모델링 기술 빌더(220)로 예측 모델링 기술을 개발할 때, 데이터 과학자는 모델링 기술이 시계열 예측 문제에 특유하다는 것을 나타낼 수 있다. 모델링 기술 빌더(220)는 그 후 모델링 기술의 메타데이터에서 이러한 특성을 인코딩한다. 데이터 세트 자체는 또한 시계열 특정 메타데이터(예를 들어, 데이터가 생성된 날짜 범위, 관측치의 시간 분해능, 이미 발생한 다운-샘플링 등)를 가질 수 있다.Some embodiments of techniques for creating and using time series models are described below. When a data scientist develops a predictive modeling technique with the
탐색 엔진(110)이 (예를 들어, 도 4에 나타낸 방법(400)의 단계(404)에서) 데이터 세트를 로드할 때, 데이터 세트가 시계열 데이터를 포함하는 것으로 보이는지 여부를 자동으로 검출할 수 있으며, 검출된다면, 시간 인덱스가 있는 것으로 보인다. 시간 인덱스는 시간 분해능 및 시간 스텝("시간 간격")을 포함할 수 있다. 시간 분해능은 시간이 유지되는 단위(예를 들어, 초 또는 일)이다. 예를 들어, 날짜(예를 들어, 모든 날짜)가 표준 날짜 포맷(예를 들어, mm/dd/yyyy)으로 인코딩되는 경우, 엔진(110)은 날짜를 분해능으로서 사용할 수 있다. 다른 예로서, 날짜(예를 들어, 모든 날짜)가 시, 분 및 초를 포함하는 경우, 엔진(110)은 시간 분해능으로서 초를 사용할 수 있다. 유사하게, 엔진(110)은 공통 시간 분해능으로서 임의의 적절한 시간 메트릭(예를 들면, 천년, 백년, 십년, 년, 분기, 계절, 월, 주, 일, 시간, 분, 초, 밀리 초, 마이크로초, 나노초 등)을 사용할 수 있다. 시간 스텝은 연속 관측치(예를 들어, 매일, 매주 또는 매년의 데이터) 사이의 시기간(예를 들어, 최소 시기간, 가장 통상적인 시기간, 사용자 특정 시기간 등)이다.When the
데이터 세트가 시간 분해능의 혼합을 갖는 시계열 데이터를 포함하는 경우, 엔진(110)은 시간 인덱스의 일부로서 가장 공통적인 분해능을 사용할 수 있거나, 모든 시간 데이터를 공통 분해능으로 변환한 후 "최저 공통 분해능"을 사용할 수 있다. 일부 실시예에서, 엔진(110)은 인덱스(예를 들어, 최적 인덱스)를 선택하기 위해 잠재적인 인덱스의 빈도 및 불일치를 가중화하는 내부 목적 함수를 사용한다. 예를 들어, 날짜 변수의 90%가 일(day) 분해능이고 10%가 초의 분해능인 경우, 목적 함수는, 일 분해능이 최상의 선택인 것으로 결정할 수 있다. 역의 혼합(90%의 초의 분해능, 10%의 일 분해능)은, 초의 분해능이 최상의 선택이라는 결정을 산출할 수 있다. 50% 혼합에서, 목적 함수는 일과 초 사이의 분해능(예를 들어, 시간)에 대한 절충이 최적인 것으로 결정할 수 있다. 목적 함수의 선택은 이전에 사용된 목적 함수의 공간에 대한 메타-머신 학습과 다양한 특성을 갖는 예측 문제에 대한 정확도에 의해 추가로 결정될 수 있다.If the data set contains time series data with a mixture of temporal resolutions, the
일부 실시예에서, 사용자는, 데이터 세트가 시계열 데이터 세트인지 또는 아닌지에 대한 탐색 엔진의 결정을 (예를 들어, 방법(400)의 단계(406)에서) 무시할 수 있으며, 데이터 세트의 처리를 시계열 데이터 세트로서 차단 또는 강제한다. 사용자가 데이터 세트의 처리를 시계열 데이터 세트로 강제로 선택하는 경우, 사용자는 어떠한 변수가 시간-기반인지, 데이터 포맷을 어떻게 인터프리팅하는지, 및/또는 시간 인덱스를 특정할 수 있다. 일부 경우에, 사용자는 주어진 시간 인덱스를 사용하도록 변수를 어떻게 변환하는지에 대한 정보를 제공할 수 있다.In some embodiments, the user may override the search engine's determination (eg, at
자동으로 검출된 시계열 데이터 세트에 대해, 사용자는 제안된 시간 인덱스를 수용하거나, 임의의 자동으로 검출된 대안으로부터 선택하거나, 또는 커스텀 시간 인덱스를 특정할 수 있으며, 이는 또한 커스텀 시간 인덱스를 사용하기 위해 변수를 어떻게 변환할지에 대해 특정하는 것을 필요로 할 수 있다. 일단 시간 인덱스가 수용, 선택 또는 특정되면, 다른 시간 변수가 서로 오프셋으로 변환되어 예측 피처로 사용될 수 있다. 예를 들어, 데이터 세트가 시간 인덱스로서 mm/dd/yyyy를 사용하고 변수들 중 하나가 "생일"인 경우, 엔진(110)은 다른 이벤트(예를 들어, "결혼", "자녀 생일" 등)에 대한 "생일"("연령"으로도 알려짐)로부터의 오프셋을 연산할 수 있다.For an automatically detected time series data set, the user can accept the suggested time index, choose from any automatically detected alternatives, or specify a custom time index, which can also be used to use the custom time index. You may need to specify how to transform the variable. Once the temporal indices are accepted, selected or specified, the other temporal variables can be transformed into offsets from each other and used as predictive features. For example, if the data set uses mm/dd/yyyy as the time index and one of the variables is “birthday”, the
사용자가 시계열 데이터 세트를 확인 또는 지시하고 시간 인덱스를 확인, 선택 또는 특정한 후에, 엔진(110)은 (예를 들어, 방법(400)의 단계(408)에서) 데이터 세트를 평가하고 (예를 들어, 방법(400)의 단계(410)에서) 이 평가를 사용자에게 제시한다. 이 표현은 시간에 따라 타겟 및 예측자 변수값을 개별적으로 또는 그룹별로 나타내는 도면을 포함할 수 있다. 일부 실시예에서, 표현은 하나 이상의 시간 래그에서 과거 값에 대한 각 시계열 변수의 현재값의 의존성을 나타낸다. 데이터 세트가 시계열과 단면 변수의 혼합을 포함하는 패널 데이터 세트인 경우, 표현은 같은 시기간에서 또는 서로 다른 래그에서 단면 변수들 간의 종속성을 나타낼 수 있다.After the user identifies or indicates a time series data set and identifies, selects or specifies a time index, the
사용자는 트레이닝 윈도우의 끝(예를 들어, 트레이닝에 사용된 데이터의 시간 범위)과 검증 윈도우의 시작(예를 들어, 검증에 사용된 데이터의 시간 범위) 또는 홀드아웃 윈도우(예를 들어, 홀드아웃 테스트에 사용된 데이터의 시간 범위) 사이의 갭인 데이터에서 "스킵 범위"를 나타낼 수 있다. 일부 경우에, 최종 이력 관측치와 최초 예측 사이의 지연에 대한 운영 또는 물류 상의 이유가 존재한다. 슈퍼마켓 예에서, 지난 주에 대한 데이터는 일요일에 본사에 모두 도달하여 완벽하게 깨끗할 수 있다. 그러나, 예측 모델이 완료된 후에도 운영상 모든 매장 위치에 대한 예측 정보를 전달하고 매장이 예측에 응답하여 운영을 조정하는 데 며칠이 걸릴 수 있다. 마찬가지로, 이력 데이터를 수신하거나 클리닝하는 데 지연이 있을 수 있다. 어느 경우에도, 실용적인 목적은 최종의 이용 가능한 이력 관측치로부터 특정 갭 이후에 예측을 개시하는 것일 수 있다. 스킵 범위는, 엔진(110)이 그 자리에서 이 갭을 갖는 후보 예측 모델을 평가할 수 있게 한다.The user can select the end of the training window (e.g., the time range of data used for training) and the beginning of the validation window (e.g. the time range of the data used for verification) or holdout window (e.g., holdout). It can represent a "skip range" in data that is a gap between the time spans of the data used for testing. In some cases, there are operational or logistical reasons for the delay between the last historical observation and the initial prediction. In the supermarket example, data for the past week could all arrive at headquarters on a Sunday and be perfectly clean. However, even after the predictive model is complete, it can take several days for operations to deliver predictive information for all store locations and for stores to adjust operations in response to forecasts. Likewise, there may be a delay in receiving or cleaning historical data. In either case, the practical purpose may be to initiate predictions after a certain gap from the last available historical observation. Skip ranges allow
사용자는 원하는 예측 범위(예를 들어, 모델에 의해 예측될 장래 시기간의 수 또는 모델에 의해 예측될 별개의 장래 이벤트의 수)를 나타낼 수 있다. 일부 경우에, 이 범위는 예를 들어, 다음 분기 매출과 같이 단지 하나의 관측치일 수 있다. 다른 것 중에서, 슈퍼마켓 체인의 예와 같이, 범위는 몇몇 장래 시기간을 포함할 수 있으며, 이 예에서는 42일이다.The user may indicate a desired prediction range (eg, the number of future time periods to be predicted by the model or the number of distinct future events to be predicted by the model). In some cases, this range may be just one observation, for example next quarter sales. Among other things, as in the example of the supermarket chain, the range may include several future time periods, which in this example is 42 days.
일부 경우, 엔진(110)은 데이터의 빈도 및/또는 데이터의 총 시기간 수에 기초하여 예상 범위를 제시할 수 있다. 예를 들어, 일일 데이터 및 비교적 적은 수의 시기간으로, 엔진(110)은 7일 예상을 제시할 수 있는 반면, 비교적 많은 수의 시기간으로, 30일 예상을 제안할 수 있다. 월별 데이터의 경우, 엔진(110)은 시기간의 수에 따라 3개월, 6개월 또는 12개월 예상을 제시할 수 있다. 분기별 데이터로, 엔진(110)은 4분기, 8분기 또는 12분기 예상을 제시할 수 있다. 연간 데이터의 경우, 엔진(110)은 5년, 10년 또는 20년 예상을 제시할 수 있다.In some cases,
일부 경우에, 엔진(110)은 (예를 들어, 사용자가 비정상적으로 짧은 예상 범위를 특정한 경우) 예상 범위의 관측치 범위 또는 배수(예를 들어, 논리적 배수)와 동등한 검증 범위를 사용한다.In some cases,
시계열 데이터의 경우, 엔진(110)은 트레이닝 범위의 세트, 스킵 범위에 의해 오프셋된 대응하는 검증 범위 세트의 세트 및 홀드아웃 범위로 (예를 들어, 방법(400)의 단계(418 및 422)에서) 크로스 검증 및 홀드아웃을 구현할 수 있다. 엔진(110)은 이용 가능한 데이터의 양에 따라 조정할 수 있는 트레이닝 및 검증 범위의 디폴트 타겟 수를 가질 수 있다. 상대적으로 적은 시기간을 갖는 데이터 세트는 더 적은 트레이닝 및 검증 범위로 분할될 수 있으며, 상대적으로 많은 시기간을 갖는 데이터 세트는 더 많은 트레이닝 및 검증 범위로 분할될 수 있다.For time-series data,
데이터의 크기, 데이터의 빈도, 스킵 범위의 길이, 및/또는 예상 범위에 따라, 엔진(110)은 트레이닝 범위에 대한 길이를 선택할 수 있다. 예를 들어, 일일 관측치및 스킵 및 예상 범위가 주, 월 또는 년(또는, 대응하여 7, 30 및 365와 같은 일의 배수)으로 표시되면, 엔진은 주, 월 또는 년의 전체 수의 트레이닝 범위를 선택할 수 있다. 이러한 트레이닝 윈도우의 길이는 총 관측치 수, 총 데이터 양, 시간 경과에 따른 타겟 및 예측자 변수의 총 변동량, 변수에 의해 나타나는 계절적 변동량, 상이한 시간 윈도우에 대한 이 변수의 변동성의 일관성, 및/또는 예상 기간의 타겟 길이에 따를 수 있다. 엔진(110)은 트레이닝 윈도우의 길이(예를 들어, 최적 길이)를 선택하기 위해 이들 요인을 가중화하는 내부 목적 함수를 사용할 수 있다. 예를 들어, 디폴트는 전체 데이터 세트에 대해 균등하게 분할되어진 5개의 트레이닝 및 검증 범위일 수 있다. 그러나, 보다 긴 시기간 상에서의 변동량이 낮으면, 엔진(110)은 시간 윈도우를 단축시킬 수 있다. 또는, 데이터에 연간 계절성이 있는 경우, 엔진(110)은 단지 3개의 윈도우를 사용하여 수 년간의 데이터를 각 범위에 배치한다. 또는, 데이터 세트 내에 높은 변동을 나타내는 특정 기간이 수 개인 경우, 엔진(110)은 각 윈도우가 이들 기간 중 하나를 포함하도록 데이터를 분할할 수 있다. 목적 함수의 선택은 이전에 사용된 목적 함수의 공간에 대한 메타-머신 학습과 다양한 특성을 갖는 예측 문제에 대한 정확도에 의해 결정될 수 있다.Depending on the size of the data, the frequency of the data, the length of the skip range, and/or the expected range, the
원하는 수의 트레이닝 및 검증 범위와 이들 범위의 길이에 스킵 범위를 더한 길이로, 엔진(110)은 데이터 세트를 트레이닝 및 검증 범위의 일관된 시리즈로 분할할 수 있다. 패널 데이터의 경우, 각 트레이닝 및 검증 쌍은 (예를 들어, 섹션 관측치를 폴드에 랜덤하게 할당함으로써) 폴드로 추가로 분할될 수 있다. 슈퍼마켓 예에서, 트레이닝 범위는 30주, 스킵 범위는 1주, 검증 범위는 6주이고, 3년 동안 근사적으로 4개의 트레이닝 세트를 산출할 수 있다. 그러나 10,000개의 매장이 있기 때문에, 성능 향상을 위해 후술하는 바와 같이 대로 이 매장은 추가로 "다운-샘플링"될 수 있다. 또한, 엔진은 모델 하이퍼-파라미터 및 혼합 모델을 튜닝하는 데 사용할 트레이닝 및 검증 윈도우 내의 서브-윈도우를 예약할 수 있다.With the desired number of training and verification ranges, plus the length of these ranges plus the skip ranges, the
일부 실시예에서, 홀드아웃 데이터는 최종 시간 윈도우에만 있다. 그러나, 데이터 세트가 패널 데이터이고, 다운-샘플링된 경우, 홀드아웃 데이터는 다른 데이터와 동일한 기간으로부터의 데이터일 수 있지만, 다른 중첩되지 않는 샘플로부터의 데이터일 수 있다.In some embodiments, the holdout data is only in the last time window. However, when the data set is panel data and down-sampled, the holdout data may be data from the same period as the other data, but may be data from other non-overlapping samples.
단면 모델(예를 들어, 방법(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 기간).As with a cross-sectional model (see, for example, the description of
실행 속도를 향상시키고 자원 소비를 감소시키기 위해, 엔진(110)은 디폴트 다운-샘플링을 제안할 수 있다. 다운-샘플링에는 연대순 및 단면의 2개의 유형이 있다. 연대순 다운-샘플링에서, 각 분할 내의 전체 관측치 수는 고정된 퍼센티지로 감소될 수 있거나, 더 긴 시간 분해능으로 집계될 수 있다. 예를 들어, 100억 회의 관측치를 포함하는 시간 윈도우는 천만 회의 관측치로 감소될 수 있다. 또는, 매 밀리초마다 관측치가 있는 데이터의 윈도우는 매 분마다 집계된 관측치를 가질 수 있다. 이 경우, 다운-샘플링 윈도우 내의 모든 관측치는 집계된 관측에 대한 단일값으로 축소될 수 있다. 이 집계값은 예를 들어, 시작값, 종료값, 최대 극값, 평균값 또는 몇몇 변동 특성을 설명하기 위해 가중화 함수를 통해 연산된 값일 수 있다. 엔진(110)은 대응 시간 윈도우 내의 타겟 및 예측자의 변동성에 의한 관측치의 잠재적인 감소를 가중화하는 목적 함수를 사용할 수 있다. 예를 들어, 관측치의 1000x 감소는 변동성에서 5%로 자리 맞춤(justify)될 수 있다. 목적 함수의 선택은 이전에 사용된 목적 함수의 공간에 대한 메타-머신 학습과 다양한 특성을 갖는 예측 문제에 대한 정확도에 의해 추가로 결정될 수 있다.To improve execution speed and reduce resource consumption,
연대순 다운-샘플링은, 예를 들어, 데이터의 변동이 데이터의 주파수보다 낮은 극도로 높은 주파수 데이터에 대해 사용될 수 있다. 일반적으로 단면 다운-샘플링은 시간이 지남에 따라 그 거동이 크게 변하지 않는 매우 많은 수의 섹션이 있을 수 있기 때문에 보다 통상적이다. 슈퍼마켓 체인의 예의 경우, 각 매장 위치마다 하나씩 10,000개의 섹션이 있다. 변동의 대부분은 매장에 걸친 상대적으로 낮은 단면 변동과 함께 연대순 요인으로 인한 것일 수 있다. 예를 들어, 유사한 매장은 실제로 훨씬 적은 수의 대표 그룹에 속할 수 있다. 따라서, 엔진(110)은 섹션의 랜덤 서브샘플, 이 경우에는 저장 위치를 단지 구성하고, 하나 이상의 서브샘플에 대한 예측 모델을 트레이닝시킬 수 있다. 예를 들어, 10,000개의 모든 매장을 사용하는 대신에, 엔진(110)은 1,000개의 매장을 랜덤하게 선택하여 트레이닝할 수 있다. 또한, 크로스 검증이 단면 차원을 따라 사용되는 경우, 엔진(110)은 이러한 다운-샘플링을 적용할 수 있다. 예를 들어, 5-폴드 교차-검증의 경우, 엔진은 2,000개의 매장의 5 폴드 대신 400개 매장의 5 폴드를 사용할 수 있다. 다운-샘플링의 퍼센티지는 샘플의 다중 특성의 균형을 맞추거나 사용자에 의해 특정되는 목적 함수에 의해 결정되는 섹션 수의 함수에 의해 결정될 수 있다. 일부 경우에, 많은 상이한 예측 문제에 대한 메타-머신 학습에 의해 다운-샘플링 퍼센티지의 선택이 정제될 수 있다.Chronological down-sampling may be used, for example, for extremely high frequency data where the variation of the data is lower than the frequency of the data. In general, cross-sectional down-sampling is more common because there can be a very large number of sections whose behavior does not change significantly over time. For the example of a supermarket chain, there are 10,000 sections, one for each store location. Most of the variability may be due to chronological factors, with relatively low cross-sectional variability across stores. For example, similar stores may actually belong to a much smaller number of representative groups. Accordingly, the
시계열 모델로부터 정확한 예측을 생성하는 한가지 과제는, 이들 예측이 트레이닝 및 검증 시간 윈도우의 선택에 민감할 수 있다는 것이다. 일부 실시예에서, 엔진은 이 감도를 자동으로 평가한다. 예를 들어, 엔진(110)은 실행될 때 모든 모델링 기술에 대한 시간 윈도우 선택에 대한 감도를 평가할 수 있다. 다른 예로서, 엔진(110)은 모델이 예측 정확도의 특정 임계값을 초과한 후에 이 감도를 평가할 수 있다. 세번째 옵션은 상대적인 예측 정확도에 기초하여 톱 모델의 감도를 평가하는 것이다. 네번째 옵션은 사용자가 요청할 때 요구에 따라 감도 분석을 실행하는 것이다. 감도 분석은 모델을 슬라이딩 트레이닝 및 검증 윈도우로 맞춤화한 후 윈도우에 포함된 포인트들에 따라 모델 정확도가 어떻게 변하는지 측정하는 것을 포함할 수 있다. 예를 들어, 그래프는 수직 축에 모델 정확도를 플롯팅하고 수평 축에 트레이닝 윈도우의 시작 관측치를 플롯팅할 수 있다.One challenge in generating accurate predictions from time series models is that these predictions may be sensitive to the choice of training and validation time windows. In some embodiments, the engine automatically evaluates this sensitivity. For example, the
일단 엔진이 시계열 모델의 맞춤을 완료하고 이를 사용자에게 제시하면(예를 들어, 방법(400)의 단계(446)), 사용자는 모델 성능에 대한 상이한 트레이닝 데이터 윈도우의 영향을 추가로 탐구할 수 있다. 사용자 인터페이스는, 사용자가 특정 맞춤 모델 또는 맞춤 모델의 그룹을 선택하고, 트레이닝 및 검증 윈도우를 조정하도록 허용할 수 있어, 홀드아웃 윈도우에 있지 않은 임의의 관측치를 포함할 수 있다. 엔진이 하이퍼-파라미터 튜닝을 위해 서브-윈도우를 사용하지 않은 경우, 모델의 원래 맞춤 중에 계산된 최적의 하이퍼-파라미터가 새로운 윈도우로 모델을 다시 맞춤화할 때 사용될 수 있다. 네스팅된 트레이닝 및 검증 윈도우가 이용 가능한 경우, 엔진은 예약된 윈도우에서 최적의 하이퍼-파라미터를 자동으로 재계산하고 및/또는 최적의 하이퍼-파라미터를 재계산할지 또는 원래 계산된 것을 사용할지 여부를 사용자가 선택하도록 허용할 수 있다.Once the engine completes fitting the time series model and presents it to the user (eg, step 446 of method 400 ), the user can further explore the impact of different training data windows on model performance. . The user interface may allow the user to select a particular custom model or group of custom models, and adjust the training and validation windows, including any observations that are not in the holdout window. If the engine did not use sub-windows for hyper-parameter tuning, the optimal hyper-parameters calculated during the original fitting of the model can be used when refitting the model with the new window. If nested training and validation windows are available, the engine automatically recalculates the optimal hyper-parameters in the scheduled window and/or decides whether to recalculate the optimal hyper-parameters or use the original computed ones. You can allow the user to choose.
사용자가 홀드아웃 결과를 검토한 후에(예를 들어, 방법(400)의 단계(450)), 사용자는 트레이닝, 검증 및 홀드아웃 윈도우로부터의 데이터의 임의의 조합을 사용하여 모델의 임의의 서브세트를 다시 맞춤화할 수 있다. 홀드아웃 윈도우로부터의 데이터는 통상적으로 가장 최근 데이터이므로, 모델의 맞춤에서 이를 포함시키는 것은 장래 값을 예측하는 데 있어 모델의 정확도를 향상시킬 수 있다. 따라서, 새로운 예측자를 만들기 위해 모델을 배치하기 전에, 그 최종 관측치가 홀드아웃 윈도우의 최종 관측치인 트레이닝 데이터에 대해 모델을 다시 맞춤화할 수 있다. 이러한 다시 맞춤화에 사용하기 위한 제1 관측치의 선택은 감도 분석 동안 계산된 트레이닝 윈도우의 크기(예를 들어, 최적 크기)에 의존할 수 있다. 사용자는 예측 문제의 감도 및/또는 도메인 지식에 대한 사용자의 분석에 기초하여 계산된 시작 포인트를 무시할 수 있다.After the user has reviewed the holdout results (eg, step 450 of method 400 ), the user can use any combination of training, validation, and data from the holdout window to any subset of the model. can be customized again. Since the data from the holdout window is typically the most recent data, including it in the fit of the model can improve the accuracy of the model in predicting future values. Thus, before deploying the model to make new predictors, it is possible to refit the model to the training data whose last observations are the last observations in the holdout window. The selection of the first observation to use for this re-customization may depend on the size (eg, optimal size) of the training window computed during the sensitivity analysis. The user may override the calculated starting point based on the user's analysis of domain knowledge and/or the sensitivity of the prediction problem.
시계열 모델링 기술의 일부 실시예Some examples of time series modeling techniques
도 9를 참조하면, 시계열 예측 모델링을 위한 방법(900)은 단계(910-980)를 포함할 수 있다. 단계(910)에서, 시계열 데이터가 얻어진다. 시계열 데이터는 하나 이상의 데이터 세트를 포함할 수 있다. 각각의 데이터 세트는 복수의 관측치를 포함할 수 있다. 각각의 관측치는 (1) 관측치와 연관된 시간의 표시 및 (2) 하나 이상의 변수의 값을 포함할 수 있다. 단계(920)에서, 시계열 데이터의 시간 간격이 결정된다. 단계(930)에서, 시계열 데이터의 하나 이상의 변수가 타겟으로서 식별된다. 선택적으로, 시계열 데이터의 하나 이상의 변수가 또한 피처로서 식별될 수 있다. 단계(940)에서, 시계열 데이터에 의해 표현된 예측 문제와 연관된 "예상 범위" 및 "스킵 범위"가 결정된다. 예상 범위는 타겟의 값이 예측되는 시기간의 지속 시간을 나타낼 수 있다. 스킵 범위는 예상 범위에서 가장 빠른 예측과 연관된 시간과, 예측 범위에서의 예측이 기초로 하는 최근 관측치와 연관된 시간 사이의 시간 래그를 나타낼 수 있다.Referring to FIG. 9 , a
단계(950)에서, 트레이닝 데이터가 시계열 데이터로부터 생성된다. 트레이닝 데이터는 적어도 하나의 데이터 세트의 관측치의 제1 서브세트를 포함한다. 관측치의 제1 서브세트는 관측치의 트레이닝-입력 및 트레이닝-출력 컬렉션을 포함한다. 트레이닝-입력 및 트레이닝-출력 컬렉션에서 관측치와 연관된 시간은 각각 트레이닝-입력 시간 범위 및 트레이닝-출력 시간 범위에 대응한다. 스킵 범위는 트레이닝-입력 시간 범위의 끝을 트레이닝-출력 시간 범위의 시작으로부터 분리한다. 트레이닝-출력 시간 범위의 지속 시간은 적어도 예상 범위만큼 길다. 단계(960)에서, 테스팅 데이터가 시계열 데이터로부터 생성된다. 테스팅 데이터는 적어도 하나의 데이터 세트의 관측치의 제2 서브세트를 포함한다. 관측치의 제2 서브세트는 관측치의 테스트-입력 및 테스트-유효성 검증 컬렉션을 포함한다. 테스트-입력 및 테스트-유효성 검증 컬렉션 내의 관측치와 연관된 시간은 각각 테스트-입력 시간 범위 및 테스트-유효성 검증 시간 범위에 대응한다. 스킵 범위는 테스트-입력 시간 범위의 끝을 테스트-유효성 검증 검사 시간 범위의 시작 부분에서 분리한다. 시험-검증 시간 범위의 지속 시간은 적어도 예상 범위만큼 길다. 단계(970)에서, 예측 모델이 트레이닝 데이터에 맞춤화된다. 단계(980)에서, 맞춤화된 모델이 테스팅 데이터에 대해 테스트된다.In
단계(910)에서, 시계열 데이터가 획득된다. 시계열 데이터는 임의의 적절한 기술(센서를 사용하여 측정되거나, 통신 네트워크를 통해 수신되거나, 컴퓨터-판독 가능 매체 등으로부터 로드되는 것, 등)을 사용하여 임의의 적절한 소스로부터 얻어질 수 있다. 시계열 데이터는 하나 이상의 데이터 세트를 포함할 수 있으며, 그 각각은 하나 이상의 관측치를 포함할 수 있다. 데이터 세트는 전술한 바와 같이, 데이터의 각각의 "섹션"에 대응할 수 있다. 데이터 세트 내의 각각의 관측치는 그 관측치와 연관된 시간의 표시(예를 들어, 타임스탬프)를 포함할 수 있다. 관측치와 연관된 시간은, 관측치의 값이 측정, 보고, 수신될 때 등의 시간일 수 있다. 관측치와 연관된 "시간"은 날짜 및/또는 시간, 또는 임의의 다른 적절한 시간 데이터를 포함할 수 있다.In step 910, time series data is obtained. The time series data may be obtained from any suitable source using any suitable technique (measured using a sensor, received over a communication network, loaded from a computer-readable medium, etc.). Time series data may include one or more data sets, each of which may include one or more observations. A data set may correspond to each “section” of data, as described above. Each observation in the data set may include an indication (eg, a timestamp) of a time associated with that observation. The time associated with an observation may be the time when a value of the observation is measured, reported, received, etc. A “time” associated with an observation may include a date and/or time, or any other suitable temporal data.
단계(920)에서, 시계열 데이터의 시간 간격이 결정된다. 일부 실시예에서, 데이터의 시간 간격은 데이터와 연관된 메타데이터에 의해 명시적으로 나타내어진다. 일부 실시예에서, 데이터의 시간 간격은 데이터를 분석함으로써(예를 들어, 관측치와 연관된 시간 표시자의 시간 분해능 및/또는 연속 관측치와 연관된 시간들 사이의 간격에 기초하여) 결정된다.In
데이터 세트에서의 관측치 사이의 시간 간격은 균일하거나 불균일할 수 있다. 데이터 세트의 관측치 사이의 시간 간격이 균일하면, 균일한 간격은 데이터 세트의 시간 간격일 수 있다. 데이터 세트의 관측치 간의 시간 간격이 불균일한 경우, 수정된 데이터 세트의 관측치 간의 시간 간격이 균일하도록 데이터 세트가 수정될 수 있다. 수정된 데이터 세트에 대한 시간 간격은, 예를 들어, 목적 함수(예를 들어, 가중화된 목적 함수)를 원래의 데이터 세트에 적용함으로써 결정될 수 있다. 목적 함수는, 예를 들어, (1) 불균일한 시간 간격들 각각을 나타내는 연속 관측치 쌍의 각각의 비율, 및/또는 (2) 불균일 시간의 지속 시간에 기초하여, 수정된 시간 간격을 결정할 수 있다. 일부 실시예에서, 수정된 시간 간격은 최단 공통 기간(예를 들어, 불균일 기간 각각의 정수배인 최단 기간)이다.The time interval between observations in a data set can be uniform or non-uniform. If the time interval between observations in the data set is uniform, then the uniform interval may be the time interval in the data set. If the time interval between observations in the data set is non-uniform, the data set may be modified such that the time interval between observations in the modified data set is uniform. The time interval for the modified data set may be determined, for example, by applying an objective function (eg, a weighted objective function) to the original data set. The objective function may determine a modified time interval, for example, based on (1) each proportion of a pair of consecutive observations representing each of the non-uniform time intervals, and/or (2) the duration of the non-uniform time. . In some embodiments, the modified time interval is the shortest common period (eg, the shortest period that is an integer multiple of each non-uniform period).
불균일 시간 간격을 갖는 원래의 데이터 세트는 원래의 데이터 세트의 관측치를 샘플링(예를 들어, 다운-샘플링) 및/또는 집계함으로써 수정된 균일 시간 간격을 갖는 수정된 데이터 세트로 변환될 수 있다. 원래의 데이터 세트의 관측치를 다운-샘플링하는 것은 원래의 데이터 세트의 관측치에 의해 커버되는 시기간의 수정된 시간 간격의 각 인스턴스에 대해: 시계열 데이터의 시간 간격의 인스턴스에 대응하는 시간과 연관된 원래의 데이터 세트의 모든 관측치를 식별하는 것, 식별된 관측치를 집계하여 집계 관측치를 생성하고, 집계 관측치를 수정된 데이터 세트에 삽입하는 것을 포함할 수 있다. 식별된 관측치의 세트를 집계하는 것은 집계 관측치에서 각 변수의 값을 (1) 식별된 관측치 중 가장 초기에 포함된 대응 변수값, (2) 가장 최근의 식별된 관측치에 포함된 대응 변수값, (3) 식별된 관측치 포함된 대응하는 변수값의 최대값, (4) 식별된 관측치에 포함된 대응하는 변수값의 최소값, (5) 식별된 관측치에 포함된 대응하는 변수값의 평균, (6) 식별된 관측치에 포함된 대응 변수값의 함수의 값으로 설정함으로써 수행될 수 있다.An original data set with non-uniform time intervals may be transformed into a modified data set with modified uniform time intervals by sampling (eg, down-sampling) and/or aggregating observations in the original data set. Down-sampling the observations in the original data set includes, for each instance of the modified time interval of the time period covered by the observation in the original data set: the original data associated with a time corresponding to the instance of the time interval in the time series data. It may include identifying all observations in the set, aggregating the identified observations to produce aggregate observations, and inserting the aggregate observations into the revised data set. Aggregating a set of identified observations involves calculating the value of each variable in the aggregated observations: (1) the value of the corresponding variable included in the earliest identified observation, (2) the value of the corresponding variable included in the most recent identified observation, ( 3) the maximum value of the corresponding variable value contained in the identified observation, (4) the minimum value of the corresponding variable value contained in the identified observation, (5) the average of the corresponding variable value contained in the identified observation, (6) This can be done by setting it to the value of a function of the corresponding variable value included in the identified observation.
시계열 데이터의 데이터 세트들 간의 시간 간격은 균일하거나 불균일할 수 있다. 데이터 세트들 사이의 시간 간격이 균일하다면, 그 균일한 간격은 시계열 데이터의 시간 간격일 수 있다. 데이터 세트들 사이의 시간 간격이 불균일하다면, 수정된 데이터 세트들 사이의 시간 간격이 균일하도록 하나 이상의 데이터 세트가 수정될 수 있다. 시계열 데이터의 수정된 시간 간격은 데이터 세트의 간격으로부터 선택되거나 임의의 다른 적절한 기술을 사용하여 결정될 수 있다. 예를 들어, 시계열 데이터의 수정된 시간 간격은, (1) 불균일 시간 간격의 각각을 나타내는 데이터 세트에 포함된 관측치의 각각의 비율, 및/또는 (2) 데이터 세트의 불균일 시간 간격의 지속 시간에 기초하여 목적 함수(즉, 가중화된 목적 함수)를 사용하여 계산될 수 있다. 일부 실시예에서, 시계열 데이터의 수정된 시간 간격은 가장 짧은 공통 기간(예를 들어, 데이터 세트의 불균일 시간 간격 각각의 정수배인 최단 기간)이다. 데이터 세트의 시간 간격을 수정하기 위한 기술의 일부 실시예가 위에 설명되었다.The time interval between data sets of time series data may be uniform or non-uniform. If the time interval between data sets is uniform, the uniform interval may be the time interval of time series data. If the time intervals between the data sets are non-uniform, one or more data sets may be modified such that the time intervals between the modified data sets are uniform. The corrected time interval of the time series data may be selected from intervals in the data set or determined using any other suitable technique. For example, the adjusted time interval of time series data is determined by (1) each proportion of observations included in the data set representing each of the non-uniform time intervals, and/or (2) the duration of the non-uniform time interval of the data set. based on the objective function (ie, a weighted objective function). In some embodiments, the corrected time interval of the time series data is the shortest common period (eg, the shortest period that is an integer multiple of each non-uniform time interval of the data set). Some embodiments of techniques for modifying time intervals of data sets have been described above.
방법(900)의 일부 실시예에서, 피처 엔지니어링이 시계열 데이터에 대해 수행될 수 있다. 이러한 피처 엔지니어링은 예를 들어, 시계열 데이터의 시간 간격이 결정되기 전 또는 후에 수행될 수 있다. 일부 실시예에서, 시계열 데이터에 대한 피처 엔지니어링을 수행하는 것은: 시간을 나타내는 값을 갖는 시계열 데이터에서 제1 변수를 식별하는 것; 제2 변수의 값들을 생성하는 것으로서, 제2 변수의 각각의 값은 제1 변수의 시간 값과 기준 시간 값 사이의 오프셋이고; 및 제2 변수를 시계열 데이터에 가산하는 것(예를 들어, 제2 변수의 값이 도출된 제1 변수의 값을 포함하는 관측치에 제2 변수의 각 값을 가산함)을 포함할 수 있다. 일부 실시예에서, 제1 변수는 시계열 데이터로부터 제거될 수 있다. 일부 실시예에서, 기준 시간은 이벤트의 날짜(예를 들어, 출생, 결혼, 학교 졸업, 고용주에 대한 고용 개시, 학교 졸엄, 특정 직책에서의 업무 개시 등)이다. 이 피처 엔지니어링 기술은 절대 시간값을 상대 시간값으로 변환하는 데 사용될 수 있으며, 이는 상이한 기간의 상이한 데이터 세트의 데이터에서 패턴(예를 들어, 엔티티의 연령과 관련된 패턴)의 식별을 매우 용이하게 할 수 있으므로, 이러한 패턴과 관련된 값의 정확한 예측을 매우 용이하게 할 수 있다.In some embodiments of
일부 실시예에서, 피처 엔지니어링을 수행하는 것은 시계열 데이터를 시간적으로 다운-샘플링하는 것을 포함한다. 시계열 데이터를 시간적으로 다운-샘플링하기 위한 몇몇 기술을 전술하였다. 시계열 데이터를 시간적으로 다운-샘플링하는 것은 시계열 데이터에 기초하여 시계열 모델링 기술의 효율성을 향상시킬 수 있다(예를 들어, 연산 자원 사용을 감소시킴).In some embodiments, performing feature engineering includes temporally down-sampling the time series data. Several techniques for temporally down-sampling time series data have been described above. Temporally down-sampling the time series data may improve the efficiency of a time series modeling technique based on the time series data (eg, reduce computational resource usage).
방법(900)의 일부 실시예에서, 그래픽 정보(예를 들어, 그래프 또는 차트)는 사용자 인터페이스를 통해 제시(예를 들어, 표시)될 수 있다. 그래픽 정보는 하나의 변수값의 변화와 다른 변수값의 상관된 변화 사이의 시간 래그를 나타낼 수 있다. 이러한 상관은 임의의 적절한 기술을 사용하여 검출될 수 있다.In some embodiments of
단계(930)에서, 시계열 데이터의 하나 이상의 변수가 타겟으로서 식별된다. 타겟은 예를 들어, 시계열 데이터와 연관된 메타데이터, 예측 문제에 대한 설명 및/또는 사용자 입력에 기초하여 식별될 수 있다. 선택적으로, 시계열 데이터의 하나 이상의 변수가 또한 피처로서 식별될 수 있다. 피처는 예를 들어, 시계열 데이터와 연관된 메타데이터, 예측 문제에 대한 설명, 및/또는 사용자 입력에 기초하여 식별될 수 있다.At step 930 , one or more variables of the time series data are identified as targets. A target may be identified, for example, based on metadata associated with the time series data, a description of the prediction problem, and/or user input. Optionally, one or more variables of the time series data may also be identified as features. A feature may be identified, for example, based on metadata associated with the time series data, a description of the prediction problem, and/or user input.
단계(940)에서, 시계열 데이터에 의해 표현된 예측 문제와 연관된 예상 범위가 결정된다. 예상 범위는 타겟의 값이 예측되는 기간의 지속 시간을 나타낼 수 있다. 예상 범위는 (1) 시계열 데이터의 시간 간격, (2) 시계열 데이터에 포함된 관측치의 수, (3) 관측치에 의해 시계열 데이터에 포함되는 시기간, (4) 마이크로초, 밀리초, 초, 분, 시간, 일, 주, 개월, 분기, 계절, 년, 십년, 백년 및 천년으로 구성된 그룹에서 선택된 자연 기간, (5) 사용자 입력 등에 기초하여 결정될 수 있다. 일부 실시예에서, 예상 범위는 시계열 데이터의 시간 간격의 정수배이다. 일반적으로, 시계열 데이터의 관측치 수가 증가함에 따라 예상 범위가 증가할 수 있다.In
단계(940)에서, 시계열 데이터에 의해 표현된 예측 문제와 관련된 스킵 범위가 결정된다. 스킵 범위는 예상 범위에서 가장 빠른 예측과 연관된 시간과 예상 범위에서의 예측이 기초로 하는 최근 관측치와 연관된 시간 사이의 시간 래그를 나타낼 수 있다. 스킵 범위는 적어도 부분적으로, 시계열 데이터의 컬렉션에서의 대기 시간(latency), 시계열 데이터의 통신에서의 대기 시간, 시계열 데이터 분석에서의 대기 시간, 시계열 데이터의 분석의 통신에서의 대기 시간, 및/또는 시계열 데이터의 분석에 기초한 액션 구현의 대기 시간에 기초하여 결정될 수 있다. 이러한 대기 시간은 예를 들어, 사용자 입력 및/또는 시계열 데이터와 연관된 메타데이터에 기초하여 결정될 수 있다. 일부 실시예에서, 스킵 범위는 시계열 데이터와 연관된 메타데이터에 기초하여 결정되거나 사용자에 의해 특정된다.In
단계(950)에서, 트레이닝 데이터가 시계열 데이터로부터 생성된다. 트레이닝 데이터는 적어도 하나의 데이터 세트의 관측치의 제1 서브세트를 포함한다. 관측치의 제1 서브세트는 관측치의 트레이닝-입력 및 트레이닝-출력 컬렉션을 포함한다. 트레이닝-입력 및 트레이닝-출력 컬렉션 내의 관측치와 연관된 시간은 각각 트레이닝-입력 시간 범위 및 트레이닝-출력 시간 범위에 대응한다. 스킵 범위는 트레이닝-입력 시간 범위의 끝을 트레이닝-출력 시간 범위의 시작으로부터 분리한다. 트레이닝-출력 시간 범위의 지속 시간은 적어도 예상 범위만큼 길다.In
일부 실시예에서, 트레이닝-입력 시간 범위의 지속 시간은 시계열 데이터의 관측치의 총수, 변수 중 적어도 하나의 값의 시간에 따른 변화량, 적어도 하나의 변수의 값의 정기적인 변동의 양, 복수의 기간에 걸친 변수 중 적어도 하나의 변수의 값의 변동의 일관성, 및/또는 예상 범위의 지속 시간에 기초하여 결정된다.In some embodiments, the duration of the training-input time range is the total number of observations in the time series data, the amount of change over time in the value of at least one variable, the amount of periodic change in the value of the at least one variable, over a plurality of time periods. is determined based on the consistency of the variation in the value of at least one of the variables across, and/or the duration of the expected range.
일부 실시예에서, 모든 트레이닝 데이터에 대해 모델을 트레이닝하기보다는, 서브세트에 대한 예측 모델을 트레이닝할 목적으로 트레이닝 데이터의 서브세트가 식별된다. 트레이닝 데이터의 서브세트에 기초하여 모델을 트레이닝하는 것은 모든 트레이닝 데이터에 기초하여 모델을 트레이닝하는 것보다 적은 연산 자원(및 시간)을 사용할 수 있다. 일부 실시예에서, 트레이닝 데이터의 각 서브세트는 트레이닝-입력 시간 범위의 종료 시간에서 끝난다. 트레이닝 데이터 서브세트는 트레이닝-입력 시간 범위 내에서 상이한 시간에 시작될 수 있고 및/또는 상이한 샘플링 레이트로 트레이닝-입력 시간 범위에서 관측치를 샘플링할 수 있다. 트레이닝 데이터 서브세트의 지속 시간은 예상 범위의 지속 시간의 정수배일수 있다.In some embodiments, rather than training the model on all training data, a subset of training data is identified for the purpose of training a predictive model on the subset. Training a model based on a subset of training data may use less computational resources (and time) than training a model based on all training data. In some embodiments, each subset of training data ends at the end time of the training-input time range. The training data subsets may begin at different times within the training-input time range and/or may sample observations in the training-input time range at different sampling rates. The duration of the training data subset may be an integer multiple of the duration of the expected range.
일부 실시예에서, 트레이닝 데이터는 다운-샘플링될 수 있다(예를 들어, 시간적으로 다운-샘플링되거나 단면 다운-샘플링됨). 트레이닝 데이터는 다운-샘플링된 시간 간격을 선택하고 다운-샘플링된 시간 간격에 따라 트레이닝 데이터의 각각의 데이터 세트를 다운 샘플링함으로써(예를 들어, 전술한 기술들을 사용하여) 시간적으로 다운-샘플링될 수 있다. 트레이닝 데이터는 하나 이상의 데이터 세트를 트레이닝 데이터로부터 제거함으로써 단면 다운-샘플링될 수 있다. 일부 실시예에서, 트레이닝 데이터는 시간적으로도 다운-샘플링되고 단면으로도 다운-샘플링된다.In some embodiments, the training data may be down-sampled (eg, temporally down-sampled or sectional down-sampled). The training data may be temporally down-sampled by selecting a down-sampled time interval and down-sampling each data set of training data according to the down-sampled time interval (e.g., using the techniques described above). have. The training data may be single-sided down-sampled by removing one or more data sets from the training data. In some embodiments, the training data is down-sampled both temporally and cross-sectionally.
단계(960)에서, 테스팅 데이터가 시계열 데이터로부터 생성된다. 테스팅 데이터는 적어도 하나의 데이터 세트의 관측치의 제2 서브세트를 포함한다. 관측치의 제2 서브세트는 관측치의 테스트-입력 및 테스트-유효성 검증 컬렉션을 포함한다. 테스트-입력 및 테스트-유효성 검증 컬렉션 내의 관측치와 연관된 시간은 각각 테스트-입력 시간 범위 및 테스트-유효성 검증 시간 범위에 대응한다. 스킵 범위는 테스트-입력 시간 범위의 끝을 테스트-유효성 검증 시간 범위의 시작에서 분리한다. 테스트-유효성 검증 시간 범위의 지속 시간은 적어도 예상 범위만큼 길다.In
일부 실시예에서, 테스트-입력 시간 범위의 지속 시간은 시계열 데이터의 전체 관측치수, 변수 중 적어도 하나의 값의 시간에 따른 변화량, 적어도 하나의 변수의 값의 정기적인 변화량, 복수의 기간에 걸친 변수들 중 적어도 하나의 변수의 값의 변화의 일관성, 및/또는 예상 범위의 지속 시간에 기초하여 결정된다.In some embodiments, the duration of the test-input time range is the total number of observations of the time series data, the amount of change over time in the value of at least one of the variables, the periodic amount of change in the value of the at least one variable, the variable over a plurality of time periods. the consistency of the change in the value of at least one of the variables, and/or the duration of the expected range.
일부 실시예에서, 테스팅 데이터의 서브세트는 모든 트레이닝 데이터에 대해 모델을 트레이닝하기보다는 서브세트에 대한 예측 모델을 테스트하기 위한 목적으로 식별된다. 테스팅 데이터의 서브세트에 대해 모델을 테스트하는 것은 모든 트레이닝 데이터에 대해 모델을 테스트하는 것보다 적은 연산 자원(및 시간)을 사용할 수 있다. 일부 실시예에서, 테스팅 데이터의 각 서브세트는 테스트-입력 시간 범위의 종료 시간에 종료한다. 테스팅 데이터 서브세트는 테스트-입력 시간 범위 내에서 다른 시간에 시작될 수 있고, 및/또는 상이한 샘플링 레이트로 테스트-입력 시간 범위에서 관측치를 샘플링할 수 있다. 테스팅 데이터 서브세트의 지속 시간은 예상 범위의 지속 시간의 정수배일 수 있다.In some embodiments, a subset of testing data is identified for the purpose of testing a predictive model on a subset rather than training the model on all training data. Testing the model on a subset of the testing data may use less computational resources (and time) than testing the model on all the training data. In some embodiments, each subset of testing data ends at the end time of the test-input time range. The testing data subset may be started at different times within the test-input time range, and/or may sample observations in the test-input time range at different sampling rates. The duration of the testing data subset may be an integer multiple of the duration of the expected range.
일부 실시예에서, 테스팅 데이터는 다운-샘플링(예를 들어, 시간적 다운-샘플링 및/또는 단면 다운-샘플링)될 수 있다. 시간 및 단면 다운-샘플링에 대한 일부 기술은 전술하였다.In some embodiments, the testing data may be down-sampled (eg, temporal down-sampled and/or sectional down-sampled). Some techniques for temporal and cross-sectional down-sampling have been described above.
단계(970)에서, 예측 모델이 트레이닝 데이터에 맞춤화된다. 단계(980)에서, 맞춤화된 모델은 테스팅 데이터에 대해 테스트된다. 상호 유효성 검증(네스팅된 상호 유효성 검증을 포함하되 이에 한정되지 않음) 및 홀드아웃 기술은 예측 모델을 맞춤화 및/또는 테스트하는 데 사용될 수 있다. 상호 유효성 검증을 위해, 시계열 데이터는 단면 및/또는 시간적으로 분할될 수 있다.In
예측 문제에 대한 예측 모델을 선택하기 위한 방법(300)의 일부 실시예가 시계열 예측 문제에 대한 시계열 예측 모델을 선택하는 데 사용될 수 있다. 일부 실시예에서, 시계열 데이터의 하나 이상의 피처의 모델-특유 예측값이 (예를 들어, 이하에서 설명되는 방법(1000)의 실시예를 사용하여) 결정될 수 있다. 일부 실시예에서, 시계열 예측 모델은 (예를 들어, 본원에 설명되는 기술을 사용하여) 혼합될 수 있다. 일부 실시예에서, (예를 들어, 본원에 설명되는 기술 및/또는 성능 향상을 사용하여) 시계열 예측 모델이 배치 및/또는 리프레시될 수 있다. 일부 실시예에서, 시계열 데이터의 2개 이상의 변수(예를 들어, 피처) 간의 상호 작용 강도가 (예를 들어, 본원에 설명되는 기술을 사용하여) 결정될 수 있다.Some embodiments of the
유니버셜universal 피처 중요도 Feature importance
감독 머신 학습 문제를 고려할 때, 중요한 과제는 종종 어떤 피처가 타겟에 대해 가장 예측 가능한 값을 갖는지를 측정하는 것이다. 이러한 피처의 중요도를 측정하는 것은, (1) 일반적으로 예측 문제를 이해하고, (2) 특정의 맞춤화된 모델이 예측 결과를 어떻게 생성하는지를 이해하는, 예측 모델링의 2개의 개별 스테이지에서 유용할 수 있다.When considering supervised machine learning problems, an important challenge is often to measure which features have the most predictable values for the target. Measuring the importance of these features can be useful in two separate stages of predictive modeling: (1) understanding the prediction problem in general, and (2) understanding how a particular customized model produces predictive outcomes. .
목적 (1)을 위해, 피처 중요도의 메트릭은 데이터 세트의 평가(예를 들어, 방법(400)의 단계(408)), 사용자에 대한 평가의 제시(예를 들어, 방법(400)의 단계(410)), 사용자가 데이터 세트를 어떻게 정제하는지(예를 들어, 방법(400)의 단계(412)), 및/또는 어떤 모델링 기술이 시도하거나 시도를 제시하는지(예를 들어, 단계(422 및 424))를 알릴 수 있다. 목적 (2)를 위해, 피처 중요도의 메트릭은 혼합된 모델의 자동화 개발(예를 들어, 방법(400)의 단계(432))을 알릴 수 있고, 대안적인 모델의 상대적인 성능을 이해하도록 사용자를 도울 수 있다(예를 들어, 방법(400)의 단계(446)).For purpose (1), the metric of feature importance is an evaluation of the data set (eg, step 408 of method 400), presentation of a rating to a user (eg, step 408 of method 400) 410)), how the user refines the data set (e.g., step 412 of method 400), and/or which modeling technique attempts or presents an attempt (e.g.,
실제로, 제1 목적을 위해 피처 중요도를 결정하는 것은 일반적으로 특정 모델 또는 모델 패밀리(예를 들어, 랜덤 포레스트)의 컨텍스트 내에서 발생한다. 물론, 각 모델은 피처 중요도를 측정하기 위한 디바이스로서 이점과 단점을 가질 수 있다. 따라서 몇몇 상이한 유형의 모델을 사용하여 피처 중요도를 계산하는 것은 향상된 이해를 전달할 수 있다. 예를 들어, 랜덤 포리스트, 일반화된 가산 모델, 및 지원 벡터 머신은 머신 학습을 위한 근본적으로 상이한 유형의 모델이며 동일한 데이터 세트에 대해 동일한 피처의 중요도의 상이한 척도를 생성할 수 있다. 이러한 차이는 예측 문제의 구조에 대한 더 깊은 직관을 제공할 수 있으며 추가 탐색의 길을 제시한다. 목적 (2)를 위해, 피처 중요도는 일반적으로 고려 중인 모델(들)에특유하다.Indeed, determining feature importance for a first purpose generally occurs within the context of a particular model or family of models (eg, a random forest). Of course, each model may have advantages and disadvantages as a device for measuring feature importance. Thus, calculating feature importance using several different types of models can deliver improved understanding. For example, random forests, generalized additive models, and support vector machines are fundamentally different types of models for machine learning and can produce different measures of importance of the same feature for the same data set. These differences can provide a deeper intuition into the structure of the prediction problem and provide avenues for further exploration. For purpose (2), feature importance is generally specific to the model(s) under consideration.
임의의 모델에 대한 피처 중요도를 계산하기 위한 기술의 일부 실시예가 이하 설명된다.Some embodiments of techniques for calculating feature importance for an arbitrary model are described below.
탐색 엔진(110)은, 데이터 세트(또는 그 임의의 샘플) 및 모델링 기술이 주어지면, 유니버설 부분 의존성을 사용하여 임의의 피처의 중요도를 계산할 수 있다. 먼저, 엔진(110)은 모델링 기술을 사용하여 샘플에 맞춤화된 예측 모델에 대한 정확도 메트릭을 얻는다. 엔진(110)은 처음부터 이러한 맞춤을 수행하거나 이전 맞춤을 사용할 수 있다. 그 후, 주어진 피처에 대해, 엔진(110)은 모든 관측치에 걸쳐 모든 값을 취하고, 이들을 셔플링(shuffling)하고, 관측치에 이를 재할당한다(예를 들어, 랜덤하게 이를 재할당함). 이러한 랜덤 셔플링은 그 피처에 대한 임의의 예측값을 감소(예를 들어, 파기)시킬 수 있다. 그 후, 엔진은 셔플링된 피처 값으로 데이터 세트에 대해 모델을 리스코어링하여, 정확도 메트릭에 대한 새로운 값을 생성할 수 있다. (선택적으로, 셔플링된 데이터 세트에 대해 맞춤화된 모델을 리스코어링하기 전에, 엔진은 모델을 셔플링된 데이터 세트로 다시 맞춤화할 수 있음.) 모델의 정확도의 감소는, 예측값이 얼마나 많이 손실되었는지를 나타내며, 따라서 모델에 대한 그리고/또는 모델링 기술의 범위 내에서 피처의 중요도를 나타낸다.The
모델링 기술 및/또는 하나의 모델에 대한 하나의 피처의 중요도를 계산하기 위한 전술한 기술을 사용하여, 엔진은 피처를 반복하여 모델 및/또는 모델링 기술 내의 피처의 상대적 중요도 결정하고, 모델 및/또는 모델링 기술 또는 모두에 걸쳐 피처의 상대적 중요도를 결정하기 위해 모델 및/또는 모델에 대해 반복할 수 있다.Using the modeling techniques and/or techniques described above for calculating the importance of a feature to a model, the engine iterates the features to determine the relative importance of the features in the model and/or modeling technique, and/or the model and/or It can be iterated over the model and/or model to determine the relative importance of features across modeling techniques or both.
목적 (1)을 충족시키기 위해, 엔진(110)은 일반적으로 피처 중요도에 대한 예시적인 결과를 생성하는 모델링 기술의 목록을 유지할 수 있다. 데이터 세트를 평가할 때, 엔진(110)은 이러한 모델링 기술의 전부 또는 일부를 자동으로 실행할 수 있다. 엔진은 데이터 세트의 속성을 기초로 실행할 모델링 기술을 선택할 수 있다. 사용자 인터페이스는 사용된 각각의 모델링 기술에 대해 개별적으로, 또는 사용된 모든 모델링 기술에 걸쳐 상대적으로 피처 중요도 값을 표시할 수 있다. 엔진(110)은 또한 사용자로 하여금 모델링 기술 라이브러리(130)로부터 임의의 모델링 기술을 선택하여 피처 중요도를 측정하는 데 사용하도록 허용할 수 있다.To meet objective (1),
사용자가 예측 문제를 이해하는 것을 돕는 것 이외에, 엔진(110)은 추가적인 자동화된 분석을 가이드하기 위해 피처 중요도의 이러한 애플리케이션으로부터의 결과를 사용할 수 있다. 예를 들어, 전반적으로 중요도가 높게 스코어링된 피처의 경우, 엔진이 이러한 피처의 상호 작용을 탐색하는 데 더 많은 자원을 할당할 수 있다. 전반적으로 중요도가 낮게 스코어링된 피처의 경우, 엔진은 데이터 세트로부터 이러한 피처를 완전히 탈락시킬 수 있다. 일부 피처가 일부 모델 또는 모델링 기술에 대해 높은 중요도를 갖고 다른 모델 또는 모델링 기술에 대해 낮은 중요도를 갖는 낮은 경우, 엔진은 예측 모델에 대한 더 깊은 검색을 지시하고, 더 많은 모델링 기술을 시도하고 모델 공간 탐색 프로세스에서 더 많은 데이터를 더 일찍 사용할 수 있다.In addition to helping the user understand the prediction problem, the
목적 (2)를 충족시키기 위해, 엔진은 맞춤화된 모델에 대한 피처 중요도 값을 자동으로 또는 요구에 따라 계산할 수 있다. 자동으로, 엔진(110)은 모든 모델 또는 그 부분에 대한 피처 중요도 값을 계산할 수 있다. 부분은 임의의 적절한 방식으로 계산될 수 있다. 예를 들어, 부분은 N개의 톱 수행 모델, 특정 성능 메트릭에 대해 최소한 일정 수준의 성능 임계값을 충족하는 모든 모델, 또는 그 성능 메트릭이 톱 모델의 성능의 주어진 부분 내에 있는 모든 모델을 포함할 수 있다. 일부 실시예에서, 엔진은 이용 가능한 연산 자원을 고려하여, 이들 자원에 비례하여 더 크거나 작게 되도록 부분을 조정할 수 있다.To meet objective (2), the engine may calculate feature importance values for the customized model automatically or on demand. Automatically,
일부 실시예에서, 사용자는 요구시에 피처 중요도 계산을 요청할 수 있다. 일부 경우에, 사용자는 주어진 모델에 대한 일부 또는 모든 피처의 중요도를 확인하기를 원할 수 있다. 다른 경우에, 사용자가 다른 모델에 걸쳐 일부 또는 모든 피처의 중요도를 확인하기를 원할 수 있다.In some embodiments, a user may request feature importance calculations on demand. In some cases, a user may wish to ascertain the importance of some or all features for a given model. In other cases, a user may wish to ascertain the importance of some or all features across different models.
일반적으로 예측 문제 또는 특정 모델에 대한 피처 중요도 값을 제공하기 위해 전술한 기술을 사용하는 것은 많은 이점을 가질 수 있다. 예를 들어:Using the techniques described above to provide feature importance values for prediction problems in general or specific models can have many advantages. for example:
(1) 피처가 일반적으로 또는 적어도 모든 정확한 모델에 있어서 유익하지 않다면, 그 피처에 대응하는 데이터의 수집이 중지될 수 있다. 일부 경우에 소스 위치로부터 데이터를 추출하는 노동 또는 심지어 데이터 공급자에게 지불하는 비용과 같이, 피처를 이용 가능하게 만드는 데 실제로 비용이 든다.(1) If a feature is not informative in general or at least in all accurate models, the collection of data corresponding to that feature may be stopped. In some cases, there is a real cost to making the feature available, such as labor to extract data from the source location or even the cost of paying the data provider.
(2) 피처 중요도와 측정된 피처 중요도의 사용자의 기대 차이가 추가적인 조사를 보증할 수 있다. 불일치를 설명하는 데이터 세트에 오류가 있는 것으로 판명될 수 있거나, 그 차이가 실제이며 예측 문제에 대한 새로운 직관을 제공하는 것으로 판명될 수 있다.(2) The difference between user expectations of feature importance and measured feature importance may warrant further investigation. The data set that accounts for the inconsistency may turn out to be erroneous, or it may prove that the differences are real and provide new intuitions for the prediction problem.
(3) 일부 경우에, 가능한 한 적은 피처를 사용하여 예측을 하는 모델을 생성하는 것이 바람직할 수 있다. 이러한 경우, 사용자는 특정 모델링 기술을 재실행할 수 있거나 모든 모델링 기술 중에서 가장 중요한 중요도의 N개 피처만을 사용하거나 특정 임계값을 초과하는 중요도 값을 갖는 피처만으로 검색을 재실행할 수 있다.(3) In some cases, it may be desirable to create a model that makes predictions using as few features as possible. In this case, the user can redo the specific modeling technique, use only the N features of the most important importance among all modeling techniques, or rerun the search with only those features with importance values that exceed a certain threshold.
(4) 어떤 피처가 중요한 도움인지 아는 것은 가장 중요한 피처를 변환하고 조합하는 다른 방식을 실험함으로써 사용자가 예측 모델을 향상시키는 것을 도울 수 있다.(4) Knowing which features are important aids can help users improve predictive models by experimenting with different ways of transforming and combining the most important features.
데이터 세트의 하나 이상의 피처의 of one or more features in the data set. 예측값을the predicted value 결정하기 위한 기술의 일부 part of the skill to decide 실시예Example
도 10은 초기 예측 문제를 나타내는 초기 데이터 세트의 하나 이상의 피처의 예측값(예를 들어, "중요도")을 결정하기 위한 방법(1000)을 나타낸다. 일부 실시예에서, 예측 모델링 시스템(100)은 데이터 세트의 평가 중에(예를 들어, 방법(400)의 단계(408)), 및/또는 데이터 세트를 프로세싱할 때(예를 들어, 방법(300)을 참조하여 전술한 바와 같음), 방법(1000)(또는 그 일부)을 수행할 수 있다. 일부 실시예에서, 방법(1000)은 임의의 예측 모델 또는 예측 모델링 기술에 대한 임의의 데이터 세트 피처의 예측값을 결정하는 데 사용될 수 있다.10 illustrates a
단계(1010)에서, 시스템(100)은 복수의 예측 모델링 절차를 수행한다. 각 예측 모델링 절차는 예측 모델과 연관된다. 각 모델링 절차를 수행하는 것은 연관된 예측 모델을, 초기 예측 문제를 나타내는 초기 데이터 세트의 적어도 일부에 맞추는 것을 포함한다. 초기 데이터 세트는 이전 관측치를 포함하고, 각 관측치는 일반적으로 초기 데이터 세트의 피처 중 적어도 일부의 값을 포함한다.At
단계(1020)에서, 시스템(100)은 맞춤화된 예측 모델 각각의 제1 정확도 스코어를 결정한다. 맞춤화된 모델의 제1 정확도 스코어는, 맞춤화된 모델이 초기 예측 문제의 하나 이상의 결과를 예측하는 정확도를 나타낸다. 초기 데이터 세트의 홀드아웃 부분에 대해 모델을 테스트하는 것에 한정되지 않지만 이를 포함하여, 모델의 정확도를 결정하기 위한 임의의 적절한 메트릭 및/또는 기술이 사용될 수 있다.At
단계(1030)에서, 시스템(100)은 초기 데이터 세트 내의 관측치에 걸쳐 특정 피처 F의 값을 "셔플링"하고, 이에 의해 수정된 예측 문제를 나타내는 수정된 데이터 세트를 생성한다. 일부 실시예에서, 셔플링은 피쳐 F의 값을 원래 관측치로부터 상이한 관측치로 (예를 들어, 랜덤하게) 재할당함으로써 수행된다. 이 셔플링 동작은 피처 F에 대한 임의의 예측값을 감소(예를 들어, 파기)시킬 수 있다. 데이터 세트로부터 피처 F를 제거하거나 각 관측치에 피처 F에 대한 동일값을 할당하는 것에 한정되지 않지만 이를 포함하여, 데이터 세트 내의 피처 F의 예측값을 감소(예를 들어, 파기)하기 위한 다른 기술이 가능하다. 일부 실시예에서, 피처 F의 예측값을 임계값 미만으로 감소시키는 임의의 기술이 사용될 수 있다.At
단계(1040)에서, 시스템(100)은 수정된 예측 문제에 대한 맞춤화된 예측 모델의 제2 정확도 스코어를 결정한다. 제2 정확도 스코어는, 맞춤화된 모델이 수정된 예측 문제의 하나 이상의 결과를 예측하는 정확도를 나타낸다. 수정된 데이터 세트의 홀드아웃 부분에 대해 모델을 테스트하는 것에 한정되지 않지만 이를 포함하여, 모델의 정확도를 결정하기 위한 임의의 적절한 메트릭 및/또는 기술이 사용될 수 있다. 일부 실시예에서, 맞춤화된 모델은 제2 정확도 스코어를 결정하기 전에 수정된 데이터 세트에 다시 맞춤화된다.At
단계(1050)에서, 예측 모델링 절차(또는 맞춤화된 모델) 각각에 대해, 시스템(100)은 피처 F의 예측값을 계산한다. 일부 실시예에서, 모델링 절차 또는 모델에 대한 피처 F의 예측값은 (예를 들어, 모델에 대한 제1 및 제2 정확도 스코어 간의 차이에 기초하여) 정확도의 변화에 기초하여 계산된다. 일부 실시예에서, 제1 및 제2 정확도 스코어에 기초하여 모델링 절차 또는 모델에 대한 피처의 예측값을 결정하기 위해, 제1 정확도 스코어와 제2 정확도 사이의 차이가 증가함에 따라 예측값이 일반적으로 증가하게 하는 함수가 사용된다. 개별적인 예측값이 특정 모델링 절차 또는 모델에 특유할 수 있기 때문에, 단계(1050)에서 결정된 예측값은 본원에서 "모델-특유 예측값"으로 칭해질 수 있다.At
단계(1060)에서, 시스템(100)은 다른 피처의 예측값을 분석할지 여부를 결정한다. 일부 실시예에서, 이러한 결정은 사용자 입력에 기초하여 이루어진다(예를 들어, 사용자에 의해 특정된 모든 피처가 분석될 때까지 시스템이 피처의 예측값을 계속하여 분석함). 일부 실시예에서, 시스템은 데이터 세트의 모든 피처를 분석한다. 일부 실시예에서, 시스템은 데이터 세트 내의 피처의 서브세트만을 분석한다. 이러한 피처는 임의의 적절한 기준에 기초하여 선택될 수 있다. 시스템이 단계(1060)에서 분석할 다른 피처가 있는 것으로 결정하면, 시스템은 그 피처에 대해 단계(1030-1050)를 반복한다.At
일부 실시예에서, 방법(1000)은 단계(1010)에서 수행되는 예측 모델링 절차를 선택하는 추가 단계(미도시)를 포함한다. 시스템(100)은 예를 들어, 예측 모델링 기술의 라이브러리(130)로부터 모델링 절차를 선택할 수 있다. 일부 실시예에서, 시스템(100)은 2개 이상의 상이한 예측 모델링 패밀리로부터 2개 이상의 모델링 절차를 선택한다. 예측 모델링 패밀리의 예는 선형 회귀 기술(예를 들어, 일반화된 가산 모델), 트리-기반 기술(예를 들어, 랜덤 포리스트), 지원 벡터 머신, 신경망(예를 들어, 다층 퍼셉트론(perceptron)) 등을 포함할 수 있다. 예를 들어, 시스템(100)은 트리 패밀리(예를 들어, 랜덤 포리스트 모델링 절차), 선형 회귀 패밀리로부터의 다른 모델링 절차(예를 들어, 일반화된 가산 모델) 및 지원 벡터 머신 모델링 절차를 선택할 수 있다.In some embodiments,
시스템(100)은, (1) 모델-특유 예측값에 기초하여 데이터 세트를 프로세싱하고, (2) 사용자에게 데이터 세트의 평가를 제시하고, (3) 모델-특유 예측값에 기초하여 혼합을 위한 예측 모델을 선택하고, (4) 평가된 모델 및 연관된 모델-특유 예측값을 사용자에게 제시하고, (5) 모델-특유 예측값에 기초하여 예측 문제에 대한 잠재적인 예측 모델링 해결책의 공간을 평가하는 프로세스 중에 자원을 할당하고, (6) 피처의 모델-특유 예측값에 기초하여 피처의 모델-독립 예측값(피처 중요도 값)을 계산하는 것에 한정되지 않지만 이를 포함하여, 방법(1000)을 통해 결정된 하나 이상의 모델-특유 예측값(피처 중요도 값)을 사용하여 임의의 적절한 작업(예를 들어, 예측 모델링 작업)을 수행할 수 있다. 일부 실시예에서, 모델-독립 피처 중요도 값을 계산한 후에, 시스템(100)은 모델-독립 피처 중요도 값을 사용하여 임의의 적절한 작업(예를 들어, 이전 문장에서 설명된 바와 같은 작업들 (1)-(5))을 수행할 수 있다.The
일부 실시예에서, (예를 들어, 방법(400)의 단계(408)에서) 데이터 세트의 평가 중에 및/또는 (예를 들어, 방법(300)을 참조하여 전술한 바와 같이) 데이터 세트를 프로세싱할 때, 예측 모델링 절차의 일부로서, 시스템(100)은 모델-특유 예측값에 기초하여 피처 생성 및/또는 피처 엔지니어링을 수행한다. 예를 들어, 시스템(100)은 데이터 세트로부터 "덜 중요한" 피처를 정리할 수 있다. 이러한 맥락에서, 피처의 예측값이 임계 전압 미만인 경우, 피처가 데이터 세트 내의 피처의 M개의 최저 예측값 중 하나를 갖는 경우, 피처가 데이터 세트 내의 피처의 N개의 최고 예측값 중 하나를 갖지 않는 경우 등의 경우에 피처는 "덜 중요함"으로 분류될 수 있다. 다른 예로서, 시스템은 데이터 세트 내의 "더 중요한" 피처로부터 도출된 피처를 생성할 수 있다. 이러한 맥락에서, 피처의 예측값이 임계값보다 큰 경우, 피처가 데이터 세트 내의 피처의 N개의 최고 예측값 중 하나를 갖는 경우, 피처가 데이터 세트 내의 M개의 최저 예측값 중 하나를 갖지 않는 경우 등의 경우에, 피처는 "더 중요함"으로 분류될 수 있다. 일부 실시예에서, 시스템(100)은 방법(1000)을 사용하여 도출된 피처의 예측값을 계산할 수 있다.In some embodiments, processing the data set (eg, as described above with reference to method 300 ) and/or during evaluation of the data set (eg, at
일부 실시예에서, 시스템(100)은 (예를 들어, 방법(400)의 단계(410)에서) 데이터 세트의 평가를 사용자에게 제시(예를 들어, 표시)할 수 있고, 제시된 평가는 데이터 세트 내의 피처의 예측값 및/또는 이로부터 도출된 정보를 포함할 수 있다. 예를 들어, 하나 이상의 모델링 절차 또는 모델에 대해, 시스템(100)은 (1) "더 중요한" 및/또는 "덜 중요한 피처"를 식별하고, (2) 피처의 예측값을 표시하고, (3) 그 예측값에 의해 피처를 등급화하고, 및/또는 (4) 덜 중요한 피처의 수집이 중단되고 및/또는 덜 중요한 피처가 데이터 세트로부터 제거될 것을 추천할 수 있다. 사용자에게 데이터 세트의 평가를 제시하는 것에 응답하여, 시스템(100)은 (예를 들어, 방법(400)의 단계(412)에서) 데이터 세트의 정제를 특정하는 사용자 입력을 수신할 수 있다.In some embodiments, the
일부 실시예에서, 시스템(100)은 모델-특유 예측값에 기초하여 혼합을 위한 예측 모델을 선택하고 (예를 들어, 방법(400)의 단계(432)에서) 선택된 모델을 혼합한다. 시스템(100)은 혼합을 위한 예측 모델을 선택하기 위해 임의의 적절한 기술을 사용할 수 있다. 예를 들어, 시스템(100)은 혼합을 위한 "상보적인 톱 모델"을 선택할 수 있다. 이러한 맥락에서 "보완적인 톱 모델"은 다른 메커니즘을 통해 높은 정확도를 달성하는 정확한 모델을 포함할 수 있다. 시스템(100)은, 모델의 정확도가 임계 정확도보다 큰 경우, 모델이 맞춤화된 모델 중에서 N개의 최고 정확도 값 중 하나를 갖는 경우, 모델이 맞춤화된 모델 중에서 M개의 최저 정확도 값 중 하나를 갖지 않는 경우 등의 경우에 모델을 "톱" 모델로서 분류할 수 있다. 시스템은, (1) 모델에 대한 가장 중요한 피처(예를 들어, 모델에 대한 최고 예측값을 갖는 피처)가 상이한 경우, 또는 (2) 제1 모델에 중요한 피처가 제2 모델에 중요하지 않고, 제1 모델에 중요하지 않은 피처가 제2 모델에 중요한 경우, 2개의 모델을 "상보적" 모델로서 분류할 수 있다. 이러한 맥락에서, 피처가 모델에 대해 높은 예측값을 갖는 경우, 피처는 모델에 대해 "중요"할 수 있다(예를 들어, 최고 예측값, 최고의 N개의 예측값 중 하나, 임계값보다 큰 예측값, 등). 이러한 맥락에서, 피처가 모델에 대한 낮은 예측값을 갖는 경우, 피처는 모델에 대해 "중요하지 않을" 수 있다(예를 들어, 최저 예측값, 최저 N개의 예측값 중 하나, 임계값보다 낮은 예측값, 등). 일부 실시예에서, 시스템(100)은 혼합을 위한 2개 이상의 상보적인 톱 모델을 선택하기 위해 전술한 분류 기술을 사용할 수 있다.In some embodiments,
일부 경우에, 상보적인 톱 모델을 혼합하는 것은 컴포넌트 모델에 비해 매우 높은 정확도를 갖는 혼합된 모델을 산출할 수 있다. 반대로, 비상보적인 모델을 혼합하는 것은 컴포넌트 모델보다 상당히 더 높은 정확도로 혼합된 모델이 산출하지 않을 수 있다.In some cases, mixing complementary top models can yield a mixed model with very high accuracy compared to component models. Conversely, mixing non-complementary models may not yield mixed models with significantly higher accuracy than component models.
일부 실시예에서, 시스템(100)은 (예를 들어, 방법(400)의 단계(446)에서) 평가된 예측 모델 및 연관된 모델-특유 예측값을 사용자에게 제시할 수 있다. 일부 실시예에서, 시스템(100)은 예측 모델(예를 들어, 톱 모델)의 서브세트에 대해서만 피처 중요도 값을 계산 및/또는 표시한다. 피처 중요도 값을 사용자에게 제시하는 것은, 사용자가 평가된 모델의 상대적인 성능을 이해하는 것을 도울 수 있다. 예를 들어, 제시된 피처 중요도 값에 기초하여, 사용자(또는 시스템(100))는 다른 톱 모델보다 우수한 톱 모델 M 및 모델 M에 중요하지만 다른 톱 모델에는 중요하지 않은 하나 이상의 피처 F를 식별할 수 있다. 사용자는 다른 톱 모델에 비해, 모델 M이 피처 F에 의해 나타내어지는 정보를 더 잘 사용하는 것으로 결론을 내릴 수 있다(또는 시스템(100)이 이를 나타낼 수 있다). 이러한 발견에 기초하여, 모델 M에 의해 예상되는 결과에 관심이 있는 당사자는 피처 F를 측정 또는 제어하기 위해 시스템에 투자할 수 있으며, 이는, 모델이 예상하고 있는 결과를 개선할 수 있다.In some embodiments,
일부 실시예에서, 예측 문제에 대한 잠재적인 예측 모델링 해결책의 공간을 평가하는 프로세스 동안(예를 들어, 방법(300)을 수행하는 동안), 시스템(100)은 예측 문제를 나타내는 데이터 세트 내의 피처의 예측값에 기초하여 모델링 절차의 평가를 위한 자원을 할당할 수 있다. 예를 들어, 시스템(100)은 (예를 들어, 방법(300)의 단계(310)에서, 또는 방법(400)의 단계(424)에서) 평가할 예측 모델링 절차를 선택하거나 제시할 수 있다. 전술한 바와 같이, 시스템(100)은 데이터 세트에 적절하거나 매우 적절한 것으로 예측되는 예측 모델링 절차를 선택하거나 제시할 수 있다. 특정의 특성을 갖는 데이터 세트에 대한 모델링 절차의 적절성을 결정하기 위한 일부 기술을 전술하였다. 예측 문제의 특성에 기초하여 예측 문제에 대한 예측 모델링 절차의 적절성을 결정할 때, 시스템(100)은 데이터 세트의 보다 중요한 피처의 특성을 예측 문제의 특성으로서 취급할 수 있다. 이러한 방식으로, 시스템(100)에 의해 생성된 적절성 스코어는 데이터 세트의 더 중요한 피처에 맞춤화될 수 있다. 시스템(100)은 적절성 스코어에 기초하여 자원을 할당하기 때문에, 데이터 세트의 보다 중요한 피처에 적절성 스코어를 맞춤화하는 것은 피처 중요도에 부분적으로 기초하여 예측 모델링 절차의 평가에 할당되는 자원으로 귀결될 수 있다.In some embodiments, during the process of evaluating the space of a potential predictive modeling solution to a predictive problem (eg, while performing method 300 ),
추가적으로 또는 대안적으로, 시스템(100)은 (예를 들어, 방법(300) 또는 방법(400)의 단계(408)를 참조하여 전술한 바와 같이, 데이터 세트의 평가 중에 및/또는 데이터 세트를 프로세싱할 때) 데이터 세트의 더 중요한 피처를 갖는 피처 생성 작업에 더 많은 자원을 할당하고, 및/또는 (예를 들어, 방법(400)의 단계(432)에서) 상보적인 톱 모델의 혼합에 더 많은 자원을 할당할 수 있다.Additionally or alternatively, the
일부 실시예에서, 시스템(100)은 피처의 모델-특유 예측값에 기초하여 피처 F의 모델-독립 예측값을 계산할 수 있다. 시스템(100)은 (1) 모델-특유 예측값의 통계적 측정을 계산하거나((예를 들어, 평균(mean), 중앙값(median), 표준 편차 등), (2) 모델-특유 예측값의 조합을 결정하는 것에 한정되지 않지만 이를 포함하여, 임의의 적절한 기술을 사용하여 피처의 모델-독립 예측값을 계산할 수 있다. 후자의 경우, 조합은 가중화된 조합일 수 있다. 가중화된 조합에서, 보다 정확한 모델에 대한 모델-특유 피처 값은 보다 덜 정확한 모델에 대한 모델-특유 피처 값보다 더 크게 가중화될 수 있다. 일부 실시예에서, 가장 덜 정확한 모델링 절차에 대한 모델-특유 피처 값은 이 단락에서 설명된 계산 및/또는 조합으로부터 배제될 수 있다.In some embodiments,
2차 모델2nd model
(예를 들어, "모델 배치 엔진"이라는 제목의 섹션에서) 전술한 바와 같이, 예측 코드 생성 작업을 단순화하고 모델을 생성하는 데 사용되는 모델링 기술의 독점적인 세부 사항의 공개를 방지하기 위해 적절한 2차 모델링 기술(예를 들어, RuleFit)을 사용하여 모델 중의 모델(“2차 모델")을 생성하는 것이 바람직할 수 있다. 또한 사람들은 원래 모델보다 2차 모델을 더 쉽게 인터프리팅할 수 있으며; 2차 모델은 그렇지 않은 "블랙 박스" 모델에 대한 직관을 제공할 수 있다.As noted above (e.g., in the section titled "Model Deployment Engine"), appropriate 2 It may be desirable to generate a model-of-model (“second-order model”) using a quadratic modeling technique (eg RuleFit), which also allows people to interpret the quadratic model more easily than the original model, ; a quadratic model can provide an intuition for a "black box" model that does not.
그러나, 2차 모델이 소스 모델보다 예측에 대해 체계적으로 덜 정확할 수도 있다는 우려가 있다. 소스 모델로부터 2차 모델로(그리고 일부 경우, 소스 모델보다 더 높은 정확도를 갖는 2차 모델을 생성하기 위해) 이동하는 것과 연관된 정확성의 임의의 손실을 감소시키기 위한(예를 들어, 최소화하는) 기술의 일부 실시예가 아래에 설명된다.However, there are concerns that the quadratic model may be systematically less accurate for prediction than the source model. Techniques for reducing (eg, minimizing) any loss of accuracy associated with moving from a source model to a quadratic model (and in some cases to produce a quadratic model with higher accuracy than the source model) Some embodiments of is described below.
일부 실시예에서, 사용자가 맞춤화된 모델(예를 들어, 방법(400)의 단계(446)) 및/또는 톱 모델에 대한 홀드아웃 테스트의 결과(예를 들어, 방법(400)의 단계(450))를 제시한 후에, 사용자는 (a) 정확한 예측을 생성하기 위해 피처를 어떻게 사용하는지를 이해하기 위해 모델을 인터프리팅하고 및/또는 (b) 배치 엔진(140)을 사용하여 모델을 배치하기를 원할 수 있다. 특정 모델링 기술은 모델을 구축하기 위해 불투명한 및/또는 복잡한 모델을 사용할 수 있으며, 이에 의해 적어도 일부 경우에, 모델을 이해하기 어렵게 만들고 예측 코드 생성의 어려움을 증가시킬 수 있다. 독점적인 모델 구축 기술의 공개를 방지하는 것은 모델을 이해할 수 있게 만들고 모델에 대한 예측 코드를 생성하는 과제를 더욱 악화시킬 수 있다.In some embodiments, the user customized model (eg, step 446 of method 400 ) and/or the result of a holdout test against a top model (eg, step 450 of method 400 ) )), the user (a) interprets the model to understand how to use the features to generate accurate predictions and/or (b) deploys the model using the deployment engine 140 may want Certain modeling techniques may use opaque and/or complex models to build a model, which may, in at least some cases, make the model difficult to understand and increase the difficulty of generating predictive code. Preventing disclosure of proprietary model-building techniques can make the model understandable and exacerbate the challenge of generating predictive code for the model.
일부 실시예에서, 예측 모델링 시스템(100)은 소스 모델의 2차 모델을 구축함으로써 이러한 문제를 해결한다. 일부 실시예에서, 예측 모델링 시스템(100)은 일반적으로 비교적 인터프리팅하기 쉬운 모델을 생성하는 하나 이상의 모델링 기술(예를 들어, RuleFit, 일반화된 가산 모델, 등)을 사용하여 2차 모델을 구축하고, 이를 위해 예측 코드는 비교적 쉽게 생성될 수 있다. 이러한 기술이 본원에서 "2차 모델링 기술"로 칭해진다. 엔진(110)이 맞춤화된 "1차" 모델(예를 들어, 사용자가 더 잘 이해하기 원하는 1차 모델, 사용자가 예측 코드를 생성하기 원하는 1차 모델 및/또는 독점적 피처를 갖는 1차 모델)을 생성한 후, 시스템(100)은 2차 모델링 기술을 사용하여 1차 모델의 2차 모델을 생성할 수 있다.In some embodiments, the
1차 모델 내의 각 피처에 대해, 원래 데이터 세트로부터의 또는 원래 데이터 세트로부터 도출된 피처 값의 대응하는 세트가 존재한다. 2차 모델링 기술은 1차 모델과 동일한 피처를 사용할 수 있으며, 따라서 2차 모델링 기술의 트레이닝 및 테스팅 데이터를 위해, 이러한 피처의 원래 값 또는 그 서브세트를 사용할 수 있다. 일부 실시예에서, 데이터 세트로부터의 타겟의 실제 값을 사용하는 대신, 2차 모델링 기술은 1차 모델로부터의 타겟의 예측된 값을 사용한다.For each feature in the first-order model, there is a corresponding set of feature values from or derived from the original data set. The secondary modeling technique may use the same features as the primary model, and thus, for training and testing data of the secondary modeling technique, the original values of these features or a subset thereof. In some embodiments, instead of using the actual values of the target from the data set, the second-order modeling technique uses the predicted values of the target from the first-order model.
일부 경우에, 2차 모델링 기술은 대안적인 또는 보충적인 트레이닝 및/또는 테스팅 데이터를 사용할 수 있다. 이러한 대안은 동일하거나 다른 데이터 소스로부터의 다른 실세계 데이터, (예를 들어, 실세계 샘플에 존재하는 것보다 더 넓은 범위의 가능성을 커버하기 위한 목적으로)(예를 들어, 내삽법 및 외삽법을 통해) 머신-생성 데이터와 조합된 실세계 데이터, 또는 머신-기반의 확률론적 모델에 의해 완전히 생성된 데이터를 포함할 수 있다. 일부 실시예에서, 2차 모델을 트레이닝하는 데 사용되는 타겟 변수의 값은 1차 모델로부터의 예측된 값이다.In some cases, secondary modeling techniques may use alternative or supplemental training and/or testing data. These alternatives include other real-world data from the same or different data sources (e.g., for the purpose of covering a wider range of possibilities than exist in real-world samples) (e.g., via interpolation and extrapolation). ) real-world data combined with machine-generated data, or data entirely generated by machine-based probabilistic models. In some embodiments, the values of the target variables used to train the second-order model are predicted values from the first-order model.
한 가지 고려 사항은, 2차 모델을 구축할 때 1차 모델의 임의의 에러가 합성 또는 확대될 수 있고, 이에 의해 2차 모델의 정확도를 체계적으로 감소시킬 수 있다는 것이다. 첫째, 본 발명자들은 이것이 경험적으로 사실인지 여부에 대한 의문이 있다는 것을 인식하고 이해하고 있다. 둘째로, 어떤 경우에 그것이 사실이라면, 본 발명자들은 보다 정확한 1차 모델을 사용하는 것이 정확도의 손실을 감소시킬 가능성이 있음을 인식하고 이해하고 있다. 예를 들어, (예를 들어, "모델링 공간 탐색 엔진"이라는 제목의 섹션 끝 부분에 설명된 바와 같이) 혼합 모델은 어떤 단일 모델보다도 때로 더 정확하기 때문에, 2차 모델을 1차 모델의 혼합에 맞춤화하는 것은 2차 모델링과 연관된 정확도의 임의의 손실을 감소시킬 수 있다.One consideration is that any errors in the first-order model may be synthesized or magnified when building the second-order model, thereby systematically reducing the accuracy of the second-order model. First, the inventors recognize and understand that there are questions about whether this is empirically true. Second, if that is the case, we recognize and understand that using a more accurate first-order model has the potential to reduce the loss of accuracy. For example, as a mixture model is sometimes more accurate than any single model (as described at the end of the section titled "Modeling Space Search Engine," for example), a second-order model can be used in a mixture of first-order models. Customizing can reduce any loss of accuracy associated with quadratic modeling.
본 발명자들은 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차 모델의 혼합으로부터 도출되었다.We have empirically determined that concerns about the accuracy of the quadratic model are largely wrong. Testing of the system was performed on 381 data sets resulting in 1195 classifications and 1849 regression first-order models. For the tested classification models, 43% of the second-order models were less accurate than the corresponding first-order model, but did not deteriorate more than 10% according to the log-loss measure of accuracy. 30% of the second model was actually more accurate than the first model. In only 27% of those cases, the second-order model was 10% less accurate than the first-order model. About one-third of these cases (about 9% of the total population) occurred when the data set was very small. One third of these cases (again about 9% of the total population) occurred when the primary model was very accurate at less than 0.1 log loss and the secondary model was also still very accurate below 0.1 log loss. Thus, in more than 90% of cases where the data set was large enough, the second-order model was either within 10% of the first-order model or the second-order model was very accurate according to the absolute standard. In 41% of the cases, the best secondary model was derived from a mixture of primary models.
테스트된 회귀 모델에 대해, 2차 모델의 39%는 대응하는 1차 모델보다 덜 정확했지만, 정확도의 잔류 평균 제곱 에러 측정에 따르면 10% 이하로 악화되었다. 2차 모델의 47%는 실제로 1차 모델보다 더 정확했다. 그 경우 14%만이 2차 모델이 1차 모델보다 10% 덜 정확했다. 그 경우의 약 10%(전체 모집단의 약 1.5%)는 데이터 세트가 매우 작을 때 발생했다. 모든 경우의 35%에서, 최상의 2차 모델은 1차 모델의 혼합으로부터 도출되었다.For the regression models tested, 39% of the second-order models were less accurate than the corresponding first-order model, but deteriorated to less than 10% according to the residual mean square error measure of accuracy. 47% of the second model was actually more accurate than the first model. In only 14% of cases, the second-order model was 10% less accurate than the first-order model. About 10% of those cases (about 1.5% of the total population) occurred when the data set was very small. In 35% of all cases, the best secondary model was derived from a mixture of primary models.
이러한 경험적 데이터에 기초하여, 본 발명자들은 2차 모델이 일반적으로, 원래의 데이터 세트가 적절하게 큰 경우, 비교적 정확하거나 절대적으로 정확하다는 것을 인식하고 이해하고 있다. 많은 경우, 2차 모델은 실제로 1차 모델보다 더 정확하다. 마지막으로, 테스트된 모든 분류 및 회귀 문제 중 1/3 초과에서 가장 정확한 2차 모델이 1차 모델의 혼합에서 도출되었다.Based on these empirical data, the inventors recognize and understand that quadratic models are generally relatively accurate or absolutely accurate when the original data set is suitably large. In many cases, the second-order model is actually more accurate than the first-order model. Finally, for more than one-third of all classification and regression problems tested, the most accurate secondary model was derived from a mix of primary models.
본 발명자들은 2차 모델이, (a) 복잡한 1차 모델을 이해하고, (b) 예측 모델에 대한 예측 코드를 생성하는 작업을 단순화하고 (c) 독점적인 모델-구축 기술을 보호하는 데 유리할 수 있음을 인식하고 이해하였다. 혼합 모델은 많은 때에 최상의 예측 결과를 생성하지만, 혼합에 포함된 모든 모델의 모든 컴포넌트의 복잡성을 조합하기 때문에 일반적으로 또한 더 복잡하다. 또한, 혼합 모델에 대한 예측 코드를 생성하는 것은 일반적으로 혼합에 포함된 모든 컴포넌트 모델에 대한 예측 코드를 생성하는 과제를 조합한다. 이러한 컴포넌트 과제의 최상측에서, 모든 혼합 모델이 일반적으로 각 예측치를 생성하기 위해 연산되므로, 혼합 모델은 일반적으로 예측치를 생성하는 데 더 느리다(및/또는 예측치를 생성하기 위해 더 많은 연산 자원이 필요함). 2차 모델은 일반적으로 이 시간(및/또는 연산 자원의 사용)을 단일 모델을 연산하는 시간으로 감소시킨다. 또한, 혼합 모델에는 각 컴포넌트 모델의 독점 피처를 포함한다. 따라서, 2차 모델과 혼합 모델은 매우 상보적인 방식으로 동작한다.We believe that second-order models may be advantageous for (a) understanding complex first-order models, (b) simplifying the task of generating predictive codes for predictive models, and (c) protecting proprietary model-building techniques. recognized and understood that Mixed models often produce the best predictive results, but are also generally more complex because they combine the complexity of all components of all models involved in the mix. Also, generating predictive codes for a mixture model typically combines the task of generating predictive codes for all component models involved in the mixture. At the top of this component task, mixed models are generally slower to generate predictions (and/or require more computational resources to generate predictions), as all mixed models are typically computed to generate each prediction. ). Quadratic models typically reduce this time (and/or use of computational resources) to the time to compute a single model. In addition, the hybrid model includes proprietary features of each component model. Thus, the quadratic model and the mixed model behave in a highly complementary manner.
또한, 시스템(100)이 데이터 세트를 트레이닝, 테스트 및 홀드아웃 분할로 자동 분리할 수 있기 때문에, 시스템은 임의의 특정 2차 모델이 1차 모델과 비교하여 적절하게 수행되는지 여부를 용이하게 결정할 수 있다.In addition, because the
2차 모델링 기술의 일부 실시예Some Examples of Secondary Modeling Techniques
도 11a를 참조하면, 2차 예측 모델을 생성하기 위한 방법(1100)은 단계(1110 및 1120)를 포함할 수 있다. 단계 1110에서, 맞춤화된 1차 예측 모델이 획득된다. 1차 예측 모델은 하나 이상의 제1 입력 변수의 값에 기초하여 예측 문제의 하나 이상의 출력 변수의 값을 예측하도록 구성된다. 1차 모델은 임의의 적절한 기술을 사용하여(예를 들어, 예측 모델링 절차를 구현하는 머신-실행 가능 모듈을 실행하고, 예측 모델링 방법(300)의 실시예를 수행하고, 2개 이상의 예측 모델을 혼합하는 것 등) 획득될 수 있으며, 예측 모델(예를 들어, 시계열 모델 등)의 임의의 적절한 유형일 수 있다. 단계(1120)에서, 2차 예측 모델링 절차는 맞춤화된 1차 모델에 대해 수행된다. 2차 모델링 절차는 2차 예측 모델(예를 들어, RuleFit 모델, 일반화된 가산 모델, 조건부 규칙의 세트로서 조직된 임의의 모델, 이전 유형의 모델 중 2개 이상의 혼합, 등)과 연관된다.Referring to FIG. 11A , a
도 11b를 참조하면, 2차 예측 모델링 절차를 수행하기 위한 방법(1120)은 ㄷ단계(1122, 1144, 1126 및 1128)를 포함할 수 있다. 단계(1122)에서, 2차 입력 데이터가 생성된다. 2차 입력 데이터는 복수의 2차 관측치를 포함한다. 각각의 2차 관측치는 하나 이상의 제2 입력 변수의 관측치 및 제2 입력 변수의 값에 대응하는 제1 입력 변수의 값에 기초하여 1차 모델에 의해 예측된 출력 변수의 값을 포함한다. 2차 입력 데이터를 생성하는 것은 각각의 2차 관측치에 대해 이하를 포함할 수 있다: 제2 입력 변수의 관측된 값 및 제1 입력 변수의 대응 관측된 값을 획득하는 것, 및 출력 변수의 예측된 값을 생성하기 위해 1차 예측 모델을 제1 입력 변수의 대응하는 관측된 값에 적용하는 것.Referring to FIG. 11B , the
1차 모델 및 2차 모델은 입력 변수의 동일한 세트를 사용할 수 있다. 대안 적으로, 2차 모델은 1차 모델의 입력 변수 중 하나 이상(예를 들어, 모두)을 사용할 수 있고, 하나 이상의 다른 입력 변수를 또한 사용할 수 있다. 대안적으로, 2차 모델은 1차 모델의 입력 변수 중 어느 것도 사용하지 않고, 하나 이상의 다른 입력 변수를 사용할 수 있다.The first-order and second-order models can use the same set of input variables. Alternatively, the second-order model may use one or more (eg, all) of the input variables of the first-order model, and may also use one or more other input variables. Alternatively, the second-order model may use none of the input variables of the first-order model, but one or more other input variables.
단계(1124)에서, 2차 입력 데이터 및 2차 테스팅 데이터가는 2차 입력 데이터로부터 생성된다. 트레이닝 데이터를 생성하고 입력 데이터 세트로부터 데이터를 테스트하기 위한 기술의 일부 실시예가 본원에 설명된다.In step 1124, secondary input data and secondary testing data are generated from the secondary input data. Some embodiments of techniques for generating training data and testing data from an input data set are described herein.
단계(1126)에서, 2차 예측 모델을 2차 트레이닝 데이터에 맞춤화함으로써 맞춤화된 1차 모델의 맞춤화된 2차 예측 모델이 생성된다. 단계(1128)에서, 맞춤화된 1차 모델의 맞춤화된 2차 예측 모델이 2차 테스팅 데이터에 대해 테스트된다. 상호 유효성 검증(네스팅된 상호 유효성 검증을 포함하나 이에 한정되지 않음) 및 홀드아웃 기술이 예측 모델을 맞춤화 및/또는 테스트하는 데 사용될 수 있다.In step 1126 , a customized secondary predictive model of the customized primary model is generated by fitting the secondary predictive model to secondary training data. In
일부 실시예에서, 1차 및 2차 맞춤화 모델이 비교될 수 있다. 예를 들어, 각각의 맞춤화 모델에 대한 정확도 스코어가 결정될 수 있다. 각 맞춤화 모델의 정확도 스코어는, 맞춤화 모델이 하나 이상의 예측 문제의 결과를 예측하는 정확도를 나타낼 수 있다. (일부 실시예에서, 2차 모델의 정확도 스코어는 맞춤화된 모델이 1차 모델에 의해 예측된 타겟 변수 값을 예측하는 정확도가 아니라 맞춤화된 모델이 타겟 변수의 관측치를 예측하는 정확도를 나타낸다. 다른 실시예에서, 2차 모델의 정확도 스코어는, 맞춤화된 모델이 1차 모델에 의해 예측된 타겟 변수 값을 예측하는 정확도를 나타낸다.) 일부 경우에, 맞춤화된 2차 모델의 정확도 스코어는 맞춤화된 1차 모델의 정확도 스코어를 초과한다. 다른 예로서, 하나 이상의 예측 문제의 결과를 예측하기 위해 각각의 맞춤화된 예측 모델에 의한 연산 자원의 양이 사용된다. 일부 실시예에서, 맞춤화된 2차 모델에 의해 사용된 연산 자원의 양은 맞춤화된 1차 모델에 의해 사용되는 연산 자원의 양보다 적다.In some embodiments, primary and secondary customization models may be compared. For example, an accuracy score may be determined for each custom model. The accuracy score of each custom model may indicate the accuracy with which the custom model predicts the outcome of one or more prediction problems. (In some embodiments, the accuracy score of the second-order model is indicative of the accuracy with which the customized model predicts observations of the target variable, rather than the accuracy with which the customized model predicts the target variable values predicted by the first-order model. Other implementations In an example, the accuracy score of the second-order model is indicative of the accuracy with which the customized model predicts the target variable values predicted by the first-order model.) In some cases, the accuracy score of the customized second-order model is the customized first-order model. Exceeds the accuracy score of the model. As another example, the amount of computational resources by each customized predictive model is used to predict the outcome of one or more predictive problems. In some embodiments, the amount of computational resources used by the customized second-order model is less than the amount of computational resources used by the customized first-order model.
일부 실시예에서, 복수의 2차 모델링 절차가 수행되고, 1차 모델의 복수의 2차 모델이 생성된다. 일부 실시예에서, 2차 모델의 정확도 스코어 및/또는 연산 자원 사용이 결정되고 비교된다. 하나 이상의 2차 모델은 모델의 정확도 스코어 및/또는 연산 자원 사용에 적어도 부분적으로 기초하여 배치를 위해 선택될 수 있다.In some embodiments, a plurality of secondary modeling procedures are performed, and a plurality of secondary models of the primary model are generated. In some embodiments, accuracy scores and/or computational resource usage of the quadratic models are determined and compared. One or more secondary models may be selected for deployment based at least in part on the accuracy score and/or computational resource usage of the model.
예측 문제에 대한 예측 모델을 선택하기 위한 방법(300)의 일부 실시예가 예측 문제에 대한 2차 예측 모델을 선택하는 데 사용될 수 있다. 일부 실시예에서, 입력 데이터의 하나 이상의 피처의 모델-특유 예측값이 (예를 들어, 후술하는 방법(1000)의 실시예를 사용하여) 2차 모델에 대해 결정될 수 있다. 일부 실시예에서, (예를 들어, 본원에 설명되는 기술을 사용하여) 2차 예측 모델이 혼합될 수 있다. 일부 실시예에서, (예를 들어, 본원에 설명되는 기술 및/또는 성능 향상을 사용하여) 2차 예측 모델이 배치 및/또는 리프레시될 수 있다.Some embodiments of the
예측 문제에 대한 예측 모델을 선택하기 위한 방법(300)의 일부 실시예가 예측 문제에 대한 2차 예측 모델을 선택하는 데 사용될 수 있다.Some embodiments of the
텍스트 언어 조건text language condition
데이터 세트의 일부 피처는 구조화되지 않은 텍스트 블록을 포함할 수 있다. 다른 언어는 다른 특성을 가지므로, 최상의 예측 모델링 단계는 구조화되지 않은 텍스트 피처에 어떤 언어 또는 언어들이 존재하는지에 따를 수 있다.Some features of a data set may contain unstructured text blocks. Since different languages have different characteristics, the best predictive modeling step may be depending on which language or languages are present in the unstructured text feature.
일부 실시예에서, 시스템(100)은 텍스트 스트링으로 언어를 검출하거나, 보다 일반적으로 스트링이 주어진 언어에 있을 가능성을 계산한다. 시스템(100)은 텍스트 언어의 지식을 조건부 텍스트 프로세싱을 통해 예측 모델링 프로세스에 통합할 수 있다. 예를 들어, 모델링 기술은 텍스트로부터 구조화된 피처를 추출하는 것을 포함하는 사전-프로세싱 단계를 포함할 수 있다. 피처 추출 절차는 언어에 기초하여 다를 수 있다. 또 다른 예로서, 일부 모델링 기술은 특정 언어에 특정되거나 다른 언어에 대해 다르게 수행할 수 있다.In some embodiments,
예를 들어, 문자 n-gram은 중국어 텍스트에서 효과적이다. 영어 텍스트에서 종종 좋은 결과를 만들지만 일관성이 떨어지므로, 통상적으로 영어 텍스트의 프로세싱을 위해서는 n-gram이 선호된다. 독일어와 핀란드어와 같은 많은 형태소에서 한 단어를 형성하는 "합성" 언어도 있다. 단어 n-gram은 이 구조에서 정보 중 많은 것을 잃을 수 있으므로, 이러한 언어의 프로세싱 텍스트는 일반적으로 단어로부터 형태소를 추출하기 위해 특수화된 토큰화를 추가로 요구한다. 또한, 다른 언어로부터의 텍스트의 프로세싱은 중지 단어 제거, 스테밍(stemming) 및 표제어 추출(lemmatization)을 위한 다른 처리로부터 이익을 받을 수 있다.For example, the character n-gram is effective in Chinese text. Usually, n-grams are preferred for processing English texts because they often produce good results but are inconsistent in English texts. There are also "synthetic" languages, such as German and Finnish, that form a word from many morphemes. Since word n-grams can lose much of the information in this structure, processing texts in these languages typically require additional specialized tokenization to extract morphemes from words. Further, processing of text from other languages may benefit from other processing for stopword removal, stemming, and lemmatization.
일부 실시예에서, 개별 모델링 기술은 검출된 언어에 의존하는 텍스트 프로세싱을 위한 조건부 로직을 가질 수 있다. 예를 들어, 모델링 기술은 유럽 언어에 대한 단어 n-gram 및 중국어 언어에 대한 문자 n-gram을 사용할 수 있다. 엔진(110)은 실행을 위해 디스패치될 때 검출된 언어 또는 언어들을 모델링 기술로 전달할 수 있다.In some embodiments, individual modeling techniques may have conditional logic for text processing that depends on the detected language. For example, the modeling technique may use a word n-gram for a European language and a character n-gram for a Chinese language.
일부 실시예에서, 엔진(110)은 언어에 기초한 평가로부터 모델링 기술 또는 모델링 기술의 패밀리를 배제하거나, 언어에 기초하여 그 자원 할당(예를 들어, 프로세싱 우선 순위)을 변경할 수 있다. 일부 실시예에서, 모델링 기술은, 그 기술이 적절한 언어 또는 언어들을 특정하는 연관 메타데이터를 가질 수 있다. 일부 실시예에서, 모델링 기술은, 그 기술이 언어의 세트에 대해 얼마나 잘 수행할 것인지를 나타내는 연관된 메타데이터를 가질 수 있다. 이러한 성능 추정은 모델링 기술에 대한 이전 정보에 기초할 수 있거나, 상이한 모델링 기술이 상이한 언어로 얼마나 잘 수행되는지에 기초하여 메타 머신 학습을 통해 계산될 수 있다.In some embodiments,
상호 작용 강도interaction strength
예측 모델에서, 함께 취해진 2개 이상의 예측 변수(예를 들어, 피처)는 개별적으로 취해진 이들 변수에 추가하여 또는 그 대신에 타겟 변수에 영향을 줄 수 있다. 일부 실시예에서, 시스템은 광범위하게 다양한 예측 문제에 걸쳐 이러한 상호 작용을 나타내는 메트릭 또는 메트릭 세트의 값을 결정한다. 일부 실시예에서, 엔진(110)은 적절한 상호 작용 모델링 기술을 자동으로 적용하는 프로세스에 메트릭을 통합한다. 일부 실시예에서, 엔진(110)은 사용자로 하여금 대안적인 사전-패키지화된 상호 작용 모델링 기술 중에서 선택하거나 그 자신의 커스텀 기술을 적용할 수 있게 한다.In a predictive model, two or more predictor variables (eg, features) taken together may influence a target variable in addition to or in lieu of those variables taken separately. In some embodiments, the system determines values of a metric or set of metrics that represent such interactions across a wide variety of prediction problems. In some embodiments,
예를 들어, 자동차 보험의 맥락에서, "연령"과 "성별" 피처 간의 상호 작용이 있을 수 있다. 일부 연령에서는 여성이 남성보다 안전한 운전자이다. 다른 연령에서는, 남성과 여성은 동등하게 안전하다. 그리고 또 다른 연령에서는 남성이 더 안전하다. 또 다른 예로서, 지리학적 분석의 맥락에서, 위도와 경도 사이의 상호 작용이 있을 수 있다. 상호 작용 없이 위도와 경도의 피처만을 사용하면, 모델은 싱가포르가 1인당 매우 높은 GDP 대신 1인당 낮은 GDP를 갖는 것으로 예측할 수 있지만, 상호 작용 정보를 사용하면, 모델은 싱가포르가 1인당 높은 GDP를 갖는 것으로 올바르게 예측할 수 있다.For example, in the context of auto insurance, there may be an interaction between "age" and "gender" features. At some age, women are safer drivers than men. At other ages, men and women are equally safe. And at other ages, men are safer. As another example, in the context of geographic analysis, there may be an interaction between latitude and longitude. Using only features of latitude and longitude without interaction, the model can predict that Singapore has low GDP per capita instead of very high GDP per capita, but using interaction information, the model can predict that Singapore has high GDP per capita. can be predicted correctly.
일반적으로, 상호 작용을 검출하는 것은 2개 이상의 피처 사이의 통계적으로 중요한 상호 작용을 검출하는 방법을 수행하는 것을 포함한다. 일부 실시예에서, 엔진(110)은 (예를 들어, 방법(400)의 단계(408)에서) 데이터 세트를 평가할 때 상호 작용을 검출할 수 있다. 일부 실시예에서, 개별 모델링 기술은 (예를 들어, 모델링 기술 빌더(220)에 의해) 상호 작용을 위해 개별적으로 테스트하도록 구성될 수 있다. 전자의 접근법은 일반적인 해결책을 제공할 수 있으며, 후자의 접근법은 특정 상황을 다루는 데 더 많은 유연성을 제공할 수 있다.In general, detecting an interaction includes performing a method of detecting a statistically significant interaction between two or more features. In some embodiments,
일반적인 경우에, 엔진(110)은 (a) 어떤 피처의 서브세트가 상호 작용을 위한 후보인지, (b) 어떤 상호 작용 순서로 테스트할 것인지, (c) 어떤 특정 피처 조합을 테스트할 것인지를 결정할 수 있다. 각각의 결정에 대해, 엔진(100)은 과거 예측 문제에 대한 경험적 또는 메타-머신 학습의 결과 중 어느 하나를 사용할 수 있다. 예를 들어, 일부 연구 결과에 따르면 3-웨이(way) 이상의 상호 작용을 테스트하는 것은 예측 정확도가 거의 향상되지 않다. 따라서, 일부 실시예에서, 엔진(110)은 사용자에 의해 명시적으로 무시되지 않거나, 더 높은 차수의 상호 작용으로 모델링하는 것이 정확도를 향상시킬 것이라는 예외적인 경우가 되는 상당한 확률을 특정 문제가 갖는 것으로 메타-머신 학습 알고리즘이 나타내지 않는다면, 2-웨이 상호 작용에 대해서만 테스트하거나 2-웨이 상호 작용에 대해서만 테스트하는 것을 디폴트로 할 수 있다.In the general case, the
잠재적 상호 작용의 세트를 결정한 후에, 엔진(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)를 포함한다.After determining the set of potential interactions,
일부 실시예에서, 시스템(100)은 다른 머신 학습 기술을 실행하기 위해 전술한 동일한 메커니즘을 사용하여 상호 작용을 검출하는 이러한 기술을 수행한다. 엔진(110)이 상호 작용 검출 결과를 얻은 후에, 엔진은 (1) 중요한 상호 작용에 기초하여 새로운 피처를 구성하여 이를 데이터 세트에 추가하고 및/또는 (2) 모델링 기술이 상호 작용을 직접 취급할 수 있는 능력을 갖는 경우, 중요한 상호 작용의 목록을 파라미터로서 모델링 기술에 전달할 수 있다. 모델링 기술의 실행은 전술한 방식으로 계속될 수 있다.In some embodiments,
예측 성능 향상Better predictive performance
사용자는 배치 엔진을 사용하여(예를 들어, 모델 배치 엔진(140)을 사용하여) 독립적인 예측 서비스에 잠재적으로 모델을 맞춤화할 수 있다. 일부 경우에, 특정 모델을 사용하여 피처의 관측치로부터 예측 타겟을 계산하는 것은 상당한 연산 자원을 필요로 할 수 있다. 일부 실시예에서, 엔진(110)은, 특히 예측 서비스가 하나 이상의 모델에 대한 많은 모델 및/또는 빈번한 요청에 대한 요청을 취급할 때, 자원 소비를 제한(예를 들어, 최소화)하면서 적시의 응답을 제공하도록 구성된다.A user may use the placement engine (eg, using the model placement engine 140 ) to potentially customize the model to an independent prediction service. In some cases, calculating a prediction target from observations of a feature using a particular model may require significant computational resources. In some embodiments,
일례를 이하에 설명한다. 온라인 게임에서, 게임 공급자는 많은 상이한 유형의 게임을 지원할 수 있으며 각 유형의 게임의 많은 인스턴스와 각 인스턴스에서 많은 사용자가 플레이한다. 게임으로부터 사용자 만족도 및 수익을 증가(예를 들어, 최적화)시키기 위해, 이러한 공급자는 플레이하는 게임의 결과에 기초하여 사용자의 거동을 예측하기를 원할 수 있다. 이러한 공급자는 이러한 예측을 사용하여 플레이어에게 제공하거나 미래의 게임 경험을 조정할 수 있다. 따라서, 이러한 공급자는 수십 내지 수백개의 다른 모델에 의존할 수 있으며, 각각의 모델은 예를 들어, 하루 수천 내지 수백만의 예측을 하는 데 사용될 수 있다. 또한, 모델에 걸친 상대적인 예측 수요는 인구 통계학적 효과, 인기의 변화, 평균 게임 완료 시간의 차이 등으로 인해 시간이 지남에 따라 크게 변할 수 있다.An example is described below. In online games, game providers can support many different types of games, with many instances of each type of game and many users playing in each instance. In order to increase (eg, optimize) user satisfaction and revenue from games, such providers may want to predict the behavior of users based on the outcome of the games they play. These providers may use these predictions to provide to players or adjust future gaming experiences. Thus, such providers may rely on tens to hundreds of different models, each of which can be used to make, for example, thousands to millions of predictions per day. In addition, the relative demand for prediction across models can change significantly over time due to demographic effects, changes in popularity, differences in average game completion times, etc.
운영 상의 예측을 하기 위해, 사용자는 모델 구축 컴퓨팅 인프라스트럭처와는 완전히 별개인 독립 예측 서비스를 원할 수 있다. 독립 예측 서비스는 다른 컴퓨팅 환경에서 실행되거나, 공유 컴퓨팅 환경 내에서 별개의 컴포넌트로 관리될 수 있다. 일단 인스턴스화되면, 서비스의 실행, 보안 및 모니터링이 모델 구축 환경과 완전히 분리되어 사용자가 독립적으로 이를 배포 및 관리할 수 있게 한다.To make operational predictions, users may want a standalone prediction service that is completely separate from the model building computing infrastructure. The independent prediction service may run in different computing environments, or may be managed as separate components within the shared computing environment. Once instantiated, the execution, security, and monitoring of the service is completely decoupled from the model building environment, allowing users to deploy and manage it independently.
서비스를 인스턴스화한 후에, 배치 엔진은 사용자로 하여금 맞춤화된 모델을 서비스에 설치하도록 허용할 수 있다. 성능을 향상(예를 들어, 최적화)시키기 위해, 모델 맞춤화에 적절한 모델링 기술의 구현은 예측을 위해 차선적일 수 있다. 예를 들어 모델을 맞춤화하는 것은 동일한 알고리즘을 반복적으로 실행하는 것을 필요로 하므로, 알고리즘의 빠른 병렬 실행을 가능하게 하기 위해 상당한 양의 오버헤드를 투자하는 것이 종종 가치가 있다. 그러나 예측 요청의 예상 레이트가 매우 높지 않는 경우, 동일한 오버헤드는 독립적인 예측 서비스에 대해 가치가 없을 수 있다. 일부 경우에, 모델링 기술 개발자는 예측 환경에서 더 나은 성능 특성을 제공하는 컴포넌트 실행 작업 중 하나 이상의 특수 버전을 제공할 수도 있다. 특히, 고도의 병렬 실행 또는 특수 프로세서에서의 실행을 위해 설계된 구현은 예측 성능에 유리할 수 있다. 마찬가지로, 모델링 기술이 프로그래밍 언어로 특정된 작업을 포함하는 경우, 서비스 시작 또는 해당 모델로부터 예측에 대한 초기 요청이 있을 때까지 기다리지 않고 서비스 인스턴스화시 작업을 사전-컴파일하는 것이 성능 향상을 제공할 수 있다.After instantiating the service, the deployment engine may allow the user to install a customized model into the service. To improve (eg, optimize) performance, implementation of modeling techniques appropriate for model customization may be sub-optimal for prediction. Customizing a model, for example, requires executing the same algorithm repeatedly, so it is often worth investing a significant amount of overhead to enable fast parallel execution of the algorithm. However, if the expected rate of prediction requests is not very high, the same overhead may not be worthwhile for an independent prediction service. In some cases, modeling technology developers may provide specialized versions of one or more of the component execution tasks that provide better performance characteristics in a predictive environment. In particular, implementations designed for highly parallel execution or execution on specialized processors may benefit predictive performance. Similarly, if the modeling technique involves tasks specified in a programming language, pre-compiling the tasks upon service instantiation rather than waiting for service startup or an initial request for predictions from that model may provide a performance improvement. .
또한, 모델 맞춤 작업은 일반적으로 예측 서비스와는 다른 컴퓨팅 인프라스트럭처 사용한다. 모델링 기술 실행 중에 에러로부터 클라우드 인프라스트럭처를 보호하고 클라우드의 다른 사용자로부터 모델링 기술에 대한 액세스를 방지하기 위해, 모델링 기술은 모델 맞춤화 중에 보안 컴퓨팅 컨테이너에서 실행할 수 있다. 그러나, 예측 서비스는 종종 전용 머신 또는 클러스터에서 실행된다. 따라서, 보안 컨테이너 계층을 제거하는 것은 임의의 실제적인 단점 없이 오버헤드를 감소시킬 수 있다.Additionally, model fitting tasks typically use a different computing infrastructure than prediction services. To protect the cloud infrastructure from errors during the modeling technique execution and to prevent access to the modeling technique from other users in the cloud, the modeling technique can run in a secure computing container during model customization. However, prediction services often run on dedicated machines or clusters. Thus, eliminating the secure container layer can reduce overhead without any practical disadvantages.
따라서, 모델의 모델링 기술, 기대되는 로드 및 예측을 위한 타겟 컴퓨팅 환경의 특성에 의해 실행되는 특정 작업에 기초하여, 배치 엔진은 모델을 패키징하고 배치하기 위한 규칙의 세트를 사용할 수 있다. 이러한 규칙은 실행을 최적화할 수 있다.Thus, based on the specific tasks executed by the model's modeling techniques, expected loads, and the characteristics of the target computing environment for prediction, the deployment engine may use a set of rules for packaging and deploying the model. These rules can optimize execution.
주어진 예측 서비스가 복수의 모델을 실행할 수 있기 때문에, 서비스는 각 모델에 대한 예측 요청에 걸쳐 컴퓨팅 자원을 할당할 수 있다. 하나 이상의 서버 머신에 배치하고 컴퓨팅 클러스터에 배치하는 2개의 기본 경우가 있다.Because a given prediction service may run multiple models, the service may allocate computing resources across prediction requests for each model. There are two basic cases of deploying on one or more server machines and deploying on a compute cluster.
서버로의 배치의 경우, 과제는 복수의 서버 중에 요청을 할당하는 방식이다. 예측 서비스는 몇몇 유형의 사전 정보를 가질 수 있다. 이러한 정보는 (a) 구성된 각 모델에 대한 예측을 실행하는 데 걸리는 시간의 추정 (b) 상이한 시간에 구성된 각 모델에 대한 요청의 예상 빈도(c) 모델 실행의 원하는 우선 순위를 포함할 수 있다. 실행 시간의 추정은 하나 이상의 조건 하에서 각각의 모델에 대한 예측 코드의 실제 실행 속도를 측정하는 것에 기초하여 계산될 수 있다. 모델 실행의 원하는 우선 순위는 서비스 관리자에 의해 특정될 수 있다. 요청의 예상 빈도는 해당 모델의 이력 데이터, 메타-머신 학습 모델을 기반으로 한 예상 또는 관리자에 의해 제공되는 것으로부터 계산될 수 있다.In the case of deployment to servers, the challenge is how to allocate requests among multiple servers. A prediction service may have several types of prior information. This information may include (a) an estimate of the time it will take to execute the predictions for each model constructed, (b) the expected frequency of requests for each model constructed at different times, and (c) the desired priority of model execution. The estimate of the execution time may be calculated based on measuring the actual execution speed of the predictive code for each model under one or more conditions. The desired priority of model execution may be specified by the service manager. The expected frequency of requests can be calculated from historical data of that model, predictions based on meta-machine learning models, or provided by administrators.
서비스는 각각의 모델에 초기에 할당될 수 있는 모든 이용 가능 서버의 집계 컴퓨팅 능력의 부분을 연산하기 위해 이러한 요인의 일부 또는 전부를 조합하는 목적 함수를 포함할 수 있다. 서비스가 요청을 받아서 실행하면, 요청의 실행 시간 및 예상 빈도에 대한 갱신된 정보를 자연스럽게 얻는다. 따라서, 서비스는 이러한 부분을 다시 계산하고 이에 따라 서버에 모델을 재할당할 수 있다.The service may include an objective function that combines some or all of these factors to compute a portion of the aggregate computing power of all available servers that may be initially allocated to each model. When a service receives a request and executes it, it naturally gets updated information about the execution time and expected frequency of the request. Thus, the service can recompute these parts and reallocate the model to the server accordingly.
배치된 예측 서비스는 2개의 상이한 유형의 서버 프로세스, 즉 라우터 및 작업자를 가질 수 있다. 하나 이상의 라우터가 예측에 대한 요청을 수용하고 이를 작업자에게 할당하는 라우팅 서비스를 형성할 수 있다. 들어오는 요청은 어떤 예측 모델을 사용할 것인지를 나타내는 모델 식별자, 어떤 사용자 또는 소프트웨어 시스템이 요청을 하는지를 나타내는 사용자 또는 클라이언트 식별자, 그리고 그 모델에 대한 예측자 변수의 하나 이상의 벡터를 가질 수 있다.A deployed prediction service can have two different types of server processes: routers and workers. One or more routers may form a routing service that accepts requests for predictions and assigns them to workers. An incoming request may have one or more vectors of a model identifier indicating which predictive model to use, a user or client identifier indicating which user or software system is making the request, and predictor variables for that model.
요청이 전용 예측 서비스에 들어오면, 그 라우팅 서비스는 모델 식별자, 사용자 또는 클라이언트 식별자, 및 예측자 변수의 벡터의 수의 일부 조합을 검사할 수 있다. 그 다음, 라우팅 서비스는 (1) 주어진 모델을 실행하는 데 및/또는 (2) 주어진 사용자 또는 클라이언트에 대해 사용되는 명령어 및 데이터에 대한 서버 캐시 히트를 증가(예를 들어, 최대화)하기 위해 요청을 작업자에게 할당할 수 있다. 또한 라우팅 서비스는 대기 시간과 스루풋(throughput)의 균형을 맞추기 위해 각 작업자에게 제출되는 배치(batch) 크기의 혼합을 달성하도록 예측자 변수의 벡터 수를 고려할 수 있다.When a request comes in to a dedicated prediction service, that routing service may examine some combination of a model identifier, a user or client identifier, and a number of vectors of predictor variables. The routing service then issues requests to (1) execute the given model and/or (2) increase (eg, maximize) server cache hits for instructions and data used for a given user or client. can be assigned to workers. The routing service may also consider the number of vectors of predictor variables to achieve a mix of batch sizes submitted to each worker to balance latency and throughput.
작업자에 걸친 모델에 대한 요청을 할당하기 위한 알고리즘의 예는 라운드-로빈(round-robin), 모델 계산 강도 및/또는 작업자의 연산력에 기초한 가중화된 라운드 로빈 및 보고된 로드에 기초한 동적 할당을 포함할 수 있다. 지정된 서버에 대한 요청의 신속한 라우팅을 용이하게 하기 위해, 라우팅 서비스는 관측된 특성(예를 들어, 모델 식별자)의 주어진 동일한 세트에 대해 동일한 서버를 선택하는 해시 함수를 사용할 수 있다. 해시 함수는 간단한 해시 함수 또는 일관된 해시 함수일 수 있다. 일관된 해시 함수는 노드(이 경우 작업자에 대응)의 수가 변할 때 더 적은 오버 헤드를 필요로 한다. 따라서, 작업자가 다운되거나 새로운 작업자가 추가되면, 일관된 해시 함수가 다시 연산되어야 하는 해시 키의 수를 감소시킬 수 있다.Examples of algorithms for allocating requests for models across workers include round-robin, weighted round robin based on model computational strength and/or computational power of workers, and dynamic assignment based on reported load. can do. To facilitate rapid routing of requests to a specified server, the routing service may use a hash function that selects the same server for a given identical set of observed characteristics (eg, model identifiers). The hash function may be a simple hash function or a consistent hash function. A consistent hash function requires less overhead when the number of nodes (corresponding to workers in this case) changes. Thus, if a worker goes down or a new worker is added, a consistent hash function can reduce the number of hash keys that must be re-computed.
예측 서비스는, 이용 가능한 서비스 중에 예측 요청을 지능적으로 분배함으로써 성능을 향상(예를 들어, 최적화)시키는 것에 추가하여, 각 작업자가 각 모델을 실행하는 어떻게 실행하는지를 지능적으로 구성함으로써 개개의 모델의 성능을 향상(예를 들어, 최적화)시킬 수 있다. 예를 들어, 주어진 서버가 몇몇 상이한 모델에 대한 요청의 혼합을 수신하면, 각 요청에 대한 모델 로딩 및 언로딩은 상당한 오버 헤드를 발생시킬 수 있다. 그러나 배치 프로세싱(batch processing)에 대한 요청을 집계하는 것은 상당한 대기 시간을 발생시킬 수 있다. 일부 실시예에서, 관리자가 모델에 대한 대기 시간 허용 오차를 특정하면, 서비스는 이러한 상충 관계를 지능적으로 수행할 수 있다. 예를 들어, 긴급 요청은 단지 100 밀리초의 대기 시간 허용 오차를 가질 수 있으며, 이 경우 서버는 하나 또는 많아 봐야 몇 개의 요청만을 프로세싱할 수 있다. 반대로, 대기 시간의 허용 오차가 2초이면 수백의 배치 크기를 가능하게 할 수 있다. 오버헤드로 인해, 대기 시간 허용 오차를 2배 증가시키면 스루풋이 10x에서 100x까지 증가할 수 있다.In addition to improving (e.g. optimizing) performance by intelligently distributing prediction requests among available services, the prediction service can also improve the performance of individual models by intelligently configuring how each worker runs each model. can be improved (eg, optimized). For example, if a given server receives a mix of requests for several different models, loading and unloading models for each request can incur significant overhead. However, aggregating requests for batch processing can introduce significant latency. In some embodiments, once an administrator specifies a latency tolerance for a model, the service can intelligently make this trade-off. For example, an urgent request may have a latency tolerance of only 100 milliseconds, in which case the server may only process one or at most a few requests. Conversely, a two-second latency tolerance can enable hundreds of batch sizes. Due to overhead, doubling the latency tolerance can increase throughput by 10x to 100x.
마찬가지로, 운영 체제 스레드(thread)를 사용하는 것은, 스레드 설정 및 초기화 오버헤드로 인해, 대기 시간을 증가시키면서 스루풋을 향상시킬 수 있다. 일부 경우에, 예측이 대기 시간에 극도로 민감할 수 있다. 주어진 모델에 대한 모든 요청이 대기 시간에 민감할 가능성이 있는 경우, 서비스는 이러한 요청을 취급하는 서버를 단일 스레드 모드에서 동작하도록 구성할 수 있다. 또한, 요청의 서브세트만이 대기 시간에 민감할 가능성이 있는 경우, 서비스는 요청자로 하여금 주어진 요청에 민감한 것으로 플래깅하도록 허용할 수 있다. 이 경우, 서버는 특정 요청을 서비스하면서 단일 스레드 모드로만 동작할 수 있다.Similarly, using operating system threads can improve throughput while increasing latency due to thread setup and initialization overhead. In some cases, predictions may be extremely sensitive to latency. If all requests for a given model are likely to be latency sensitive, the service can configure the server handling these requests to operate in single-threaded mode. Also, if only a subset of the requests are likely to be latency sensitive, the service may allow the requester to flag a given request as sensitive. In this case, the server can only operate in single-threaded mode while servicing specific requests.
일부 경우에, 사용자의 조직은, 조직이 가능한 한 신속히 계산하기 위해 분산 컴퓨팅 클러스터를 사용하기를 원한다는 예측의 배치(batch)를 가질 수 있다. 분산 컴퓨팅 프레임워크(예를 들어, Apache Spark)는 일반적으로 조직으로 하여금 프레임워크를 실행하는 클러스터를 설정할 수 있게 하며, 프레임워크와 함께 작동하도록 설계된 임의의 프로그램은 그 후 데이터 및 실행 가능 명령어로 구성된 작업을 제출할 수 있다.In some cases, a user's organization may have a batch of predictions that the organization would like to use a distributed computing cluster to compute as quickly as possible. Distributed computing frameworks (e.g. Apache Spark) generally allow organizations to set up clusters that run the framework, and any program designed to work with the framework is then configured with data and executable instructions. You can submit your work.
모델에 대한 하나의 예측의 실행은 그 모델 또는 다른 임의의 모델의 결과에 대한 또 다른 예측의 결과에 영향을 미치지 않기 때문에, 예측은 클러스터 컴퓨팅의 맥락에서 비상태 동작이고, 따라서 일반적으로 병렬화하기 용이하다. 따라서, 데이터 및 실행 가능 명령의 배치가 주어지면, 프레임워크의 분할 및 할당 알고리즘의 정상적인 거동은 선형 스케일링으로 귀결될 수 있다.Because the execution of one prediction on a model does not affect the results of another prediction on the results of that model or any other model, prediction is a stateless operation in the context of cluster computing, and thus is generally easy to parallelize. do. Thus, given the arrangement of data and executable instructions, the normal behavior of the partitioning and allocation algorithm of the framework can result in linear scaling.
일부 경우에, 예측을 하는 것은 많은 단계에서 데이터가 생성되고 소비되는 대규모 작업 흐름의 일부일 수 있다. 이러한 경우, 예측 작업은 Apache Kafka와 같은 게시-가입 메커니즘을 통해 다른 동작과 통합될 수 있다. 예측 서비스는 예측이 필요한 새로운 관측치를 생성하는 채널에 가입한다. 서비스가 예측을 한 후에, 다른 프로그램이 소비할 수 있는 하나 이상의 채널에 이를 게시한다.In some cases, making predictions can be part of a larger workflow where data is generated and consumed in many steps. In this case, the prediction task can be integrated with other behaviors through a publish-subscribe mechanism such as Apache Kafka. Prediction services subscribe to channels that generate new observations that need predictions. After the service makes a prediction, it publishes it on one or more channels where other programs can consume it.
성능 향상performance improvement
피팅 모델링 기술 및/또는 다수의 대안 기술 중의 검색은 연산 집약적일 수 있다. 연산 자원은 비용이 많이 들 수 있다. 예측 모델을 생성하기 위한 시스템(100)의 일부 실시예는 자원 소비를 감소시키기 위한 기회를 식별한다.Searching among fitting modeling techniques and/or multiple alternative techniques may be computationally intensive. Computational resources can be expensive. Some embodiments of the
사용자 선호도에 기초하여, 엔진(110)은 실행 시간 및 컴퓨팅 자원의 소비를 감소시키기 위해 모델에 대한 검색을 조정할 수 있다. 일부 경우에, 예측 문제는 많은 트레이닝 데이터를 포함할 수 있다. 이러한 경우 상호 유효성 검증의 이점은 통상적으로 모델 편향을 감소시키는 측면에서 더 낮다. 따라서, 통상적으로 데이터 양의 5배에서 10배에 달하는 1회의 연산 시간이 데이터 양의 1/5에서 1/10에 달하는 5 내지 10회보다 훨씬 더 적기 때문에, 사용자는 각 교차 검증 폴드가 아닌 모든 트레이닝 데이터에 한번에 모델을 맞춤화하는 것을 선호할 수 있다.Based on user preferences,
사용자가 비교적 큰 트레이닝 세트를 갖지 않는 경우에도, 사용자는 여전히 시간 및 자원을 절약하기를 원할 수 있다. 이러한 경우, 엔진(110)은 몇몇의 보다 적극적인 검색 접근법을 사용하는 "그리디어(greedier)" 옵션을 제공할 수 있다. 먼저, 엔진(110)은 가능한 모델링 기술(예를 들어, 예상되는 성능이 비교적 높은 것만)의 더 작은 서브세트를 시도할 수 있다. 둘째, 엔진(110)은 트레이닝 및 평가의 각 라운드에서 보다 열악한 모델을 보다 적극적으로 제거할 수 있다. 셋째, 엔진(110)은 각 모델에 대한 최적의 하이퍼-파라미터를 검색할 때보다 큰 스텝을 취할 수 있다.Even if the user does not have a relatively large training set, the user may still want to save time and resources. In this case,
일반적으로, 보다 양호한(예를 들어, 최적의) 하이퍼-파라미터를 검색하는 것은 비용이 많이 들 수 있다. 따라서, 사용자가 엔진(110)으로 하여금 광범위한 스펙트럼의 잠재적인 모델을 평가하게 하고 이를 적극적으로 제거하지 않기를 원한다고 하더라도, 엔진은 하이퍼-파라미터 검색을 제한(예를 들어, 최적화)함으로써 자원을 여전히 절약할 수 있다. 이 검색 비용은 일반적으로 데이터 세트의 크기에 비례한다. 하나의 전략은 데이터 세트의 작은 부분에 하이퍼-파라미터를 튜닝한 다음 이 파라미터를 전체 데이터 세트로 외삽하는 것이다. 일부 경우, 더 많은 양의 데이터를 고려하여 조정이 이루어진다. 일부 실시예에서, 엔진(110)은 2개의 전략 중 하나를 사용할 수 있다. 먼저, 엔진(110)은 그 모델링 기술에 대한 경험에 기초하여 조정을 수행할 수 있다. 둘째, 엔진(110)은 메타-머신 학습에 참여하여 각 모델링 기술의 하이퍼-파라미터가 데이터 세트 크기에 따라 어떻게 변하는지 추적하고 하이퍼-파라미터의 메타 예측 모델을 구축한 다음 사용자가 상충 관계를 만들기를 원하는 경우 메타 모델을 적용할 수 있다.In general, searching for better (eg, optimal) hyper-parameters can be expensive. Thus, even if the user wants the
카테고리 예측 문제로 작업할 때, 소수 클래스 및 다수 클래스가 있을 수 있다. 소수 클래스는 사기 검출의 경우와 같이 훨씬 더 작지만 상대적으로 더 중요할 수 있다. 일부 실시예에서, 엔진(110)은 다수 클래스를 "다운-샘플링"하여, 그 클래스에 대한 트레이닝 관측의 수가 소수 클래스에 대한 것과 더욱 유사하게 된다. 일부 경우에, 모델링 기술은 모델 맞춤화 동안 자동으로 이러한 가중치를 직접 수용할 수 있다. 모델링 기술이 이러한 가중치를 수용하지 않는다면, 엔진(110)은 다운-샘플링의 양에 비례하여 사후-맞춤 조정을 할 수 있다. 이 접근법은 훨씬 더 짧은 실행 시간과 낮은 자원 소비에 대해 일부 정확도를 희생시킬 수 있다.When working with categorical prediction problems, there can be a minority class and a majority class. A minority class can be much smaller, but relatively more important, as in the case of fraud detection. In some embodiments,
일부 모델링 기술은 다른 것보다 더욱 효율적으로 실행될 수 있다. 예를 들어, 일부 모델링 기술은 병렬 컴퓨팅 클러스터 또는 특수 프로세서가 있는 서버에서 실행되도록 최적화될 수 있다. 각 모델링 기술의 메타데이터는 이러한 임의의 성능 이점을 나타낼 수 있다. 엔진(110)이 컴퓨팅 작업을 할당할 때, 현재 이용 가능한 컴퓨팅 환경에 그 이점이 적용되는 모델링 기술에 대한 작업을 검출할 수 있다. 그 다음, 각 검색 라운드 동안, 엔진(110)은 이러한 작업에 대한 데이터 세트의 더 큰 덩어리를 사용할 수 있다. 그 후, 이러한 모델링 기술이 더 빨리 완료될 수 있다. 또한, 그 정확도가 충분히 좋으면, 상대적으로 열등하게 수행하고 있는 다른 모델링 기술을 테스트할 필요도 없을 수 있다.Some modeling techniques can be implemented more efficiently than others. For example, some modeling techniques may be optimized to run on parallel computing clusters or servers with specialized processors. The metadata of each modeling technique may represent any of these performance benefits. When
사용자 인터페이스(UI) 향상User Interface (UI) Enhancements
엔진(110)은 모델 구축 이전에 사용자로부터 보다 많은 정보를 추출하여 더 나은 예측 모델을 사용자가 생성하도록 도울 수 있으며, 모델 맞춤 후에 사용자에게 모델 성능의 더 나은 이해를 제공할 수 있다.The
일부 경우에, 사용자는 정확한 예측 모델에 대한 검색을 보다 잘 지시하기에 적절한 데이터 세트에 관한 추가 정보를 가질 수 있다. 예를 들어, 사용자는, 특정 관측이 특별한 중요성을 가지며 그 중요성을 나타내기를 원한다는 것을 알 수 있다. 엔진(110)은 사용자로 하여금 이 목적을 위해 새로운 변수를 용이하게 생성하도록 허용할 수 있다. 예를 들어, 하나의 합성 변수는 이러한 분할에 랜덤하게 할당하는 대신 엔진이 트레이닝, 검증 또는 홀드아웃 데이터 분할의 일부로서 특정 관측치를 사용해야 함을 나타낼 수 있다. 이 기능은, 특정 값이 빈번하지 않게 발생하고 대응 관측이 다른 분할에 신중하게 할당되어야 하는 상황에서 유용할 수 있다. 이 기능은, 사용자가 다른 머신 학습 시스템을 사용하여 모델을 트레이닝하고 트레이닝, 검증 및 홀드아웃 분할이 동일한 비교를 수행하기를 원하는 상황에서 유용할 수 있다.In some cases, the user may have additional information about the appropriate data set to better direct the search for an accurate predictive model. For example, a user may know that a particular observation has special importance and would like to indicate that importance.
마찬가지로, 특정 관측은, 사용자가 추가 가중치를 할당하기를 원하는 특히 중요한 이벤트를 나타낼 수 있다. 따라서, 데이터 세트에 삽입된 추가 변수는 각 관측의 상대적 가중치를 나타낼 수 있다. 엔진(110)은 더 높게 가중화된 조건 하에서 더욱 정확한 예측을 생성하는 것을 목적으로 모델을 트레이닝하고 그 정확도를 계산할 때 이 가중치를 사용할 수 있다.Likewise, certain observations may indicate particularly important events for which the user wishes to assign additional weights. Thus, an additional variable inserted into the data set can represent the relative weight of each observation.
다른 경우에서, 사용자는, 특정의 피처가 모델에서 어떻게 거동해야 하는지에 대한 사전 정보를 가질 수 있다. 예를 들어, 사용자는, 특정 피처가 특정 범위에서 예측 타겟에 단조로운 영향을 가져야 함을 알 수 있다. 자동차 보험에서, 일반적으로 사고의 기회는 30세 이후의 나이에 따라 단조 증가한다고 믿어지고 있다. 또 다른 예는 그렇지 않은 연속 변수에 대한 밴드를 생성하는 것이다. 개인 소득은 계속되지만, $10K에서 $100K까지 증분하는 것과 같은 밴드, $25K에서 $250K까지의 밴드, 및 $250K 초과의 모든 수입의 밴드에 값을 할당하는 분석 규칙이 있다. 그런 다음 데이터 세트에 대한 제한이 특정 피처에 대한 제약을 필요로 하는 경우가 있다. 때때로, 카테고리 변수는 데이터 세트의 크기에 비해 매우 많은 수의 값을 가질 수 있다. 사용자는, 엔진(110)이 가능한 카테고리의 특정 수보다 많은 카테고리 피처를 무시해야 하고 카테고리의 수를 가장 빈번한 X로 제한하고, 다른 모든 값을 "다른" 카테고리에 할당해야 한다는 것을 나타내기를 원할 수 있다. 이러한 모든 상황에서, 사용자 인터페이스는 (예를 들어, 방법(400)의 단계(412)에서) 검출된 각 피처에 대해 이 정보를 특정하는 옵션을 사용자에게 제시할 수 있다.In other cases, the user may have prior information about how a particular feature should behave in the model. For example, a user may know that a particular feature should have a monotonic effect on the prediction target in a certain range. In auto insurance, it is generally believed that the chance of an accident increases monotonically with age after 30. Another example is to create bands for non-continuous variables. Personal income continues, but there are analysis rules that assign values to bands such as increments from $10K to $100K, bands from $25K to $250K, and bands of all income above $250K. Then there are cases where constraints on the data set require constraints on specific features. Sometimes, a categorical variable can have a very large number of values compared to the size of the data set. A user may wish to indicate that the
사용자 인터페이스는 피처 변환에서 가이드되는 지원을 제공할 수 있다. 예를 들어, 사용자는 연속 변수를 카테고리 변수로 변환하기를 원할 수 있지만, 해당 변수에 대한 표준 규칙은 없을 수 있다. 분산의 형태를 분석함으로써, 엔진(110)은 최적의 갯수의 카테고리 밴드 및 각 밴드 사이의 경계를 정의하는 분산에 "매듭"을 배치할 포인트를 선택할 수 있다. 선택적으로, 사용자는 매듭을 추가하거나 삭제할 뿐만 아니라 매듭의 위치를 이동시킴으로써 사용자 인터페이스의 이러한 디폴트를 무시할 수 있다.The user interface may provide guided assistance in feature transformation. For example, a user may want to convert a continuous variable to a categorical variable, but there may not be a standard rule for that variable. By analyzing the shape of the variance, the
마찬가지로, 이미 카테고리형인 피처에 대해, 엔진(110)은 하나 이상의 카테고리를 단일 카테고리로 조합함으로써 표현을 단순화할 수 있다. 각각의 관측된 카테고리의 상대적인 빈도 및 다른 피처의 값에 대해 나타나는 빈도에 기초하여, 엔진(110)은 카테고리를 조합하기 위한 최적의 방식을 계산할 수 있다. 선택적으로, 사용자는 조합된 카테고리로부터 원래 카테고리를 제거하고 및/또는 기존 카테고리를 조합된 카테고리에 넣음으로써 이러한 계산을 무시할 수 있다.Likewise, for features that are already categorical,
특정의 경우에, 예측 문제는 불규칙한 간격으로 발생하는 이벤트를 포함할 수 있다. 이러한 경우, 이러한 이벤트가 특정 시간 프레임 내에서 얼마나 많이 발생했는지를 포착하는 새로운 피처를 자동으로 생성하는 것이 유용할 수 있다. 예를 들어, 보험 예측 문제에서, 데이터 세트는 보험 계약자가 보험금을 청구할 때마다 기록을 보유할 수 있다. 그러나 장래의 위험을 예측하는 모델을 구축할 때, 과거 X년 동안 보험 계약자가 얼마나 많은 보험금을 가졌는지를 고려하는 것이 더 유용할 수 있다. 엔진은 엔티티에 대응하는 기록과 이벤트에 대응하는 다른 기록 사이의 데이터 구조 관계를 검출함으로써 (예를 들어, 방법(400)의 단계(408)에서) 데이터 세트를 평가할 때 이러한 상황을 검출할 수 있다. (예를 들어, 단계(410)에서) 데이터 세트를 사용자에게 제시할 때, 사용자 인터페이스는 이러한 피처를 자동으로 생성하거나 제시할 수 있다. 이러한 변수의 장래의 이벤트의 발생 사이의 통계적인 의존성을 최대화하도록 계산되었거나, 일부 다른 경험을 사용하여 이벤트가 발생하는 빈도에 기초하여 시간 프레임 임계값을 또한 제안할 수 있다. 사용자 인터페이스는 또한 사용자로 하여금 그러한 피처의 생성을 무시하고, 그러한 피처의 생성을 강제하며, 제시된 시간 프레임 임계값을 무시하게 하도록 허용할 수 있다.In certain cases, prediction problems may include events that occur at irregular intervals. In such cases, it can be useful to automatically create new features that capture how many times these events have occurred within a particular time frame. For example, in an insurance forecasting problem, a data set may hold a record of each time a policyholder makes an insurance claim. However, when building a model that predicts future risk, it may be more useful to consider how much insurance the policyholder had in the past X years. The engine may detect this situation when evaluating a data set (eg, at
시스템이 모델에 기초하여 예측을 행하는 경우, 사용자는 이러한 예측을 검토하고 특이한 것을 탐색할 수 있다. 예를 들어, 사용자 인터페이스는 모델에 대한 예측의 전부 또는 서브세트의 목록을 제공하고, 예측자의 값의 크기 또는 그 값을 가질 낮은 확률의 관점에서 어떤 것이 극단적이었는지를 나타낼 수 있다. 또한, 극단적인 값에 대한 이유에 대한 직관을 제공하는 것도 가능한다. 예를 들어, 자동차 보험 위험 모델에서 특히 높은 값은 "연령 < 25세 결혼 상태 = 독신"인 이유를 가질 수 있다.When the system makes predictions based on the model, users can review these predictions and search for outliers. For example, the user interface may provide a list of all or a subset of the predictions for the model and indicate which ones were extreme in terms of the magnitude of the predictor's value or the low probability of having that value. It is also possible to provide an intuition as to the reasons for the extreme values. For example, a particularly high value in an auto insurance risk model may have the reason "age < 25 marital status = single".
일부 실시예의 추가 설명Further description of some embodiments
본원에 제공되는 예가 별개의 컴퓨터 상에 존재하는 모듈 또는 별개의 컴퓨터에 의해 수행되는 동작을 설명할 수 있지만, 이들 컴포넌트의 기능은 단일 컴퓨터 또는 임의의 더 많은 수의 분산 방식의 컴퓨터에 구현될 수 있다는 것이 이해되어야 한다.Although the examples provided herein may describe modules residing on separate computers or operations performed by separate computers, the functionality of these components may be implemented on a single computer or any larger number of computers in a distributed fashion. It should be understood that there is
전술한 실시예는 임의의 다수의 방식으로 구현될 수 있다. 예를 들어, 실시예는 하드웨어, 소프트웨어 또는 이들의 조합을 사용하여 구현될 수 있다. 소프트웨어로 구현될 때, 소프트웨어 코드는 단일 컴퓨터에서 제공되든 또는 복수의 컴퓨터 중에 분산되어 있든, 임의의 적절한 프로세서 또는 프로세서의 컬렉션에서 실행될 수 있다. 또한, 컴퓨터는 랙(rack)-장착 컴퓨터, 데스크톱 컴퓨터, 랩톱 컴퓨터 또는 태블릿 컴퓨터와 같은 다수의 형태 중 임의의 형태로 구현될 수 있음을 이해해야 한다. 또한, 컴퓨터는 일반적으로 컴퓨터로 간주되지 않지만 PDA(Personal Digital Assistant), 스마트 폰 또는 임의의 다른 적절한 휴대용 또는 고정식 전자 디바이스를 포함하는 적절한 프로세싱 기능을 갖는 디바이스에 내장될 수 있다.The above-described embodiments may be implemented in any number of ways. For example, embodiments may be implemented using hardware, software, or a combination thereof. When implemented in software, the software code may be executed on any suitable processor or collection of processors, whether provided on a single computer or distributed among multiple computers. It should also be understood that the computer may be embodied in any of a number of forms, such as a rack-mounted computer, a desktop computer, a laptop computer, or a tablet computer. Also, a computer is not generally considered a computer, but may be embedded in a device having suitable processing capabilities, including a Personal Digital Assistant (PDA), a smart phone, or any other suitable portable or stationary electronic device.
이러한 컴퓨터는 근거리 네트워크 또는 엔터프라이즈 네트워크 또는 인터넷과 같은 광역 네트워크를 포함하는 임의의 적절한 형태의 하나 이상의 네트워크에 의해 상호 접속될 수 있다. 이러한 네트워크는 임의의 적절한 기술에 기초할 수 있으며, 임의의 적절한 프로토콜에 따라 동작할 수 있고, 무선 네트워크, 유선 네트워크 또는 광섬유 네트워크를 포함할 수 있다.These computers may be interconnected by one or more networks of any suitable form, including local area networks or enterprise networks or wide area networks such as the Internet. Such networks may be based on any suitable technology, may operate according to any suitable protocol, and may include wireless networks, wired networks, or fiber optic networks.
또한, 본원에 설명되는 다양한 방법 또는 프로세스는 다양한 운영 체제 또는 플랫폼 중 임의의 하나를 채용하는 하나 이상의 프로세서 상에서 실행 가능한 소프트웨어로서 코딩될 수 있다. 또한, 이러한 소프트웨어는 다수의 적절한 프로그래밍 언어 및/또는 프로그래밍 또는 스크립팅 도구 중 임의의 것을 사용하여 기록될 수 있으며, 또한 프레임워크 또는 가상 머신 상에서 실행되는 실행 가능 머신 언어 코드 또는 중간 코드로서 컴파일될 수 있다.In addition, the various methods or processes described herein may be coded as software executable on one or more processors employing any one of a variety of operating systems or platforms. Further, such software may be written using any of a number of suitable programming languages and/or programming or scripting tools, and may also be compiled as executable machine language code or intermediate code running on a framework or virtual machine. .
이 관점에서, 일부 실시예는, 하나 이상의 컴퓨터 또는 다른 프로세서 상에서 실행될 때 전술한 다양한 실시예를 구현하는 방법을 수행하는 하나 이상의 프로그램으로 인코딩된 컴퓨터 판독 가능 매체(또는 복수의 컴퓨터 판독 가능 매체)(예를 들어, 컴퓨터 메모리, 하나 이상의 플로피 디스크, 콤팩트 디스크, 광학 디스크, 자기 테이프, 플래시 메모리, 필드 프로그래머블 게이트 어레이 또는 다른 반도체 디바이스, 또는 다른 유형의 컴퓨터 저장 매체의 회로 구성)로 구현될 수 있다. 컴퓨터 판독 가능 매체 또는 매체들은 비일시적일 수 있다. 컴퓨터 판독 가능 매체 또는 매체들은 전술한 바와 같이 예측 모델링의 다양한 양태를 구현하기 위해 하나 이상의 다른 컴퓨터 또는 다른 프로세서 상에 저장된 프로그램 또는 프로그램들이 로딩될 수 있도록 이송 가능할 수 있다. "프로그램" 또는 "소프트웨어"라는 용어는 본원에서 설명된 다양한 양태를 구현하기 위해 컴퓨터 또는 다른 프로세서를 프로그램하도록 채용될 수 있는 임의의 유형의 컴퓨터 코드 또는 컴퓨터-실행 가능 명령어를 지칭하는 일반적인 의미로 본원에서 사용된다. 또한, 본 발명의 일 양태에 따르면, 실행될 때 예측 모델링 방법을 수행하는 하나 이상의 컴퓨터 프로그램이 단일 컴퓨터 또는 프로세서 상에 존재할 필요는 없으며, 예측 모델링의 다양한 양태를 구현하기 위해 다수의 상이한 컴퓨터 또는 프로세서 중에 모듈 형식으로 분산될 수 있다는 것이 이해되어야 한다.In this regard, some embodiments include computer readable media (or a plurality of computer readable media) encoded with one or more programs that, when executed on one or more computers or other processors, perform the methods of implementing the various embodiments described above ( for example, computer memory, one or more floppy disks, compact disks, optical disks, magnetic tapes, flash memory, field programmable gate arrays or other semiconductor devices, or circuit configurations of other types of computer storage media). The computer-readable medium or media may be non-transitory. The computer-readable medium or media may be transportable such that a program or programs stored on one or more other computers or other processors may be loaded to implement various aspects of predictive modeling as described above. The terms “program” or “software” are used herein in their generic sense to refer to any type of computer code or computer-executable instructions that may be employed to program a computer or other processor to implement the various aspects described herein. is used in Further, in accordance with an aspect of the present invention, one or more computer programs that perform the predictive modeling method when executed need not reside on a single computer or processor, but among a number of different computers or processors to implement the various aspects of predictive modeling. It should be understood that it can be distributed in a modular fashion.
컴퓨터-실행 가능 명령어는 하나 이상의 컴퓨터 또는 다른 디바이스에 의해 실행되는 프로그램 모듈과 같은 많은 형태일 수 있다. 일반적으로, 프로그램 모듈은 특정 작업을 수행하거나 특정 추상 데이터 유형을 구현하는 루틴, 프로그램, 객체, 컴포넌트, 데이터 구조 등을 포함한다. 통상적으로, 프로그램 모듈의 기능은 다양한 실시예에서 요구되는 바와 같이 조합되거나 분산될 수 있다.Computer-executable instructions can be in many forms, such as program modules, being executed by one or more computers or other devices. Generally, program modules include routines, programs, objects, components, data structures, etc. that perform particular tasks or implement particular abstract data types. Typically, the functions of the program modules may be combined or distributed as required in various embodiments.
또한, 데이터 구조는 임의의 적절한 형태로 컴퓨터-판독 가능 매체에 저장될 수 있다. 예시의 단순화를 위해, 데이터 구조는 데이터 구조의 위치를 통해 관련된 필드를 갖는 것으로 나타낼 수 있다. 이러한 관계는 필드들 간의 관계를 전달하는 컴퓨터-판독 가능 매체의 위치들을 필드들에 대한 저장소에 할당함으로써 유사하게 달성될 수 있다. 그러나 포인터, 태그 또는 데이터 요소 간의 관계를 확립하는 다른 메커니즘의 사용을 포함하여 데이터 구조의 필드에 있는 정보 간의 관계를 확립하는 데 임의의 적절한 메커니즘이 사용될 수 있다.Further, the data structures may be stored in computer-readable media in any suitable form. For simplicity of illustration, a data structure may be represented as having fields associated through the location of the data structure. This relationship may be similarly achieved by allocating locations on a computer-readable medium conveying the relationship between the fields to the storage for the fields. However, any suitable mechanism may be used to establish relationships between information in fields of a data structure, including the use of pointers, tags, or other mechanisms for establishing relationships between data elements.
또한, 예측 모델링 기술은, 그 예가 제공되는 방법으로서 구현될 수 있다. 이 방법의 일부로 수행된 행위는 임의의 적절한 방식으로 순서화될 수 있다. 따라서, 예시된 실시예에서 순차적인 동작으로 도시되었지만, 몇몇 동작을 동시에 수행하는 것을 포함할 수 있는, 나타낸 것과 다른 순서로 동작이 수행되는 실시예가 구성될 수 있다.Also, predictive modeling techniques may be implemented as a method in which examples are provided. The actions performed as part of this method may be ordered in any suitable manner. Thus, although shown as sequential operations in the illustrated embodiments, embodiments may be constructed in which the operations are performed in an order other than that shown, which may include performing several operations simultaneously.
일부 실시예에서, 방법(들)은 컴퓨터의 랜덤 액세스 메모리의 일부에 저장된 컴퓨터 명령으로서 구현되어 전술한 프로세스들에 영향을 주는 제어 로직을 제공할 수 있다. 이러한 실시예에서, 프로그램은 FORTRAN, PASCAL, C, C++, C#, Java, 자바 스크립트, Tcl 또는 BASIC과 같은 다수의 고급 언어 중 임의의 언어로 기록될 수 있다. 또한, 프로그램은 스크립트, 매크로 또는 EXCEL 또는 VISUAL BASIC과 같은 상용 소프트웨어에 포함된 기능으로 기록될 수 있다. 또한, 소프트웨어는 컴퓨터 상에 상주하는 마이크로프로세서에 대한 어셈블리 언어로 구현될 수 있다. 예를 들어, IBM PC 또는 PC 클론에서 실행되도록 구성된 경우 Intel 80x86 어셈블리 언어로 소프트웨어가 구현될 수 있다. 이 소프트웨어는 플로피 디스크, 하드 디스크, 광 디스크, 자기 테이프, PROM, EPROM 또는 CD-ROM과 같은 "컴퓨터-판독 가능 프로그램 수단"을 포함하지만 이에 제한되지 않는 제조 물품에 수록될 수 있다.In some embodiments, the method(s) may be implemented as computer instructions stored in a portion of a computer's random access memory to provide control logic affecting the processes described above. In such an embodiment, the program may be written in any of a number of high-level languages such as FORTRAN, PASCAL, C, C++, C#, Java, JavaScript, Tcl, or BASIC. In addition, programs can be recorded as scripts, macros or functions included in commercial software such as EXCEL or VISUAL BASIC. Additionally, the software may be implemented in assembly language for a microprocessor resident on a computer. For example, software may be implemented in Intel 80x86 assembly language when configured to run on an IBM PC or PC clone. The software may be embodied in an article of manufacture including, but not limited to, “computer-readable program means” such as a floppy disk, hard disk, optical disk, magnetic tape, PROM, EPROM or CD-ROM.
본 발명의 다양한 양태들은 단독으로, 조합하여, 또는 위에서 구체적으로 설명되지 않은 다양한 배열로 사용될 수 있으며, 따라서 본 발명은 전술한 설명 또는 나타내어진 도면에서 개진된 컴포넌트의 상세 사항 및 배열로 그 응용을 한정시키지 않는다. 예를 들어, 일 실시예에서 설명된 양태는 다른 실시예에서 설명된 양태와 임의의 방식으로 조합될 수 있다.The various aspects of the invention may be used alone, in combination, or in various arrangements not specifically described above, and thus the invention finds its application in the details and arrangement of components set forth in the foregoing description or in the drawings shown. do not limit For example, an aspect described in one embodiment may be combined in any manner with an aspect described in another embodiment.
용어Terms
본원에서 사용된 어구 및 용어는 설명의 목적을 위한 것이며 한정하는 것으로 간주되어서는 안된다.The phraseology and terminology used herein is for the purpose of description and should not be regarded as limiting.
본 명세서 및 청구항에서 사용되는 부정 관사 "어느(a)" 및 "어떤(an)"은 명시적으로 반대로 표시되지 않는 한 "적어도 하나"를 의미하는 것으로 이해되어야 한다. 명세서 및 청구항에서 사용된 "및/또는"이라는 문구는 이와 같이 조합된 요소의 "어느 하나 또는 둘"을 의미하는 것으로 이해되어야 하며, 즉, 요소는 어떤 경우에는 조합적으로 존재하고 다른 경우에는 분리적으로 존재한다. "및/또는"으로 나열된 복수의 요소는 동일한 방식으로, 즉 조합된 요소 중 "하나 이상"으로 해석되어야 한다. 구체적으로 식별된 요소와 관련이 있거나 관계가 없든 "및/또는" 절에 의해 구체적으로 식별되는 요소 이외에 다른 요소가 선택적으로 존재할 수 있다. 따라서, 비한정적인 예로서, "포함하는(comprising)"과 같은 제한이 없는 언어와 함께 사용될 때 "A 및/또는 B"에 대한 참조는 일 실시예에서 A만으로(선택적으로 B 이외의 요소를 포함); 다른 실시 양태에서, B만(선택적으로 A 이외의 요소를 포함함)으로; 또 다른 구현 예에서는, A 및 B 모두(선택적으로 다른 원소를 포함 함); 등을 나타낸다.As used herein and in the claims, the indefinite articles “a” and “an” should be understood to mean “at least one” unless explicitly indicated to the contrary. The phrase "and/or" as used in the specification and claims should be understood to mean "either one or two" of the elements so combined, i.e., the elements are present in combination in some cases and separate in other cases. exist as an enemy. A plurality of elements listed as “and/or” should be construed in the same way, ie, as “one or more” of the combined elements. Other elements may optionally be present other than those specifically identified by the "and/or" clause, whether related or unrelated to the specifically identified element. Thus, as a non-limiting example, reference to "A and/or B" when used in conjunction with a non-limiting language such as "comprising" may in one embodiment refer to only A (optionally elements other than B). include); in other embodiments, with only B (optionally including elements other than A); In another embodiment, both A and B (optionally including other elements); etc.
명세서 및 청구항에서 사용되는 "또는"은 상기 정의된 바와 같은 "및/또는"과 동일한 의미를 갖는 것으로 이해되어야 한다. 예를 들어, 목록에서 항목을 분리할 때, "또는" 또는 "및/또는"은 포괄적인 것으로 해석되어야 하는데, 즉 하나 이상의 번호 또는 하나 이상의 요소의 목록을 포함하는 것으로, 선택적으로 목록에 없는 추가 항목이 있다. "오직 하나" 또는 "정확히 하나"와 같이 청구항에서 사용될 때 "~로 이루어진(consisting of)"과 같이 반대로 명백하게 나타내어지지 않는다면, 숫자 또는 요소의 목록의 정확히 하나의 요소의 포함을 나타낼 것이다. 일반적으로, 사용된 "또는"이라는 용어는 "어느 하나", "하나", "단지 하나", 뙤는 "정확히 하나"와 같이 배타적인 용어로 선행될 경우에만 배타적 대안(즉, "하나 또는 다른 하나이지만 둘 다는 아님")을 나타내는 것으로 해석되어야 한다. 청구항에서 사용되는 경우 "본질적으로 이루어지는"은 특허법 분야에서 통상적으로 사용되는 의미를 갖는다.As used in the specification and claims, “or” should be understood to have the same meaning as “and/or” as defined above. For example, when separating items from a list, "or" or "and/or" should be construed as inclusive, i.e., including one or more numbers or lists of one or more elements, optionally including an unlisted addition. There is an item. When used in a claim, such as "only one" or "exactly one", it shall indicate the inclusion of exactly one element of a number or list of elements, unless expressly indicated to the contrary, such as "consisting of". In general, the term "or," as used, refers to an exclusive alternative (i.e., "one or the other one but not both"). "Consisting essentially of" when used in the claims has the meaning commonly used in the field of patent law.
명세서 및 청구범위에서 사용된 바와 같이, 하나 이상의 컴포넌트의 목록과 관련하여 "적어도 하나"라는 문구는 임의의 하나 이상의 요소의 목록의 요소로부터 선택된 적어도 하나의 요소를 의미하는 것으로 이해되어야 하지만, 요소 목록에 구체적으로 나열된 각 요소와 요소 목록 중 적어도 하나를 포함할 필요는 없으며 요소 목록의 요소 조합을 제외하지 않아야 한다. 이 정의는 또한 "적어도 하나"라는 문구가 언급된 요소 목록 내에서 구체적으로 식별되는 요소 이외에 요소가 선택적으로 존재할 수 있게 하며, 구체적으로 식별된 요소와 관련이 있거나 관계가 없다. 따라서, 비한정적인 예로서, "A 및 B 중 적어도 하나"(또는 동등하게, "A 또는 B 중 적어도 하나" 또는 동등하게 "A 및/또는 B 중 적어도 하나")는 하나 이상의 실시 양태에서 B를 함유하지 않는(및 선택적으로 B를 제외한 다른 원소를 포함하는) 하나 이상의 A를 임의로 포함하고; 다른 실시 양태에서 A는 존재하지 않는(및 선택적으로 A 이외의 원소를 포함하는) 하나 이상의 B, 선택적으로 하나 이상의 B를 포함하고; 또 다른 구현 예에서는 하나 이상의 A 및 임의로 하나 이상의 B를 포함하는 하나 이상의(및 선택적으로 다른 원소를 포함하는) 하나 이상의 A와 조합할 수 있는 등이다.As used in the specification and claims, the phrase “at least one” in reference to a list of one or more components should be understood to mean at least one element selected from the elements of the list of any one or more elements, but the list of elements It is not necessary to include at least one of each element and list of elements specifically listed in This definition also allows for elements to optionally be present other than those specifically identified within the list of elements in which the phrase "at least one" is referenced, with or without relation to the specifically identified element. Thus, by way of non-limiting example, “at least one of A and B” (or equivalently, “at least one of A or B” or equivalently “at least one of A and/or B”) means, in one or more embodiments, B optionally comprising at least one A that does not contain (and optionally includes elements other than B); In other embodiments A comprises at least one B absent (and optionally comprising elements other than A), optionally at least one B; In another embodiment, one or more A and optionally one or more B may be combined with one or more (and optionally other elements) one or more A's, and the like.
"포함하는(including)", "포괄하는(comprising)", "갖는(having)", "포함하는(containing)", "포함하는(involving)" 및 이들의 변형의 사용은 그 이후 열거된 항목 및 추가 항목을 포함하는 것을 의미한다.Uses of "including," "comprising," "having," "containing," "involving," and variations thereof, refer to the enumerated item thereafter. and additional items.
청구항 요소를 수식하기 위해 청구항에서 "제1", "제2", "제3 등"과 같은 서수 용어를 사용하는 것은 방법의 동작이 수행되는 다른 요소 또는 시간적 순서에 대해 하나의 청구항 요소의 임의의 우선 순위, 선행, 또는 순서를 암시하지 않는다. 서수 용어는 단지 특정 이름을 가진 하나의 청구항 요소를, 청구항 요소들을 구분하기 위해 동일한 이름을 가진 다른 요소(그러나 서수 용어 사용)와 구별하기 위한 단지 레이블로 사용된다.The use of ordinal terms such as “first,” “second,” “third, etc.” in a claim to modify a claim element means that the use of an ordinal term in one claim element relative to the temporal order or other element in which the operation of the method is performed. does not imply precedence, precedence, or order of An ordinal term is only used as a label to distinguish one claim element with a particular name from another element with the same name (but use the ordinal term) to distinguish claim elements.
균등물equivalent
따라서, 본 발명의 적어도 하나의 실시예의 여러 양태를 설명하였으므로, 다양한 변경, 수정 및 개선이 본 기술 분야의 통상의 기술자자에게 용이하게 생각날 것임을 이해해야 한다. 이러한 변경, 수정 및 개선은 본 발명의 일부로서 의도되며 본 발명의 사상 및 범위 내에 있는 것으로 의도된다. 따라서, 전술한 설명 및 도면은 단지 예일 뿐이다.Accordingly, having described various aspects of at least one embodiment of the present invention, it should be understood that various changes, modifications, and improvements will readily occur to those skilled in the art. Such changes, modifications and improvements are intended to be a part of this invention and are intended to be within the spirit and scope of the invention. Accordingly, the foregoing description and drawings are by way of example only.
Claims (131)
예측 모델링 절차를 수행하는 단계를 포함하고, 상기 예측 모델링 절차는,
(a) 하나 이상의 데이터 세트들을 포함하는 시계열 데이터를 얻는 단계로서, 각각의 데이터 세트는 복수의 관측치들을 포함하며, 각각의 관측치는 (1) 상기 관측치와 연관된 시간의 표시 및 (2) 하나 이상의 변수들의 각각의 값들을 포함하는, 상기 시계열 데이터를 얻는 단계;
(b) 상기 시계열 데이터의 시간 간격을 결정하는 단계;
(c) 상기 하나 이상의 변수들을 타겟들로서 식별하고, 제로(0) 이상의 다른 변수들을 피처들로서 식별하는 단계;
(d) 상기 시계열 데이터에 의해 나타내어지는 예측 문제와 연관된 예상 범위 및 스킵(skip) 범위를 결정하는 단계로서, 상기 예상 범위는 상기 타겟들의 값들이 예측될 기간의 지속 시간을 나타내고, 상기 스킵 범위는 상기 예상 범위에서의 가장 빠른(earliest) 예측과 연관된 시간과 상기 예상 범위에서의 예측들이 기초가 되는 최근(latest) 관측치와 연관된 시간 사이의 시간 래그(lag)를 나타내는, 상기 예상 범위 및 스킵 범위를 결정하는 단계;
(e) 상기 시계열 데이터로부터 트레이닝 데이터를 생성하는 단계로서, 상기 트레이닝 데이터는 상기 데이터 세트들 중 적어도 하나의 데이터 세트의 관측치들의 제1 서브세트를 포함하고, 상기 관측치들의 제1 서브세트는 상기 관측치들의 트레이닝-입력 및 트레이닝-출력 컬렉션들을 포함하고, 상기 트레이닝-입력 및 상기 트레이닝-출력 컬렉션들에서 상기 관측치들과 연관된 시간들은 트레이닝-입력 시간 범위 및 트레이닝-출력 시간 범위에 각각 대응하고, 상기 스킵 범위는 상기 트레이닝-입력 시간 범위의 끝을 상기 트레이닝-출력 시간 범위의 시작으로부터 분리하고, 상기 트레이닝-출력 시간 범위의 지속 시간은 적어도 상기 예상 범위만큼 긴, 상기 트레이닝 데이터를 생성하는 단계;
(f) 상기 시계열 데이터로부터 테스팅 데이터를 생성하는 단계로서, 상기 테스팅 데이터는 상기 데이터 세트들 중 적어도 하나의 데이터 세트의 관측치들의 제2 서브세트를 포함하고, 상기 관측치들의 제2 서브세트는 상기 관측치들의 테스트-입력 및 테스트-유효성 검증 컬렉션들을 포함하고, 상기 테스트-입력 및 상기 테스트-유효성 검증 컬렉션들에서 상기 관측치들과 연관된 시간들은 테스트-입력 시간 범위 및 테스트-유효성 검증 시간 범위에 각각 대응하고, 상기 스킵 범위는 상기 테스트-입력 시간 범위의 끝을 상기 테스트-유효성 검증 시간 범위의 시작으로부터 분리하고, 상기 테스트-유효성 검증 시간 범위의 지속 시간은 적어도 상기 예상 범위만큼 긴, 상기 테스팅 데이터를 생성하는 단계;
(g) 예측 모델을 상기 트레이닝 데이터에 맞춤화하는(fitting) 단계; 및
(h) 맞춤화된 모델을 상기 테스팅 데이터에 대해 테스트하는 단계를 포함하는, 예측 모델링 방법.A predictive modeling method comprising:
performing a predictive modeling procedure, the predictive modeling procedure comprising:
(a) obtaining time series data comprising one or more data sets, each data set comprising a plurality of observations, each observation comprising (1) an indication of a time associated with the observation and (2) one or more variables obtaining the time series data including respective values of ;
(b) determining a time interval of the time series data;
(c) identifying the one or more variables as targets and zero or more other variables as features;
(d) determining an expected range and a skip range associated with a prediction problem represented by the time series data, wherein the expected range represents a duration of time for which values of the targets are to be predicted, and wherein the skip range is the expected range and the skip range, representing the time lag between the time associated with the earliest prediction in the expected range and the time associated with the latest observation on which the predictions in the expected range are based. determining;
(e) generating training data from the time series data, the training data comprising a first subset of observations in at least one of the data sets, the first subset of observations comprising the observations training-input and training-output collections of generating the training data, wherein a range separates an end of the training-input time range from a beginning of the training-output time range, and a duration of the training-output time range is at least as long as the expected range;
(f) generating testing data from the time series data, the testing data comprising a second subset of observations in at least one of the data sets, the second subset of observations comprising the observations and test-input and test-validation collections of , the skip range separates the end of the test-input time range from the beginning of the test-validation time range, and the duration of the test-validation time range is at least as long as the expected range. to do;
(g) fitting a predictive model to the training data; and
(h) testing the customized model against the testing data.
상기 시계열 데이터의 시간 간격은 상기 데이터 세트들 중 적어도 하나의 데이터 세트에 포함된 관측치들의 적어도 한 서브세트와 연관된 시간들에 적어도 부분적으로 기초하여 결정되는, 예측 모델링 방법.According to claim 1,
wherein the time interval of the time series data is determined based at least in part on times associated with at least a subset of observations included in at least one of the data sets.
상기 시계열 데이터의 시간 간격을 결정하는 단계는:
상기 데이터 세트들의 각각에 대해, 상기 데이터 세트의 각각의 시간 간격을 결정하는 단계;
상기 데이터 세트들의 시간 간격들이 일정한 것을 결정하는 단계; 및
상기 시계열 데이터의 시간 간격을 상기 데이터 세트들의 시간 간격에 설정하는 단계를 포함하는, 예측 모델링 방법.3. The method of claim 2,
The step of determining the time interval of the time series data includes:
determining, for each of the data sets, a respective time interval of the data set;
determining that the time intervals of the data sets are constant; and
and setting a time interval of the time series data to a time interval of the data sets.
상기 데이터 세트의 시간 간격을 결정하는 단계는:
상기 데이터 세트에 포함된 연속 관측치들의 하나 이상의 쌍에 대해, 상기 연속 관측치들 사이의 각각의 시기간(time period)을 결정하는 단계;
연속 관측치들 쌍 사이의 시기간이 일정한 것을 결정하는 단계; 및
상기 데이터 세트의 시간 간격을 상기 연속 관측치들 쌍 사이의 시기간에 설정하는 단계를 포함하는, 예측 모델링 방법.4. The method of claim 3,
Determining the time interval of the data set comprises:
determining, for one or more pairs of successive observations included in the data set, a respective time period between the successive observations;
determining that the period of time between the pair of consecutive observations is constant; and
and setting a time interval of the data set to a time interval between the pair of consecutive observations.
상기 시계열 데이터의 시간 간격을 결정하는 단계는:
상기 데이터 세트들의 각각에 대해, 상기 데이터 세트의 각각의 시간 간격을 결정하는 단계; 및
상기 데이터 세트들 중 적어도 2개의 데이터 세트들의 시간 간격들이 상이한 것을 결정하는 단계를 포함하고,
상기 시계열 데이터의 시간 간격은, (1) 상기 데이터 세트들의 각각에 포함된 상기 관측치들의 각각의 부분들, 및 (2) 상기 데이터 세트들의 각각의 상기 각각의 시간 간격들 중, 적어도 하나에 적어도 부분적으로 기초하여 결정되는, 예측 모델링 방법.3. The method of claim 2,
The step of determining the time interval of the time series data includes:
determining, for each of the data sets, a respective time interval of the data set; and
determining that the time intervals of at least two of the data sets are different;
The time interval of the time series data is at least partially in at least one of (1) respective portions of the observations included in each of the data sets, and (2) each of the respective time intervals of the data sets. A predictive modeling method that is determined based on
상기 데이터 세트의 각각의 시간 간격을 결정하는 단계는:
상기 데이터 세트에 포함된 각각의 연속 관측치들 쌍 사이의 각각의 시기간을 결정하는 단계를 포함하고,
상기 연속 관측치들 쌍 사이의 시기간이 복수의 불균일 지속 시간들을 나타내는 경우, 상기 데이터 세트의 시간 간격은, (1) 상기 불균일 지속 시간들의 각각을 나타내는 상기 연속 관측치들 쌍의 각각의 부분들, 및 (2) 상기 시기간의 지속 시간들 중, 적어도 하나에 적어도 부분적으로 기초하여 결정되고,
상기 연속 관측치들 쌍 사이의 시기간이 일정한 지속 시간인 경우, 상기 데이터 세트의 시간 간격은 상기 시기간의 각각의 지속 시간인, 예측 모델링 방법.6. The method of claim 5,
Determining each time interval of the data set comprises:
determining each time period between each successive pair of observations included in the data set;
If the time period between the pair of consecutive observations represents a plurality of non-uniform durations, then the time interval of the data set is: (1) respective portions of the pair of consecutive observations representing each of the non-uniform durations, and ( 2) is determined based at least in part on at least one of the durations of the time period;
where the time period between the pair of consecutive observations is a constant duration, the time interval of the data set is the respective duration of the time period.
상기 시계열 데이터의 시간 간격은 상기 데이터 세트들의 각각의 시간 간격들 각각의 정수배인 최단 시간 간격인, 예측 모델링 방법.6. The method of claim 5,
wherein the time interval of the time series data is the shortest time interval that is an integer multiple of each of the respective time intervals of the data sets.
각각의 데이터 세트에 대해, 상기 데이터 세트의 시간 간격이 상기 시계열 데이터의 시간 간격보다 짧은 경우, 상기 데이터 세트의 관측치들을 다운-샘플링함으로써, 상기 데이터 세트의 시간 간격을 상기 시계열 데이터의 시간 간격으로 변환하는 단계를 더 포함하는, 예측 모델링 방법.8. The method of claim 7,
For each data set, if the time interval of the data set is shorter than the time interval of the time series data, convert the time interval of the data set to the time interval of the time series data by down-sampling the observations in the data set A predictive modeling method further comprising the step of:
상기 데이터 세트의 관측치들을 다운-샘플링하는 단계는, 상기 데이터 세트에 대응하는 시기간에서 상기 시계열 데이터의 시간 간격의 각각의 인스턴스에 대해:
상기 시계열 데이터의 시간 간격의 상기 각각의 인스턴스에 대응하는 시간들과 연관된 상기 데이터 세트의 모든 관측치들을 식별하는 단계;
집계 관측치를 생성하기 위해 식별된 관측치들을 집계하는 단계; 및
상기 데이터 세트의 식별된 관측치들을 상기 집계 관측치로 대체하는 단계를 포함하는, 예측 모델링 방법.9. The method of claim 8,
Down-sampling the observations in the data set comprises: for each instance of a time interval of the time series data in a time period corresponding to the data set:
identifying all observations in the data set associated with times corresponding to the respective instances of the time interval of the time series data;
aggregating the identified observations to produce an aggregate observation; and
replacing the identified observations in the data set with the aggregate observation.
상기 시계열 데이터의 시간 간격의 인스턴스에 대응하는 상기 식별된 관측치들의 수는, 상기 시계열 데이터의 시간 간격과 상기 데이터 세트의 시간 간격 사이의 비율과 동등한, 예측 모델링 방법.10. The method of claim 9,
and the number of identified observations corresponding to instances of the time interval of the time series data is equal to a ratio between the time interval of the time series data and the time interval of the data set.
상기 식별된 관측치들을 집계하는 단계는, 상기 집계 관측치의 각각의 변수의 값을, (1) 상기 식별된 관측치들의 가장 초기에 포함된 대응하는 변수값, (2) 상기 식별된 관측치들의 가장 최근에 포함된 대응하는 변수값, (3) 상기 식별된 관측치들에 포함된 대응하는 변수값들의 최대값, (4) 상기 식별된 관측치들에 포함된 대응하는 변수값들의 최소값, (5) 상기 식별된 관측치들에 포함된 대응하는 변수값들의 평균, 또는 (6) 상기 식별된 관측치들에 포함된 대응하는 변수값들의 함수의 값에 설정하는 단계를 포함하는, 예측 모델링 방법.10. The method of claim 9,
Aggregating the identified observations comprises: calculating the value of each variable of the aggregated observation, (1) the value of the corresponding variable included in the earliest of the identified observations, (2) the most recent of the identified observations. (3) the maximum value of the corresponding variable values included in the identified observations, (4) the minimum value of the corresponding variable values included in the identified observations, (5) the corresponding variable values included in the identified observations; and setting to the mean of the corresponding variable values included in the observations, or (6) the value of a function of the corresponding variable values included in the identified observations.
상기 시계열 데이터의 시간 간격은 상기 데이터 세트들의 시간 간격으로 이루어진 그룹으로부터 선택되는, 예측 모델링 방법.6. The method of claim 5,
wherein the time interval of the time series data is selected from the group consisting of time intervals of the data sets.
상기 데이터 세트들은 제1 시간 간격을 나타내는 제1 데이터 세트 및 상기 제1 시간 간격보다 큰 제2 시간 간격을 나타내는 제2 데이터 세트를 포함하고, 상기 제2 시간 간격은 상기 시계열 데이터의 시간 간격으로서 선택되고,
상기 방법은:
상기 제1 데이터 세트의 관측치들을 다운-샘플링함으로써, 상기 제1 데이터 세트의 시간 간격을 상기 시계열 데이터의 시간 간격으로 변환하는 단계를 더 포함하는, 예측 모델링 방법.13. The method of claim 12,
the data sets include a first data set representing a first time interval and a second data set representing a second time interval greater than the first time interval, wherein the second time interval is selected as the time interval of the time series data become,
The method is:
converting a time interval of the first data set to a time interval of the time series data by down-sampling the observations in the first data set.
상기 시계열 데이터의 시간 간격은 상기 데이터 세트의 시간 간격들의 각각과는 상이한, 예측 모델링 방법.6. The method of claim 5,
wherein the time interval of the time series data is different from each of the time intervals of the data set.
상기 시계열 데이터의 관측치들의 적어도 한 그룹은 제1 변수의 각각의 값들을 포함하고, 상기 방법은,
상기 예측 모델을 상기 트레이닝 데이터에 맞춤화하고, 상기 맞춤화된 모델을 상기 테스팅 데이터에 대해 테스트하기 전에:
상기 제1 변수의 값들이 시간 값들을 포함하는 것을 결정하는 단계;
상기 그룹 내의 각각의 관측치에 대해, 제2 변수의 각각의 값을 생성하는 단계로서, 상기 제2 변수의 상기 값은 상기 제1 변수의 상기 시간 값과 기준 시간 값 사이의 오프셋을 포함하는, 상기 제2 변수의 각각의 값을 생성하는 단계; 및
상기 제2 변수의 값들을 상기 그룹 내의 각각의 관측치들에 가산하는 단계를 더 포함하는, 예측 모델링 방법.According to claim 1,
At least one group of observations of the time series data includes respective values of a first variable, the method comprising:
Before fitting the predictive model to the training data and testing the customized model against the testing data:
determining that values of the first variable include time values;
for each observation in the group, generating a respective value of a second variable, wherein the value of the second variable comprises an offset between the time value of the first variable and a reference time value generating each value of the second variable; and
and adding the values of the second variable to respective observations in the group.
상기 그룹 내의 관측치들로부터 상기 제1 변수의 값들을 제거하는 단계를 더 포함하는, 예측 모델링 방법.16. The method of claim 15,
and removing values of the first variable from observations within the group.
상기 기준 시간은 이벤트의 날짜를 포함하는, 예측 모델링 방법.16. The method of claim 15,
wherein the reference time includes the date of the event.
상기 이벤트는 출생, 결혼, 학교 졸업, 고용주에 대한 고용의 개시, 또는 특정 직위에서의 업무의 시작을 포함하는, 예측 모델링 방법.18. The method of claim 17,
wherein the event comprises birth, marriage, graduation from school, commencement of employment with an employer, or commencement of work in a particular position.
상기 변수들은 제1 변수 및 제2 변수를 포함하고, 상기 방법은,
상기 제1 변수의 값의 변화들과 상기 제2 변수의 값의 상관된 변화들 사이의 시간 래그(lag)로, 상기 제1 변수 및 상기 제2 변수의 값들의 변화들이 상관되는 것을 결정하는 단계; 및
상기 제1 변수의 값의 변화들과 상기 제2 변수의 값의 상관된 변화들 사이의 시간 래그의 지속 시간을 나타내는 그래픽 컨텐츠를, 그래픽 사용자 인터페이스를 통해 표시하는 단계를 더 포함하는, 예측 모델링 방법.According to claim 1,
The variables include a first variable and a second variable, the method comprising:
determining that changes in values of the first variable and the second variable are correlated with a time lag between changes in the value of the first variable and the correlated changes in the value of the second variable; ; and
and displaying, via a graphical user interface, graphical content representing a duration of a time lag between changes in the value of the first variable and correlated changes in the value of the second variable. .
상기 예상 범위는 (1) 상기 시계열 데이터의 시간 간격, (2) 상기 시계열 데이터에 포함된 관측치들의 수, (3) 상기 시계열 데이터에 대응하는 시기간, 및 (4) 마이크로초, 밀리초, 초, 분, 시간, 일, 주, 월, 분기, 계절, 년, 십년, 백년 및 천년으로 이루어지는 그룹으로부터 선택되는 자연 시기간(time period) 중, 적어도 하나에 적어도 부분적으로 기초하여 결정되는, 예측 모델링 방법.According to claim 1,
The expected range includes (1) a time interval of the time series data, (2) the number of observations included in the time series data, (3) a period of time corresponding to the time series data, and (4) microseconds, milliseconds, seconds , minutes, hours, days, weeks, months, quarters, seasons, years, decades, hundred years and millennia, the predictive modeling is determined based at least in part on at least one of a natural time period selected from the group consisting of: Way.
상기 예상 범위는 상기 시계열 데이터의 시간 간격의 정수배인, 예측 모델링 방법.21. The method of claim 20,
The predicted range is an integer multiple of a time interval of the time series data.
상기 예상 범위의 연속 예측들과 연관된 시간들 사이의 기기간은 상기 시계열 데이터의 시간 간격과 동등한, 예측 모델링 방법.22. The method of claim 21,
and an interval between times associated with successive predictions of the expected range is equal to a time interval of the time series data.
상기 스킵 범위는, 상기 시계열 데이터의 수집에서의 대기 시간(latency), 상기 시계열 데이터의 통신에서의 대기 시간, 상기 시계열 데이터의 분석에서의 대기 시간, 상기 시계열 데이터의 분석의 통신에서의 대기 시간, 및 상기 시계열 데이터의 분석에 기초한 액션들의 구현에서의 대기 시간 중, 적어도 하나에 적어도 부분적으로 기초하여 결정되는, 예측 모델링 방법.According to claim 1,
The skip range includes a latency in the collection of the time series data, a waiting time in communication of the time series data, a waiting time in the analysis of the time series data, a waiting time in communication of the analysis of the time series data, and a waiting time in implementation of actions based on the analysis of the time series data.
상기 트레이닝-입력 시간 범위의 지속 시간을, 상기 시계열 데이터에 포함된 관측치들의 전체 수, 시간 경과에 따른 변수들 중 적어도 하나의 값들에서의 변동의 양, 상기 변수들의 적어도 하나의 값들에서의 주기적인 변동의 양, 복수의 시기간들에 대한 상기 변수들의 적어도 하나의 값들에서의 변동의 일관성, 및 상기 예상 범위의 지속 시간 중, 적어도 하나에 적어도 부분적으로 기초하여 결정하는 단계를 더 포함하는, 예측 모델링 방법.According to claim 1,
The duration of the training-input time range is defined as the total number of observations included in the time series data, the amount of variation in values of at least one of the variables over time, and the periodicity in at least one of the values of the variables. determining based, at least in part, on at least one of an amount of variation, a consistency of variation in at least one values of the variables over a plurality of time periods, and a duration of the expected range. Way.
상기 예측 모델을 트레이닝 데이터에 맞춤화하는 단계는, 상기 예측 모델을 상기 트레이닝-입력 시간 범위의 일부분에 대응하는 트레이닝 데이터의 서브세트에 맞춤화하는 단계를 포함하고,
상기 트레이닝-입력 시간 범위의 일부분은, 상기 트레이닝-입력 시간 범위의 시작 시간에 후속하는 시간에서 시작되고, 상기 트레이닝-입력 시간 범위의 끝 시간에서 종료되는, 예측 모델링 방법.25. The method of claim 24,
fitting the predictive model to training data comprises fitting the predictive model to a subset of training data corresponding to a portion of the training-input time range;
wherein the portion of the training-input time range begins at a time subsequent to a start time of the training-input time range and ends at an end time of the training-input time range.
상기 트레이닝-입력 시간 범위의 일부분의 지속 시간은, 상기 예상 범위의 지속 시간의 정수배인, 예측 모델링 방법.26. The method of claim 25,
wherein the duration of the portion of the training-input time range is an integer multiple of the duration of the expected range.
상기 예측 모델을 트레이닝 데이터에 맞춤화하기 전에 상기 트레이닝 데이터를 다운-샘플링하는 단계를 더 포함하는, 예측 모델링 방법.According to claim 1,
and down-sampling the training data prior to fitting the predictive model to the training data.
상기 트레이닝 데이터를 다운-샘플링하는 단계는:
상기 트레이닝 데이터로부터, 상기 데이터 세트들의 적어도 하나로부터 획득된 모든 관측치들을 제거하는 단계를 포함하는, 예측 모델링 방법.28. The method of claim 27,
Down-sampling the training data comprises:
removing, from the training data, all observations obtained from at least one of the data sets.
상기 트레이닝 데이터를 다운-샘플링하는 단계는:
상기 트레이닝 데이터의 다운-샘플링된 시간 간격을 상기 시계열 데이터의 시간 간격의 정수배로 설정하는 단계; 및
상기 트레이닝 데이터의 다운-샘플링된 시간 간격의 각각의 인스턴스에 대해:
상기 트레이닝 데이터의 상기 다운-샘플링된 시간 간격의 상기 각각의 인스턴스에 대응하는 시간들과 연관된 상기 트레이닝 데이터의 모든 관측치들을 식별하는 단계,
집계 관측치를 집계하기 위해 상기 식별된 관측치들을 집계하는 단계, 및
상기 트레이닝 데이터의 상기 식별된 관측치들을 상기 집계 관측치로 대체하는 단계를 포함하는, 예측 모델링 방법.28. The method of claim 27,
Down-sampling the training data comprises:
setting the down-sampled time interval of the training data to an integer multiple of the time interval of the time series data; and
For each instance of the down-sampled time interval of the training data:
identifying all observations in the training data associated with times corresponding to the respective instances of the down-sampled time interval of the training data;
aggregating the identified observations to aggregate an aggregate observation; and
replacing the identified observations in the training data with the aggregate observation.
상기 맞춤화된 모델을 테스팅 데이터에 대해 테스트하기 전에 상기 테스팅 데이터를 다운-샘플링하는 단계를 더 포함하는, 예측 모델링 방법.According to claim 1,
and down-sampling the testing data prior to testing the customized model against the testing data.
상기 예측 모델의 상호 유효성 검증(cross-validation)을 수행하는 단계를 더 포함하는, 예측 모델링 방법.According to claim 1,
The predictive modeling method further comprising the step of performing cross-validation of the predictive model.
상기 트레이닝 데이터는 제1 트레이닝 데이터이고, 상기 테스팅 데이터는 제1 테스팅 데이터이고, 상기 맞춤화된 모델은 제1 맞춤화된 모델이고, 상기 예측 모델의 상호 유효성 검증을 수행하는 단계는:
(i) 상기 시계열 데이터로부터 제2 트레이닝 데이터 및 제2 테스팅 데이터를 생성하는 단계로서, 상기 제2 트레이닝 데이터는 상기 데이터 세트들 중 적어도 하나의 데이터 세트의 관측치들의 제3 서브세트를 포함하고, 상기 제2 테스팅 데이터는 상기 데이터 세트들 중 적어도 하나의 데이터 세트의 관측치들의 제4 서브세트를 포함하는, 상기 제2 트레이닝 데이터 및 제2 테스팅 데이터를 생성하는 단계;
(j) 제2 맞춤화된 모델을 얻기 위해 상기 예측 모델을 상기 제2 트레이닝 데이터에 맞춤화하는 단계; 및
(k) 상기 제2 맞춤화된 모델을 상기 제2 테스팅 데이터에 대해 테스트하는 단계를 포함하는, 예측 모델링 방법.32. The method of claim 31,
wherein the training data is first training data, the testing data is first testing data, the customized model is a first customized model, and performing mutual validation of the predictive model includes:
(i) generating second training data and second testing data from the time series data, the second training data comprising a third subset of observations in at least one of the data sets; generating the second training data and second testing data, wherein the second testing data comprises a fourth subset of observations in at least one of the data sets;
(j) fitting the predictive model to the second training data to obtain a second customized model; and
(k) testing the second customized model against the second testing data.
상기 관측치들의 제1 서브세트는 트레이닝 시간들의 제1 범위를 커버하는 슬라이딩 트레이닝 윈도우에 대응하고, 상기 제1 서브세트에 포함된 각각의 관측치는 트레이닝 시간들의 상기 제1 범위 내의 시간과 연관되고, 관측치들의 상기 제3 서브세트는 트레이닝 시간들의 제2 범위를 커버하는 슬라이딩 트레이닝 윈도우에 대응하고, 상기 제3 서브세트에 포함되는 각각의 관측치는 트레이닝 시간들의 상기 제2 범위 내의 시간과 연관되고, 트레이닝 시간들의 상기 제1 범위의 가장 초기 시간은 트레이닝 시간들의 상기 제2 범위의 가장 초기 시간보다 더 이른, 예측 모델링 방법.33. The method of claim 32,
the first subset of observations corresponds to a sliding training window covering a first range of training times, each observation included in the first subset is associated with a time within the first range of training times, wherein the third subset of s corresponds to a sliding training window covering a second range of training times, each observation included in the third subset is associated with a time within the second range of training times; and the earliest time of the first range of s is earlier than the earliest time of the second range of training times.
상기 관측치들의 제2 서브세트는 테스팅 시간들의 제1 범위를 커버하는 슬라이딩 테스트 윈도우에 대응하고, 상기 제2 서브세트에 포함된 각각의 관측치는 테스팅 시간들의 상기 제1 범위 내의 시간과 연관되고, 관측치들의 상기 제4 서브세트는 테스팅 시간들의 제2 범위를 커버하는 슬라이딩 테스트 윈도우에 대응하고, 상기 제4 서브세트에 포함되는 각각의 관측치는 테스팅 시간들의 상기 제2 범위 내의 시간과 연관되고, 테스팅 시간들의 상기 제1 범위의 가장 초기 시간은 테스팅 시간들의 상기 제2 범위의 가장 초기 시간보다 더 이른, 예측 모델링 방법.34. The method of claim 33,
wherein the second subset of observations corresponds to a sliding test window covering a first range of testing times, each observation included in the second subset is associated with a time within the first range of testing times; wherein the fourth subset of s corresponds to a sliding test window covering a second range of testing times, each observation included in the fourth subset is associated with a time within the second range of testing times; and the earliest time of the first range of s is earlier than the earliest time of the second range of testing times.
상기 제1 테스팅 시간 범위는 상기 제2 트레이닝 시간 범위와 부분적으로 중첩되는, 예측 모델링 방법.35. The method of claim 34,
and the first testing time range partially overlaps the second training time range.
상기 제2 테스팅 시간 범위는 상기 제1 트레이닝 시간 범위의 임의의 부분과 중첩되지 않고, 상기 제2 트레이닝 시간 범위의 임의의 부분과 중첩되지 않는, 예측 모델링 방법.36. The method of claim 35,
and the second testing time range does not overlap any portion of the first training time range and does not overlap any portion of the second training time range.
상기 시계열 데이터를, 적어도 제1 분할 및 제2 분할을 포함하는 복수의 분할들로 분할하는 단계를 더 포함하는, 예측 모델링 방법.33. The method of claim 32,
and partitioning the time series data into a plurality of partitions including at least a first partition and a second partition.
상기 시계열 데이터를 복수의 분할들로 분할하는 단계는, 상기 데이터 세트들의 각각을 대응하는 분할에 할당하는 단계를 포함하는, 예측 모델링 방법.38. The method of claim 37,
and partitioning the time series data into a plurality of partitions comprises assigning each of the data sets to a corresponding partition.
상기 시계열 데이터를 상기 복수의 분할들로 분할하는 단계는 상기 시계열 데이터를 일시적으로 분할하는 단계를 포함하는, 예측 모델링 방법.38. The method of claim 37,
Partitioning the time-series data into the plurality of partitions includes temporally partitioning the time-series data.
상기 분할들 각각은 상기 시계열 데이터와 연관된 시기간의 각각의 일부분에 대응하고, 상기 시계열 데이터에 포함된 각각의 관측치는, 상기 관측치와 연관된 시간과 매칭되는 시기간의 일부분에 대응하는 분할에 할당되는, 예측 모델링 방법.40. The method of claim 39,
wherein each of the partitions corresponds to a respective portion of a period associated with the time series data, and each observation included in the time series data is assigned to a partition corresponding to a portion of a period of time that matches the time associated with the observation. modeling method.
상기 제1 트레이닝 데이터는 상기 시계열 데이터의 제1 분할에 포함된 관측치들의 서브세트를 포함하고;
상기 제1 테스팅 데이터는 상기 제1 분할을 제외한 상기 시계열 데이터의 분할 모두에 포함된 관측치들의 각각의 서브세트들을 포함하고;
상기 제2 트레이닝 데이터는 상기 시계열 데이터의 제2 분할에 포함된 관측치들의 서브세트를 포함하고; 및
상기 제2 테스팅 데이터는 상기 제2 분할을 제외한 상기 시계열 데이터의 분할 모두에 포함된 관측치들의 각각의 서브세트들을 포함하는, 예측 모델링 방법.38. The method of claim 37,
the first training data comprises a subset of observations included in the first partition of the time series data;
the first testing data includes respective subsets of observations included in all partitions of the time series data except for the first partition;
the second training data comprises a subset of observations included in the second partition of the time series data; and
and the second testing data includes respective subsets of observations included in all partitions of the time series data except for the second partition.
상기 시계열 데이터의 제1 분할은 상기 제1 트레이닝 데이터 및 상기 제2 트레이닝 데이터와 상기 제1 테스팅 데이터 및 상기 제2 테스팅 데이터를 포함하고, 상기 시계열 데이터의 제2 분할은 홀드아웃(holdout) 데이터를 포함하고, 상기 방법은:
상기 제1 맞춤화된 모델 및 상기 제2 맞춤화된 모델을 상기 홀드아웃 데이터에 대해 테스트하는 단계를 더 포함하는, 예측 모델링 방법.33. The method of claim 32,
The first division of the time series data includes the first training data and the second training data and the first testing data and the second testing data, and the second division of the time series data includes holdout data. comprising, the method comprising:
and testing the first customized model and the second customized model against the holdout data.
상기 홀드아웃 데이터에는 예측 모델이 맞춤화되지 않는, 예측 모델링 방법.43. The method of claim 42,
The predictive modeling method, wherein the predictive model is not customized to the holdout data.
상기 예측 모델의 네스팅된(nested) 상호 유효성 검증을 수행하는 단계를 더 포함하는, 예측 모델링 방법.According to claim 1,
and performing nested mutual validation of the predictive model.
상기 예측 모델의 네스팅된 상호 유효성 검증을 수행하는 단계는:
적어도 상기 시계열 데이터의 제1 분할 및 상기 시계열 데이터의 제2 분할을 포함하는 제1 복수의 분할들로 상기 시계열 데이터를 분할하는 단계; 및
적어도 상기 시계열 데이터의 상기 제1 분할의 제1 분할 및 상기 시계열 데이터의 상기 제1 분할의 제2 분할을 포함하는 상기 시계열 데이터의 상기 제1 분할의 복수의 분할들로 상기 시계열 데이터의 상기 제1 분할을 분할하는 단계를 포함하고,
상기 트레이닝 데이터는 상기 시계열 데이터의 상기 제1 분할의 상기 제1 분할을 포함하고, 상기 테스팅 데이터는 적어도 상기 시계열 데이터의 상기 제1 분할의 상기 제1 분할 이외의 상기 시계열 데이터의 상기 제1 분할의 복수의 분할들을 포함하는, 예측 모델링 방법.45. The method of claim 44,
The step of performing nested mutual validation of the predictive model includes:
dividing the time series data into a first plurality of divisions including at least a first division of the time series data and a second division of the time series data; and
the first division of the time series data into a plurality of divisions of the first division of the time series data comprising at least a first division of the first division of the time series data and a second division of the first division of the time series data partitioning the partition;
wherein the training data comprises the first partition of the first partition of the time series data, and the testing data includes at least the first partition of the time series data other than the first partition of the first partition of the time series data. A predictive modeling method comprising a plurality of partitions.
상기 트레이닝 데이터는 제1 트레이닝 데이터이고, 상기 테스팅 데이터는 제1 테스팅 데이터이고, 상기 맞춤화된 모델은 제1 맞춤화된 모델이고, 상기 예측 모델의 네스팅된 상호 유효성 검증을 수행하는 단계는:
(i) 상기 시계열 데이터의 상기 제1 분할로부터 제2 트레이닝 데이터 및 제2 테스팅 데이터를 생성하는 단계로서, 상기 제2 트레이닝 데이터는 상기 시계열 데이터의 상기 제1 분할의 상기 제2 분할을 포함하고, 상기 제2 테스팅 데이터는 적어도 상기 시계열 데이터의 상기 제1 분할의 상기 제2 분할 이외의 상기 데이터 세트의 제1 분할의 복수의 분할들을 포함하는, 상기 제2 트레이닝 데이터 및 제2 테스팅 데이터를 생성하는 단계;
(j) 제2 맞춤화된 모델을 얻기 위해 상기 예측 모델을 상기 제2 트레이닝 데이터에 맞춤화하는 단계; 및
(k) 상기 제2 맞춤화된 모델을 상기 제2 테스팅 데이터에 대해 테스트하는 단계를 더 포함하는, 예측 모델링 방법.46. The method of claim 45,
wherein the training data is first training data, the testing data is first testing data, the customized model is a first customized model, and performing nested mutual validation of the predictive model comprises:
(i) generating second training data and second testing data from the first partition of the time series data, the second training data comprising the second partition of the first partition of the time series data; wherein the second testing data comprises at least a plurality of partitions of the first partition of the data set other than the second partition of the first partition of the time series data. step;
(j) fitting the predictive model to the second training data to obtain a second customized model; and
(k) testing the second customized model against the second testing data.
상기 네스팅된 상호 유효성 검증을 수행하는 단계는:
상기 제1 맞춤화된 모델 및 상기 제2 맞춤화된 모델을 상기 시계열 데이터의 상기 제2 분할에 대해 테스트하는 단계; 및
상기 제1 맞춤화된 모델 및 상기 제2 맞춤화된 모델을 상기 시계열 데이터의 상기 제2 분할에 대해 테스트한 결과에 기초하여, 상기 제1 맞춤화된 모델과 상기 제2 맞춤화된 모델을 비교하는 단계를 더 포함하는, 예측 모델링 방법.47. The method of claim 46,
The step of performing the nested mutual validation includes:
testing the first customized model and the second customized model for the second partition of the time series data; and
comparing the first customized model and the second customized model based on a result of testing the first customized model and the second customized model on the second partition of the time series data; A predictive modeling method comprising:
상기 맞춤화된 모델에 대해, 상기 시계열 데이터의 하나 이상의 피처들의 모델-특유 예측 값들을 결정하는 단계를 더 포함하는, 예측 모델링 방법.According to claim 1,
determining, for the customized model, model-specific predictive values of one or more features of the time series data.
상기 피처들의 모델-특유 예측값들에 적어도 부분적으로 기초하여, 상기 시계열 데이터로부터 피처를 정리하는 것(pruning), 상기 시계열 데이터에서 2개 이상의 피처들로부터 도출된 피처를 생성하고 상기 도출된 피처를 상기 시계열 데이터에 가산하는 것, 상기 예측 모델을 다른 예측 모델과 혼합하는 것(blending), 및 상기 예측 문제에 대해 예측 모델링 절차들의 적절성을 평가하는 프로세스 도중에 자원들을 할당하는 것 중, 적어도 하나로 이루어지는 그룹으로부터 선택되는 적어도 하나의 액션을 수행하는 단계를 더 포함하는, 예측 모델링 방법.49. The method of claim 48,
pruning a feature from the time series data based at least in part on model-specific predicted values of the features, generating a feature derived from two or more features in the time series data, and comparing the derived feature to the from the group consisting of at least one of adding to time series data, blending the predictive model with other predictive models, and allocating resources during the process of evaluating the adequacy of predictive modeling procedures for the predictive problem. The predictive modeling method, further comprising: performing at least one selected action.
상기 예측 문제의 특성들 및 각각의 예측 모델링 절차들의 속성들 중, 적어도 하나에 적어도 부분적으로 기초하여, 상기 예측 문제에 대한 상기 복수의 예측 모델링 절차들의 적절성을 결정하는 단계;
상기 예측 문제에 대해 선택된 모델링 절차들의 결정된 적절성에 기초하여 상기 복수의 예측 모델링 절차들로부터 하나 이상의 예측 모델링 절차들을 선택하는 단계; 및
상기 하나 이상의 예측 모델링 절차들을 수행하는 단계를 더 포함하는, 예측 모델링 방법.According to claim 1,
determining, based, at least in part, on at least one of characteristics of the predictive problem and attributes of respective predictive modeling procedures, appropriateness of the plurality of predictive modeling procedures for the predictive problem;
selecting one or more predictive modeling procedures from the plurality of predictive modeling procedures based on the determined suitability of the selected modeling procedures for the predictive problem; and
and performing the one or more predictive modeling procedures.
상기 하나 이상의 예측 모델링 절차들을 수행하는 단계는:
명령어를 복수의 프로세싱 노드들에 송신하는 단계로서, 상기 명령어는 상기 선택된 모델링 절차들의 실행을 위해 상기 프로세싱 노드들의 자원들을 할당하는 자원 할당 스케줄을 포함하고, 상기 자원 할당 스케줄은 상기 예측 문제에 대해 상기 선택된 모델링 절차들의 상기 적절성에 적어도 부분적으로 기초하는, 상기 송신하는 단계;
상기 자원 할당 스케줄에 따라 상기 복수의 프로세싱 노드들에 의해 상기 선택된 모델링 절차들의 실행의 결과들을 수신하는 단계로서, 상기 결과들은, 상기 선택된 모델링 절차들에 의해 생성된 예측 모델들, 및 상기 예측 문제와 연관된 시계열 데이터에 대한 상기 생성된 모델들의 스코어들 중, 적어도 하나를 포함하는, 상기 수신하는 단계; 및
상기 생성된 모델들로부터, 상기 선택된 예측 모델의 스코어에 적어도 부분적으로 기초하여 상기 예측 문제에 대해 예측 모델을 선택하는 단계를 포함하는, 예측 모델링 방법.51. The method of claim 50,
Performing the one or more predictive modeling procedures comprises:
sending an instruction to a plurality of processing nodes, the instruction comprising a resource allocation schedule allocating resources of the processing nodes for execution of the selected modeling procedures, wherein the resource allocation schedule is configured for the prediction problem. based at least in part on the relevance of selected modeling procedures;
receiving results of execution of the selected modeling procedures by the plurality of processing nodes according to the resource allocation schedule, the results comprising: predictive models generated by the selected modeling procedures; and the prediction problem; the receiving comprising at least one of the scores of the generated models for associated time series data; and
selecting, from the generated models, a predictive model for the predictive problem based at least in part on a score of the selected predictive model.
상기 맞춤화된 모델을 다른 맞춤화된 모델과 혼합하여 혼합된 예측 모델을 생성하는 단계를 더 포함하는, 예측 모델링 방법.According to claim 1,
and mixing the customized model with other customized models to create a blended predictive model.
상기 맞춤화된 모델을 배치하는(deploying) 단계를 더 포함하는, 예측 모델링 방법.According to claim 1,
and deploying the customized model.
상기 시계열 데이터는 제1 시계열 데이터이고, 상기 맞춤화된 모델을 배치하는 단계는, 상기 맞춤화된 모델을 상기 예측 문제의 하나 이상의 인스턴스들을 나타내는 제2 시계열 데이터에 적용함으로써 하나 이상의 예측들을 생성하는 단계를 포함하고, 상기 제1 시계열 데이터는 상기 제2 시계열 데이터를 포함하지 않는, 예측 모델링 방법.54. The method of claim 53,
wherein the time series data is first time series data, and placing the customized model comprises generating one or more predictions by applying the customized model to second time series data representing one or more instances of the prediction problem. and wherein the first time series data does not include the second time series data.
상기 시계열 데이터는 제1 시계열 데이터이고, 상기 맞춤화된 모델을 배치하는 단계는, 제2 시계열 데이터에 적어도 부분적으로 기초하여 상기 맞춤화된 모델을 리프레시하는 단계를 포함하는, 예측 모델링 방법.54. The method of claim 53,
wherein the time series data is first time series data, and wherein deploying the customized model comprises refreshing the customized model based at least in part on second time series data.
상기 맞춤화된 모델은 제1 맞춤화된 모델이고, 상기 제2 시계열 데이터에 적어도 부분적으로 기초하여 상기 맞춤화된 모델을 리프레시하는 단계는:
제2 맞춤화된 모델을 생성하기 위해 상기 예측 모델링 절차를 상기 제2 시계열 데이터에 대해 수행하는 단계; 및
리프레시된 예측 모델을 생성하기 위해 상기 제1 맞춤화된 모델과 상기 제2 맞춤화된 모델을 혼합하는 단계를 포함하는, 예측 모델링 방법.56. The method of claim 55,
wherein the customized model is a first customized model, and refreshing the customized model based at least in part on the second time series data comprises:
performing the predictive modeling procedure on the second time series data to generate a second customized model; and
mixing the first customized model and the second customized model to generate a refreshed predictive model.
상기 제2 시계열 데이터에 적어도 부분적으로 기초하여 상기 맞춤화된 모델을 리프레시하는 단계는:
리프레시된 예측 모델을 생성하기 위해 상기 제1 시계열 데이터의 적어도 일부 및 상기 제2 시계열 데이터의 적어도 일부를 포함하는 제3 시계열 데이터에 대해 상기 예측 모델링 절차를 수행하는 단계를 포함하는, 예측 모델링 방법.56. The method of claim 55,
Refreshing the customized model based at least in part on the second time series data comprises:
and performing the predictive modeling procedure on third time series data including at least a portion of the first time series data and at least a portion of the second time series data to generate a refreshed predictive model.
상기 맞춤화된 모델은 하나 이상의 서버들에 배치되고, 다른 맞춤화된 모델들도 상기 하나 이상의 서버들에 배치되고, 상기 맞춤화된 모델 및 상기 다른 맞춤화된 모델에 대한 예측 요청은, (1) 예측을 생성하기 위해 상기 맞춤화된 모델들의 각각에 의해 사용된 시간 양의 추정, 및 (2) 상기 맞춤화된 모델들에 대한 예측 요청들이 수신되는 빈도의 추정 중, 적어도 하나에 적어도 부분적으로 기초하여 상기 서버들 중에 할당되는, 예측 모델링 방법.54. The method of claim 53,
The customized model is deployed on one or more servers, and other customized models are also deployed on the one or more servers, and a prediction request for the customized model and the other customized model generates a prediction: (1) among the servers based at least in part on at least one of an estimate of the amount of time used by each of the customized models to Assigned, predictive modeling method.
각각의 예측 요청이 각각의 스레드(thread)에 할당되고, 상기 각각의 예측 요청은 연관된 대기 시간-감도 값을 갖고, 특정 서버 상에서 실행되는 스레드들의 수는 상기 특정 서버 상에서 실행되는 상기 스레드들의 대기 시간-감도 값들에 적어도 부분적으로 기초하여 결정되는, 예측 모델링 방법.59. The method of claim 58,
Each prediction request is assigned to a respective thread, each prediction request has an associated latency-sensitivity value, and the number of threads executing on a particular server is the latency of the threads executing on the particular server. - a predictive modeling method, determined based at least in part on the sensitivity values.
상기 시계열 데이터에 포함된 2개 이상의 피처들의 상호 작용 강도를 나타내는 메트릭의 값을 결정하는 단계; 및
상기 메트릭의 값이 임계값을 초과하는 경우, 상기 2개 이상의 피처들의 값들에 기초하여 새로운 피처의 시계열 값들을 생성하고, 상기 새로운 피처를 상기 시계열 데이터에 가산하는 단계를 더 포함하는, 예측 모델링 방법.According to claim 1,
determining a value of a metric representing an interaction strength of two or more features included in the time series data; and
When the value of the metric exceeds a threshold, generating time-series values of a new feature based on the values of the two or more features, and adding the new feature to the time-series data. .
상기 시계열 데이터의 시간 분해능을 결정하는 단계를 더 포함하는, 예측 모델링 방법.According to claim 1,
Further comprising the step of determining the temporal resolution of the time series data, predictive modeling method.
상기 타겟들은 사용자 입력에 기초하여 식별되는, 예측 모델링 방법.According to claim 1,
wherein the targets are identified based on user input.
예측 모델링 절차를 인코딩하는 머신-실행 가능 모듈을 저장하도록 구성되는 메모리로서, 상기 예측 모델링 절차는 적어도 하나의 사전-프로세싱 작업 및 적어도 하나의 모델-맞춤 작업을 포함하는 복수의 작업을 포함하는, 상기 메모리; 및
상기 머신-실행 가능 모듈을 실행하도록 구성되는 적어도 하나의 프로세서를 포함하고,
상기 머신-실행 가능 모듈의 실행은 상기 장치로 하여금 상기 예측 모델링 절차를 수행하게 하며, 상기 예측 모델링 절차는 상기 사전-프로세싱 작업을 수행하는 것과 상기 모델-맞춤 작업을 수행하는 것을 포함하고,
상기 사전-프로세싱 작업을 수행하는 것은:
(a) 하나 이상의 데이터 세트들을 포함하는 시계열 데이터를 얻는 단계로서, 각각의 데이터 세트는 복수의 관측치들을 포함하며, 각각의 관측치는 (1) 상기 관측치와 연관된 시간의 표시 및 (2) 하나 이상의 변수들의 각각의 값들을 포함하는 것인 상기 시계열 데이터를 얻는 단계,
(b) 상기 시계열 데이터의 시간 간격을 결정하는 단계,
(c) 상기 하나 이상의 변수들을 타겟들로서 식별하고, 제로 이상의 다른 변수들을 피처들로서 식별하는 단계; 및
(d) 상기 시계열 데이터에 의해 나타내어지는 예측 문제와 연관된 예상 범위 및 스킵 범위를 결정하는 단계로서, 상기 예상 범위는 상기 타겟들의 값들이 예측될 기간의 지속 시간을 나타내고, 상기 스킵 범위는 상기 예상 범위에서의 가장 빠른 예측과 연관된 시간과 상기 예상 범위에서의 예측이 기초가 되는 최근 관측치와 연관된 시간 사이의 시간 래그를 나타내는 단계를 포함하고;
상기 모델-맞춤 작업을 수행하는 것은:
(e) 상기 시계열 데이터로부터 트레이닝 데이터를 생성하는 단계로서, 상기 트레이닝 데이터는 상기 데이터 세트들 중 적어도 하나의 데이터 세트의 관측치들의 제1 서브세트를 포함하고, 상기 관측치들의 제1 서브세트는 상기 관측치들의 트레이닝-입력 및 트레이닝-출력 컬렉션들을 포함하고, 상기 트레이닝-입력 및 상기 트레이닝-출력 컬렉션들에서 상기 관측치들과 연관된 시간들은 트레이닝-입력 시간 범위 및 트레이닝-출력 시간 범위에 각각 대응하고, 상기 스킵 범위는 상기 트레이닝-입력 시간 범위의 끝을 상기 트레이닝-출력 시간 범위의 시작으로부터 분리하고, 상기 트레이닝-출력 시간 범위의 지속 시간은 적어도 상기 예상 범위만큼 긴, 상기 트레이닝 데이터를 생성하는 단계,
(f) 상기 시계열 데이터로부터 테스팅 데이터를 생성하는 단계로서, 상기 테스팅 데이터는 상기 데이터 세트들 중 적어도 하나의 데이터 세트의 관측치들의 제2 서브세트를 포함하고, 상기 관측치들의 제2 서브세트는 상기 관측치들의 테스트-입력 및 테스트-유효성 검증 컬렉션들을 포함하고, 상기 테스트-입력 및 상기 테스트-유효성 검증 컬렉션들에서 상기 관측치들과 연관된 시간들은 테스트-입력 시간 범위 및 테스트-유효성 검증 시간 범위에 각각 대응하고, 상기 스킵 범위는 상기 테스트-입력 시간 범위의 끝을 상기 테스트-유효성 검증 시간 범위의 시작으로부터 분리하고, 상기 테스트-유효성 검증 시간 범위의 지속 시간은 적어도 상기 예상 범위만큼 긴, 상기 테스팅 데이터를 생성하는 단계,
(g) 예측 모델을 상기 트레이닝 데이터에 맞춤화하는 단계; 및
(h) 맞춤화된 모델을 상기 테스팅 데이터에 대해 테스트하는 단계를 포함하는, 예측 모델링 장치.In the predictive modeling apparatus,
A memory configured to store a machine-executable module encoding a predictive modeling procedure, the predictive modeling procedure comprising a plurality of operations including at least one pre-processing operation and at least one model-fitting operation Memory; and
at least one processor configured to execute the machine-executable module;
execution of the machine-executable module causes the apparatus to perform the predictive modeling procedure, the predictive modeling procedure comprising performing the pre-processing operation and performing the model-fitting operation;
Performing the pre-processing task is:
(a) obtaining time series data comprising one or more data sets, each data set comprising a plurality of observations, each observation comprising (1) an indication of a time associated with the observation and (2) one or more variables obtaining the time series data including the respective values of
(b) determining a time interval of the time series data;
(c) identifying the one or more variables as targets and zero or more other variables as features; and
(d) determining an expected range and a skip range associated with a prediction problem represented by the time series data, wherein the expected range indicates a duration of a period for which values of the targets are to be predicted, and wherein the skip range is the expected range indicating a time lag between a time associated with the earliest prediction in , and a time associated with the most recent observation upon which the prediction in the expected range is based;
Performing the model-fitting task is:
(e) generating training data from the time series data, the training data comprising a first subset of observations in at least one of the data sets, the first subset of observations comprising the observations training-input and training-output collections of generating the training data, wherein a range separates the end of the training-input time range from the beginning of the training-output time range, and wherein a duration of the training-output time range is at least as long as the expected range;
(f) generating testing data from the time series data, the testing data comprising a second subset of observations in at least one of the data sets, the second subset of observations comprising the observations and test-input and test-validation collections of , the skip range separates the end of the test-input time range from the beginning of the test-validation time range, and the duration of the test-validation time range is at least as long as the expected range. step to do,
(g) fitting a predictive model to the training data; and
(h) testing the customized model against the testing data.
상기 머신-실행 가능 모듈은 상기 작업들 사이의 의존성을 나타내는 지향 그래프(directed graph)를 포함하는, 예측 모델링 장치.64. The method of claim 63,
wherein the machine-executable module comprises a directed graph representing dependencies between the tasks.
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201662411526P | 2016-10-21 | 2016-10-21 | |
US62/411,526 | 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 |
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 KR20190108559A (en) | 2019-09-24 |
KR102448694B1 true KR102448694B1 (en) | 2022-09-28 |
Family
ID=60421839
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020197014598A KR102448694B1 (en) | 2016-10-21 | 2017-10-21 | Systems and related methods and devices for predictive data analysis |
Country Status (7)
Country | Link |
---|---|
EP (1) | EP3529755A1 (en) |
JP (2) | JP7107926B2 (en) |
KR (1) | KR102448694B1 (en) |
AU (1) | AU2017345796A1 (en) |
GB (2) | GB2571651B (en) |
SG (1) | SG10202104185UA (en) |
WO (1) | WO2018075995A1 (en) |
Families Citing this family (55)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3482261B1 (en) | 2016-07-07 | 2021-05-05 | 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 |
CN115314165A (en) | 2017-04-03 | 2022-11-08 | 瑞典爱立信有限公司 | HARQ processing for nodes with variable processing time |
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 |
WO2020227383A1 (en) | 2019-05-09 | 2020-11-12 | Aspen Technology, Inc. | 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 (en) * | 2019-07-10 | 2023-07-04 | 云南电网有限责任公司电力科学研究院 | Distribution network planning overall process evaluation method and device |
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 (en) * | 2019-08-05 | 2023-05-09 | 山东农业大学 | Crop yield prediction method based on machine learning |
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 (en) | 2019-08-29 | 2024-02-06 | 주식회사 엘지에너지솔루션 | Determining method and device of temperature estimation model, and battery management system which the temperature estimation model is applied to |
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 |
JP6966655B2 (en) * | 2019-09-30 | 2021-11-17 | 株式会社日立情報通信エンジニアリング | State prediction system |
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 |
KR102152957B1 (en) * | 2019-10-18 | 2020-09-07 | (의료)길의료재단 | The discrimination of panic disorder from other anxiety disorders based on heart rate variability and the apparatus thereof |
KR102204958B1 (en) * | 2019-10-28 | 2021-01-20 | 삼성에스디에스 주식회사 | Processing method for result of medical examination |
US11568367B2 (en) * | 2019-11-07 | 2023-01-31 | Zebel Group, Inc. | Automated parameterized modeling and scoring intelligence system |
CN112783890B (en) * | 2019-11-08 | 2024-05-07 | 珠海金山办公软件有限公司 | Method and device for generating data pivot table row |
KR102153834B1 (en) * | 2019-11-25 | 2020-09-09 | 티아이테크놀로지 주식회사 | Method and quantifying a data based on final value and estimate |
CN111008705B (en) * | 2019-12-06 | 2024-02-13 | 东软集团股份有限公司 | Searching method, device and equipment |
KR102235588B1 (en) * | 2019-12-09 | 2021-04-02 | 한국로봇융합연구원 | Apparatus and method of the inference classification performance evaluation for each layer of artificial intelligence model composed of multiple layers |
KR102328640B1 (en) * | 2019-12-17 | 2021-11-18 | 충북대학교 산학협력단 | Apparatus and method for processing education longitudinal study data |
CN113052582B (en) * | 2019-12-27 | 2024-03-22 | 中移动信息技术有限公司 | Method, device, equipment and computer storage medium for checking bill |
US20210217514A1 (en) * | 2020-01-13 | 2021-07-15 | Skygen USA, LLC | Systems, methods, and media for generating peer group driven operational recommendations |
CN113535829B (en) * | 2020-04-17 | 2022-04-29 | 阿里巴巴集团控股有限公司 | Training method and device of ranking model, electronic equipment and storage medium |
US11231967B2 (en) * | 2020-04-20 | 2022-01-25 | Stratum, Llc | Dynamically allocating and managing cloud workers |
KR102352036B1 (en) * | 2020-04-28 | 2022-01-18 | 이진행 | Device and method for variable selection using stochastic gradient descent |
JP6963062B1 (en) * | 2020-06-22 | 2021-11-05 | 株式会社Yamato | Information processing device and information processing method |
KR102386782B1 (en) * | 2020-08-24 | 2022-04-14 | 강원대학교산학협력단 | Arc Signal Detection Method Using Logistic Regression |
US11494285B1 (en) * | 2020-09-30 | 2022-11-08 | Amazon Technologies, Inc. | Static code analysis tool and configuration selection via codebase analysis |
CN114372569A (en) * | 2020-10-14 | 2022-04-19 | 新智数字科技有限公司 | Data measurement method, data measurement device, electronic equipment and computer readable medium |
CN112395336B (en) * | 2020-11-27 | 2024-03-19 | 北京卫星环境工程研究所 | Long-time sequence data management and visualization method |
CN112699113B (en) * | 2021-01-12 | 2022-08-05 | 上海交通大学 | Industrial manufacturing process operation monitoring system driven by time sequence data stream |
CN112765891B (en) * | 2021-01-27 | 2023-11-10 | 辽宁工程技术大学 | Prediction method for maximum value of disaster-causing factors of mine fire disaster |
KR102560263B1 (en) * | 2021-02-03 | 2023-07-28 | 주식회사 크로커스 | Power prediction device with mode decomposition and neural network |
US11630446B2 (en) | 2021-02-16 | 2023-04-18 | Aspentech Corporation | Reluctant first principles models |
KR102290494B1 (en) * | 2021-03-10 | 2021-08-17 | 주식회사 코루제약 | Method of preparing filler composition containing hyaluronic acid to exhibit effect suitable for maintaining volume and elasticity of skin |
CN113076339A (en) * | 2021-03-18 | 2021-07-06 | 北京沃东天骏信息技术有限公司 | Data caching method, device, equipment and storage medium |
US20230064692A1 (en) * | 2021-08-20 | 2023-03-02 | Mediatek Inc. | Network Space Search for Pareto-Efficient Spaces |
KR102414821B1 (en) * | 2021-11-02 | 2022-06-30 | 주식회사 에이젠글로벌 | Method for generating artificial intelligence model for financial service and apparatus for performing the method |
KR102413588B1 (en) * | 2021-11-15 | 2022-06-27 | 주식회사 테스트웍스 | Object recognition model recommendation method, system and computer program according to training data |
KR102635894B1 (en) * | 2021-12-29 | 2024-02-08 | 한국남동발전 주식회사 | Smart power generation fuel price prediction system and method thereof |
CN114677022B (en) * | 2022-03-31 | 2023-09-15 | 南通电力设计院有限公司 | Multi-element fusion energy distributed management method and system |
GB2622606A (en) * | 2022-09-22 | 2024-03-27 | Nokia Technologies Oy | Capability reporting for multi-model artificial intelligence/machine learning user equipment features |
KR102481814B1 (en) * | 2022-09-23 | 2022-12-28 | 전남대학교산학협력단 | Statistical learning framework for prediction with small sample size and imbalanced clinical dataset |
CN116582702B (en) * | 2023-07-11 | 2023-09-15 | 成都工业职业技术学院 | Network video play amount prediction method, system and medium based on big data |
Citations (4)
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 (en) | 2009-08-03 | 2011-02-17 | Sony Corp | Data processing apparatus, data processing method, and program |
JP2012198839A (en) | 2011-03-23 | 2012-10-18 | Denso It Laboratory Inc | Traffic volume prediction device, traffic volume prediction method and program |
KR101369261B1 (en) * | 2012-02-10 | 2014-03-06 | 서울대학교산학협력단 | Method for providing real-time route inference of users using smart terminal and system there of |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3214876B2 (en) * | 1991-09-19 | 2001-10-02 | 株式会社日立製作所 | Neural network configuration method and neural network construction support system |
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 |
WO2007033203A2 (en) * | 2005-09-13 | 2007-03-22 | Freescale Semiconductor Inc. | Multi-threaded processor architecture |
CN100547553C (en) * | 2007-12-07 | 2009-10-07 | 华中科技大学 | Simulating scenes automatic deployment method based on emulation graticule |
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 |
US8370280B1 (en) * | 2011-07-14 | 2013-02-05 | Google Inc. | Combining predictive models in predictive analytical modeling |
TWI451336B (en) * | 2011-12-20 | 2014-09-01 | Univ Nat Cheng Kung | Method for screening samples for building prediction model and computer program product thereof |
US8943252B2 (en) * | 2012-08-16 | 2015-01-27 | Microsoft Corporation | Latency sensitive software interrupt and thread scheduling |
CN104281492A (en) * | 2013-07-08 | 2015-01-14 | 无锡南理工科技发展有限公司 | Fair Hadoop task scheduling method in heterogeneous environment |
DE112015002433T5 (en) | 2014-05-23 | 2017-03-23 | Datarobot | Systems and techniques for predicative data analysis |
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 |
-
2017
- 2017-10-21 WO PCT/US2017/057763 patent/WO2018075995A1/en unknown
- 2017-10-21 AU AU2017345796A patent/AU2017345796A1/en not_active Abandoned
- 2017-10-21 SG SG10202104185UA patent/SG10202104185UA/en unknown
- 2017-10-21 GB GB1907147.1A patent/GB2571651B/en not_active Expired - Fee Related
- 2017-10-21 GB GB2211852.5A patent/GB2606674B/en active Active
- 2017-10-21 JP JP2019520991A patent/JP7107926B2/en active Active
- 2017-10-21 EP EP17801798.4A patent/EP3529755A1/en not_active Withdrawn
- 2017-10-21 KR KR1020197014598A patent/KR102448694B1/en active IP Right Grant
-
2020
- 2020-10-21 JP JP2020176551A patent/JP2021012734A/en active Pending
Patent Citations (4)
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 (en) | 2009-08-03 | 2011-02-17 | Sony Corp | Data processing apparatus, data processing method, and program |
JP2012198839A (en) | 2011-03-23 | 2012-10-18 | Denso It Laboratory Inc | Traffic volume prediction device, traffic volume prediction method and program |
KR101369261B1 (en) * | 2012-02-10 | 2014-03-06 | 서울대학교산학협력단 | Method for providing real-time route inference of users using smart terminal and system there of |
Also Published As
Publication number | Publication date |
---|---|
WO2018075995A1 (en) | 2018-04-26 |
JP2021012734A (en) | 2021-02-04 |
GB2606674B (en) | 2023-06-28 |
GB2571651A (en) | 2019-09-04 |
GB202211852D0 (en) | 2022-09-28 |
SG10202104185UA (en) | 2021-06-29 |
GB2571651B (en) | 2022-09-21 |
GB2606674A (en) | 2022-11-16 |
AU2017345796A1 (en) | 2019-05-23 |
KR20190108559A (en) | 2019-09-24 |
GB201907147D0 (en) | 2019-07-03 |
JP2019537125A (en) | 2019-12-19 |
JP7107926B2 (en) | 2022-07-27 |
EP3529755A1 (en) | 2019-08-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102448694B1 (en) | Systems and related methods and devices for predictive data analysis | |
US11922329B2 (en) | Systems for second-order predictive data analytics, and related methods and apparatus | |
US10496927B2 (en) | Systems for time-series predictive data analytics, and related methods and apparatus | |
US20210326782A1 (en) | Systems and techniques for predictive data analytics | |
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 | |
US20220199266A1 (en) | Systems and methods for using machine learning with epidemiological modeling | |
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 | |
Bevacqua et al. | A novel cooperative framework for Web 3.0 investigating recommendation and process mining issues |
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 |