KR20230078764A - 자동화된 피처 엔지니어링을 운영하는 시스템 및 방법 - Google Patents

자동화된 피처 엔지니어링을 운영하는 시스템 및 방법 Download PDF

Info

Publication number
KR20230078764A
KR20230078764A KR1020237014555A KR20237014555A KR20230078764A KR 20230078764 A KR20230078764 A KR 20230078764A KR 1020237014555 A KR1020237014555 A KR 1020237014555A KR 20237014555 A KR20237014555 A KR 20237014555A KR 20230078764 A KR20230078764 A KR 20230078764A
Authority
KR
South Korea
Prior art keywords
features
subset
dataset
primitives
machine learning
Prior art date
Application number
KR1020237014555A
Other languages
English (en)
Inventor
제임스 맥스 캔터
칼리안 쿠마르 베라마찬네니
Original Assignee
알테릭스 인코포레이티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 알테릭스 인코포레이티드 filed Critical 알테릭스 인코포레이티드
Publication of KR20230078764A publication Critical patent/KR20230078764A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2457Query processing with adaptation to user needs
    • G06F16/24578Query processing with adaptation to user needs using ranking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases
    • G06F16/285Clustering or classification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/906Clustering; Classification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/907Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • G06N20/20Ensemble learning

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Medical Informatics (AREA)
  • Computing Systems (AREA)
  • Evolutionary Computation (AREA)
  • Mathematical Physics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Artificial Intelligence (AREA)
  • Computational Linguistics (AREA)
  • Library & Information Science (AREA)
  • Image Analysis (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Testing And Monitoring For Control Systems (AREA)
  • Image Processing (AREA)

Abstract

피처 엔지니어링 툴은 머신 러닝 모델을 트레이닝하기 위한 피처들의 그룹을 자동으로 생성한다. 피처 엔지니어링 툴은 데이터세트에 대한 프리미티브들을 선택하고, 선택적 프리미티브들 및 데이터세트에 기초하여 복수의 피처들을 합성한다. 피처 엔지니어링 툴은 복수의 피처들의 유용성을 평가하기 위해 데이터세트의 상이한 부분에 복수의 피처들을 반복적으로 적용한다. 그 평가에 기초하여, 그것은 피처들의 그룹을 획득하기 위해 복수의 피처들 중 일부를 제거한다. 피처 엔지니어링 툴은 또한 그 그룹의 각 피처에 대한 중요도 인자를 결정한다. 머신 러닝 모델은 피처들 및 그들의 중요도 인자들에 기초하여 생성되고, 새로운 데이터에 기초하여 예측을 행하는 데 사용될 수 있다.

Description

자동화된 피처 엔지니어링을 운영하는 시스템 및 방법
배경
관련 출원들에 대한 상호참조
이 출원은 2020년 9월 30일자로 출원된 미국 정규 특허 출원 제 17/039,428 호에 대하여 우선권을 주장하며, 이는 그 전체가 원용에 의하여 통합된다.
기술 분야
설명된 실시양태들은 일반적으로 데이터 스트림들을 프로세싱하는 것에 관한 것이고, 특히 스트림들 내의 데이터에 대해 머신 러닝을 수행하기에 유용한 피처들을 엔지니어링하는 것에 관한 것이다.
관련 기술의 설명
피처 엔지니어링(feature engineering)은 기업들과 다른 기업들에 의해 통상적으로 분석되는 복잡한 데이터에서 예측적 피처들을 식별하고 추출하는 프로세스이다. 머신 러닝 모델들에 의한 예측의 정확성을 위해서는 피처들이 핵심이다. 따라서 데이터 분석 프로젝트가 성공적인지 여부를 결정하는 인자는 피처 엔지니어링인 경우가 많다. 피처 엔지니어링은 일반적으로 시간이 많이 걸리는 프로세스이다. 현재 이용가능한 피처 엔지니어링 툴들로, 이전 작업을 재사용하기 어려우므로 모든 데이터 분석 프로젝트에 대해 완전히 새로운 피처 엔지니어링 파이프라인이 구축되어야 한다. 또한, 현재 이용가능한 피처 엔지니어링 툴들은 양호한 예측 정확도를 달성하기 위해 일반적으로 대량의 데이터를 필요로 한다. 따라서, 현재의 피처 엔지니어링 툴들은 기업들의 데이터 프로세싱 요구들을 효율적으로 서빙하지 못한다.
요약
상기 및 다른 문제점들은 데이터 분석 시스템에서 데이터 블록들을 프로세싱하기 위한 방법, 컴퓨터-구현되는 데이터 분석 시스템, 및 컴퓨터-판독가능 메모리에 의해 해결된다. 방법의 일 실시양태는 데이터 소스로부터 데이터세트를 수신하는 단계를 포함한다. 방법은 수신된 데이터세트에 기초하여 프리미티브들(primitives)의 풀(pool)로부터 프리미티브들을 선택하는 단계를 더 포함한다. 선택된 프리미티브들의 각각은 하나 이상의 피처들을 합성하기 위해 데이터세트의 적어도 부분에 적용되도록 구성된다. 방법은 선택된 프리미티브들을 수신된 데이터세트에 적용함으로써 복수의 피처들을 합성하는 단계를 더 포함한다. 방법은 복수의 피처들로부터 일부 피처들을 제거하여 피처들의 서브세트를 획득하기 위해 복수의 피처들을 반복적으로 평가하는 단계를 더 포함한다. 각각의 반복(iteration)은 평가된 피처들에 데이터세트의 상이한 부분을 적용하고 피처들의 서브세트를 생성하기 위해 평가된 피처들의 유용성(usefulness)에 기초하여 평가된 피처들의 일부를 제거함으로써 복수의 피처들 중 적어도 일부 피처들의 유용성을 평가하는 것을 포함한다. 방법은 또한, 피처들의 서브세트의 각각의 피처에 대한 중요도 인자(importance factor)를 결정하는 단계를 포함한다. 방법은 또한 피처들의 서브세트 및 피처들의 서브세트의 각각의 피처의 중요도 인자에 기초하여 머신 러닝 모델(machine learning model)을 생성하는 단계를 포함한다. 머신 러닝 모델은 새로운 데이터에 기초하여 예측(prediction)을 행하는 데 사용되도록 구성된다.
컴퓨터 구현되는 데이터 분석 시스템의 일 실시양태는 컴퓨터 프로그램 명령들을 실행하기 위한 컴퓨터 프로세서를 포함한다. 그 시스템은 또한, 동작들을 수행하도록 컴퓨터 프로세서에 의해 실행가능한 컴퓨터 프로그램 명령들을 저장하는 비일시적 (non-transitory) 컴퓨터 판독가능 메모리를 포함한다. 그 동작들은 데이터 소스로부터 데이터세트를 수신하는 것을 포함한다. 그 동작들은 수신된 데이터세트에 기초하여 프리미티브들의 풀로부터 프리미티브들을 선택하는 것을 더 포함한다. 선택된 프리미티브들의 각각은 하나 이상의 피처들을 합성하기 위해 데이터세트의 적어도 부분에 적용되도록 구성된다. 그 동작들은 선택된 프리미티브들을 수신된 데이터세트에 적용함으로써 복수의 피처들을 합성하는 것을 더 포함한다. 그 동작들은 복수의 피처들로부터 일부 피처들을 제거하여 피처들의 서브세트를 획득하기 위해 복수의 피처들을 반복적으로 평가하는 것을 더 포함한다. 각각의 반복은 평가된 피처들에 데이터세트의 상이한 부분을 적용하고 피처들의 서브세트를 생성하기 위해 평가된 피처들의 유용성에 기초하여 평가된 피처들의 일부를 제거함으로써 복수의 피처들 중 적어도 일부 피처들의 유용성을 평가하는 것을 포함한다. 그 동작들은 또한, 피처들의 서브세트의 각각의 피처에 대한 중요도 인자를 결정하는 것을 포함한다. 그 동작들은 또한 피처들의 서브세트 및 피처들의 서브세트의 각각의 피처의 중요도 인자에 기초하여 머신 러닝 모델을 생성하는 것을 포함한다. 머신 러닝 모델은 새로운 데이터에 기초하여 예측을 행하는 데 사용되도록 구성된다.
비일시적 컴퓨터 판독가능 메모리의 일 실시양태는 실행가능 컴퓨터 프로그램 명령들을 저장한다. 그 명령들은 동작들을 수행하도록 실행가능하다. 그 동작들은 데이터 소스로부터 데이터세트를 수신하는 것을 포함한다. 그 동작들은 수신된 데이터세트에 기초하여 프리미티브들의 풀로부터 프리미티브들을 선택하는 것을 더 포함한다. 선택된 프리미티브들의 각각은 하나 이상의 피처들을 합성하기 위해 데이터세트의 적어도 부분에 적용되도록 구성된다. 그 동작들은 선택된 프리미티브들을 수신된 데이터세트에 적용함으로써 복수의 피처들을 합성하는 것을 더 포함한다. 그 동작들은 복수의 피처들로부터 일부 피처들을 제거하여 피처들의 서브세트를 획득하기 위해 복수의 피처들을 반복적으로 평가하는 것을 더 포함한다. 각각의 반복은 평가된 피처들에 데이터세트의 상이한 부분을 적용하고 피처들의 서브세트를 생성하기 위해 평가된 피처들의 유용성에 기초하여 평가된 피처들의 일부를 제거함으로써 복수의 피처들 중 적어도 일부 피처들의 유용성을 평가하는 것을 포함한다. 그 동작들은 또한, 피처들의 서브세트의 각각의 피처에 대한 중요도 인자를 결정하는 것을 포함한다. 그 동작들은 또한 피처들의 서브세트 및 피처들의 서브세트의 각각의 피처의 중요도 인자에 기초하여 머신 러닝 모델을 생성하는 것을 포함한다. 머신 러닝 모델은 새로운 데이터에 기초하여 예측을 행하는 데 사용되도록 구성된다.
도면들의 간단한 설명
도 1은 일 실시양태에 따른, 머신 러닝 서버를 포함하는 머신 러닝 환경을 나타내는 블록도이다.
도 2는 일 실시양태에 따른, 머신 러닝 서버의 피처 엔지니어링 애플리케이션을 보다 상세하게 나타내는 블록도이다.
도 3은 일 실시양태에 따른, 피처 엔지니어링 애플리케이션의 피처 생성 모듈의 보다 상세한 블록도이다.
도 4는 일 실시양태에 따른, 머신 러닝 모델 생성 방법을 나타낸 흐름도이다.
도 5는 일 실시양태에 따른, 머신 러닝 모델을 트레이닝(training)시키고, 예측을 수행하기 위해 트레이닝된 모델을 사용하는 방법을 예시하는 흐름도이다.
도 6은 일 실시양태에 따른, 도 1의 머신 러닝 서버로서 사용하기 위한 일반적인 컴퓨터 시스템의 기능도를 나타내는 하이-레벨 블록도이다.
도면들은 다양한 실시양태들을 오직 예시의 목적들을 위해 나타낸다. 당해 기술분야에서 통상의 지식을 가진 자 (이하, '통상의 기술자' 라 함) 는, 본 명세서에서 나타낸 구조들 및 방법들의 대안적인 실시양태들이 본 명세서에서 기술된 실시양태들의 원리들로부터 벗어남이 없이 채용될 수도 있음을 이하의 논의로부터 쉽게 인식할 것이다. 다양한 도면들에서 같은 참조 부호들 및 표기들은 같은 엘리먼트들을 나타낸다.
상세한 설명
도 1은 일 실시양태에 따른 머신 러닝 서버(110)를 포함하는 머신 러닝 환경(100)을 예시하는 블록도이다. 환경(100)은 네트워크(130)를 통해 머신 러닝 서버(110)에 접속된 다수의 데이터 소스들(120)을 더 포함한다. 예시된 환경(100)이 다수의 데이터 소스들(120)에 커플링된 하나의 머신 러닝 서버(110)만을 포함하지만, 실시양태들은 다수의 머신 러닝 서버들 및 단일 데이터 소스를 가질 수 있다.
데이터 소스들 (120) 은 데이터 분석 시스템 (110) 에 전자 데이터를 제공한다. 데이터 소스 (120) 는 하드 디스크 드라이브 (HDD) 또는 솔리드-스테이트 드라이브 (SSD) 와 같은 저장 디바이스, 다수의 저장 디바이스들에 대한 액세스를 관리 및 제공하는 컴퓨터, 저장 영역 네트워크 (SAN), 데이터베이스, 또는 클라우드 저장 시스템일 수도 있다. 데이터 소스 (120) 는 또한, 다른 소스로부터 데이터를 취출 (retrieve) 할 수 있는 컴퓨터 시스템일 수도 있다. 데이터 소스들(120)은 머신 러닝 서버(110)로부터 원격일 수도 있고, 네트워크(130)를 통해 데이터를 제공할 수도 있다. 또한, 일부 또는 모든 데이터 소스들 (120) 은 데이터 분석 시스템에 직접 커플링될 수도 있고, 네트워크 (130) 를 통해 데이트를 전달함이 없이 데이터를 제공할 수도 있다.
데이터 소스들(120)에 의해 제공되는 데이터는 데이터 레코드들(예를 들어, 행들)로 조직화될 수도 있다. 각각의 데이터 레코드는 하나 이상의 값들을 포함한다. 예를 들어, 데이터 소스 (120) 에 의해 제공된 데이터 레코드는 콤마-분리된 값들의 시리즈들을 포함할 수도 있다. 데이터는 데이터 분석 시스템 (110) 을 사용하는 기업에 관한 정보를 기술한다. 예를 들어, 데이터 소스(120)로부터의 데이터는 웹사이트들 상에서 액세스가능한 콘텐츠 및/또는 애플리케이션들과의 컴퓨터 기반 상호작용들(예를 들어, 클릭 추적 데이터)을 기술할 수 있다. 다른 예로서, 데이터 소스(120)로부터의 데이터는 온라인 및/또는 스토어들에서 고객 트랜잭션들을 기술할 수 있다. 기업은 제조, 판매, 금융 및 뱅킹과 같은 다양한 산업들 중 하나 이상에 있을 수 있다.
머신 러닝 서버(110)는 머신 러닝 모델들을 구축하고 데이터에 기초하여 예측을 행하기 위해 머신 러닝 모델들을 제공하는데 이용되는 컴퓨터 기반 시스템이다. 예시적인 예측들은 고객이 시간 기간 내에 트랜잭션을 행할지 여부, 트랜잭션이 사기적인지 여부, 사용자가 컴퓨터 기반 상호작용을 수행할 것인지 여부 등을 포함한다. 데이터는 네트워크(130)를 통해 다수의 데이터 소스들(120) 중 하나 이상으로부터 수집되거나, 모이거나, 또는 그 외에 액세스된다. 머신 러닝 서버(110)는 매우 다양한 데이터 소스들(120)로부터의 데이터를 액세스, 준비, 블렌딩 및 분석하는 데 이용되는 스케일러블 소프트웨어 툴들 및 하드웨어 리소스들을 구현할 수 있다. 머신 러닝 서버(110)는 본 명세서에 설명된 피처 엔지니어링 및 모델링 기법들을 포함하는 머신 러닝 기능들을 구현하는 데 사용되는 컴퓨팅 디바이스일 수 있다.
머신 러닝 서버(110)는 도 1에서 피처 엔지니어링 애플리케이션(140) 및 모델링 애플리케이션(150)으로서 예시된 하나 이상의 소프트웨어 애플리케이션들을 지원하도록 구성될 수 있다. 피처 엔지니어링 애플리케이션(140)은 자동화된 피처 엔지니어링을 수행하며, 여기서 데이터 소스(120)에 의해 제공된 데이터(예를 들어, 시간적 및 관계형 데이터세트들)로부터 예측자 변수들, 즉 피처들을 추출한다. 각각의 피처는 대응하는 머신 러닝 모델이 만들기 위해 사용될 예측(타겟 예측으로 지칭됨)과 잠재적으로 관련된 변수이다.
일 실시양태에서, 피처 엔지니어링 애플리케이션(140)은 데이터에 기초하여 프리미티브들의 풀로부터 프리미티브들을 선택한다. 프리미티브들의 풀은 피처 엔지니어링 애플리케이션(140)에 의해 유지된다. 프리미티브는 연관된 값들을 갖는 하나 이상의 새로운 피처들을 생성하기 위해 데이터세트의 원시(raw) 데이터에 적용될 수 있는 개별 계산을 정의한다. 선택된 프리미티브들은 상이한 종류의 데이터세트들에 걸쳐 적용될 수 있고, 입력 및 출력 데이터 타입들을 제한하기 때문에 새로운 계산들을 생성하기 위해 쌓일 수 있다. 피처 엔지니어링 애플리케이션(140)은 선택된 프리미티브들을 데이터 소스에 의해 제공된 데이터에 적용함으로써 피처들을 합성한다. 그 다음, 그것은 각각의 반복에서 피처들에 데이터의 상이한 부분을 적용하는 반복 프로세스를 통해 각각의 피처들의 중요도를 결정하기 위해 피처들을 평가한다. 피처 엔지니어링 애플리케이션(140)은 제거된 피처들보다 예측에 더 유용한 피처들의 서브세트를 획득하기 위해 각각의 반복에서 피처들의 일부를 제거한다.
서브세트 내의 각각의 피처에 대해, 피처 엔지니어링 애플리케이션(140)은, 예를 들어, 랜덤 포레스트(random forest)들을 사용함으로써 중요도 인자(importance factor)를 결정한다. 중요도 인자는 피처가 타겟 예측(target prediction)에 얼마나 중요한지/관련되는지를 나타낸다. 서브세트 내의 피처들 및 그들의 중요도 인자들은 머신 러닝 모델을 구축하기 위해 모델링 애플리케이션(150)에 전송될 수 있다.
피처 엔지니어링 애플리케이션(140)의 하나의 이점은 프리미티브들의 사용이 원시 데이터로부터 피처들이 추출되는 종래의 피처 엔지니어링 프로세스들보다 피처 엔지니어링 프로세스를 더 효율적으로 만든다는 것이다. 또한, 피처 엔지니어링 애플리케이션(140)은 프리미티브로부터 생성된 피처(들)의 평가 및 중요도 인자에 기초하여 프리미티브를 평가할 수 있다. 그것은 프리미티브들의 평가를 기술하는 메타데이터를 생성하고 그 메타데이터를 사용하여 상이한 데이터 또는 상이한 예측 문제에 대해 프리미티브를 선택할지 여부를 결정할 수 있다. 종래의 피처 엔지니어링 프로세스들은 피처들을 더 빠르고 더 잘 엔지니어링하기 위한 어떠한 지침이나 솔루션들도 제공하지 않고 많은 수의 피처들(예를 들어, 수백만 개)를 생성할 수 있을 것이다. 피처 엔지니어링 애플리케이션(140)의 다른 이점은 피처를 평가하기 위해 많은 양의 데이터를 필요로 하지 않는다는 것이다. 오히려, 그것은 피처들을 평가하기 위해 반복적 방법을 적용하며, 여기서 그것은 각각의 반복에서 데이터의 상이한 부분을 사용한다.
피처 엔지니어링 애플리케이션(140)은 사용자들이 피처 엔지니어링 프로세스에 기여할 수 있게 하는 그래픽 사용자 인터페이스(graphical user interface; GUI)를 제공할 수 있다. 예로서, 피처 엔지니어링 애플리케이션(140)과 연관된 GUI는 사용자들이 피처 엔지니어링 애플리케이션(140)에 의해 선택된 피처들을 편집할 수 있게 하는 피처 선택 툴을 제공한다. 이는 또한 사용자들이 피처들의 최대 허용 심도, 생성된 피처들의 최대 수, 포함될 데이터에 대한 날짜 범위(예를 들어, 컷오프 시간에 의해 특정됨) 등과 같은 피처들의 특성들을 고려하고 수정하기 위한 변수들을 특정하기 위한 옵션들을 제공할 수 있다. 피처 엔지니어링 애플리케이션(140)에 관한 보다 상세한 내용들이 도 2 내지 도 4 와 관련하여 설명된다.
모델링 애플리케이션(150)은 피처 엔지니어링 애플리케이션(140)으로부터 수신된 피처들 및 피처들의 중요도 인자들로 머신 러닝 모델을 트레이닝시킨다. 선형 지원 벡터 머신(선형 SVM), 다른 알고리즘들에 대한 부스팅(예를 들어, AdaBoost), 신경망, 로지스틱 회귀, 나이브 베이즈(na
Figure pct00001
ve Bayes), 메모리 기반 러닝, 랜덤 포레스트(random forests), 배그드 트리(bagged trees), 결정 트리(decision trees), 부스팅된 트리(boosted trees), 또는 부스팅된 스텀프(boosted stumps)와 같은 상이한 머신 러닝 기법들이 상이한 실시양태들에서 사용될 수도 있다.  생성된 머신 러닝 모델은, 새로운 데이터세트(예를 들어, 동일하거나 상이한 데이터 소스(120)로부터의 데이터세트)로부터 추출된 피처들에 적용될 때, 타겟 예측을 행한다. 새로운 데이터세트는 하나 이상의 피처들을 놓칠 수도 있으며, 이는 여전히 널(null) 값과 함께 포함될 수 있다. 일부 실시양태들에서, 모델링 애플리케이션(150)은 새로운 데이터세트의 피처들에서의 데이터의 양을 더 작고 더 대표적인 데이터 세트로 감소시키기 위해 차원 감소를 (예를 들어, 선형 판별 분석(linear discriminant analysis; LDA), 주 컴포넌트 분석(principle component analysis; PCA) 등을 통해) 적용한다.
일부 실시양태들에서, 모델링 애플리케이션(150)은 새로운 데이터세트에 배치하기 전에 예측들을 검증한다. 예를 들어, 모델링 애플리케이션(150)은 트레이닝된 모델을 검증 데이터세트에 적용하여 모델의 정확도를 정량화한다.  정확도 측정에 적용되는 일반적인 메트릭들은 다음과 같다: 정밀도(Precision) = TP / (TP + FP) 및 리콜(Recall) = TP / (TP + FN), 여기서 정밀도(precision) 는 모델이 예측한 총 결과(TP + FP 또는 거짓 양성) 중에서 정확하게 예측한 결과(TP 또는 참 양성)의 수이며, 리콜(recall)은 모델이 실제로 발생한 총 결과(TP + FN 또는 거짓 음성) 중에서 정확하게 예측한 결과(TP)의 수이다. F 스코어 (F-스코어 = 2 * PR / (P + R)) 는 정밀도와 리콜을 하나의 측정값으로 통합한다.  일 실시양태에서, 모델링 애플리케이션(150)은 머신 러닝 모델이 충분히 정확하다는 정확도 측정 표시 또는 다수의 트레이닝 라운드들이 발생한 등의 정지 조건이 발생 때까지 머신 러닝 모델을 반복적으로 재트레이닝한다. 
일부 실시양태들에서, 모델링 애플리케이션(150)은 특정 비즈니스 요구에 대해 머신 러닝 모델을 튜닝한다. 예를 들어, 모델링 애플리케이션(150)은 사기 금융 거래를 인식하기 위해 머신 러닝 모델을 구축하고, 예를 들어, 더 중요한 거래를 강조하는 방식으로 예측된 확률을 변환함으로써 기업의 요구를 반영하기 위해 더 중요한 사기 거래(예를 들어, 고가치 거래)를 강조하도록 모델을 튜닝한다. 모델링 애플리케이션(150)에 관한 더 자세한 내용은 도 5와 함께 설명된다.
네트워크(130)는 머신 러닝 서버(110)와 데이터 소스들(120) 사이의 통신 경로들을 나타낸다. 하나의 실시양태에서, 네트워크 (130) 는 인터넷이고, 표준 통신 기술들 및/또는 프로토콜을 이용한다. 네트워크 (130) 는 이더넷 802.11, WiMAX (worldwide interoperability for microwave access), 3G, 롱 텀 에볼루션 (LTE), DSL (digital subscriber line), ATM (asynchronous transfer mode), InfiniBand, PCI 익스프레스 어드밴스드 스위칭 (Express Advanced Switching) 등과 같은 기술들을 이용하는 링크들을 포함할 수 있다. 유사하게, 네트워크 (130) 상에서 사용되는 네트워킹 프로토콜들은 MPLS (multiprotocol label switching), TCP/IP (transmission control protocol/Internet protocol), UDP (User Datagram Protocol), HTTP (hypertext transport protocol), SMTP (simple mail transfer protocol), FTP (file transfer protocol) 등을 포함할 수 있다.
네트워크 (130) 를 통해 교환되는 데이터는 HTML (hypertext markup language), XML (extensible markup language) 등을 포함하는 기술들 및/또는 포맷들을 이용하여 표현될 수 있다. 또한, 링크들의 전부 또는 일부는 SSL (secure sockets layer), TLS (transport layer security), VPNs (virtual private networks), IPsec (Internet Protocol security) 등과 같은 종래의 암호화 기술들을 이용하여 암호화될 수 있다. 다른 실시양태에서, 엔티티들은 상술된 것들 대신에 또는 추가하여, 맞춤형 및/또는 전용 데이터 통신 기술들을 이용할 수 있다.
도 2는 일 실시양태에 따른 피처 엔지니어링 애플리케이션(200)을 예시하는 블록도이다. 피처 엔지니어링 애플리케이션(200)은 도 1의 피처 엔지니어링 애플리케이션(140)의 일 실시양태이다. 피처 엔지니어링 애플리케이션(200)은 프리미티브 선택 모듈(210), 피처 생성 모듈(220), 모델 생성 모듈(230), 및 데이터베이스(240)를 포함한다. 피처 엔지니어링 애플리케이션(200)은 데이터 소스(120)로부터 데이터세트를 수신하고 그 데이터세트에 기초하여 머신 러닝 모델을 생성한다. 통상의 기술자는, 다른 실시양태들은 본 명세서에서 기술된 것들과는 상이한 및/또는 다른 컴포넌트들을 가질 수 있고, 기능성들은 상이한 방식으로 컴포넌트들 사이에 분포될 수 있음을 인식할 것이다.
프리미티브 선택 모듈(210)은 피처 엔지니어링 애플리케이션(200)에 의해 유지되는 프리미티브들의 풀로부터 하나 이상의 프리미티브들을 선택한다. 프리미티브들의 풀은 수백 또는 수천 개의 프리미티브들과 같은 많은 수의 프리미티브들을 포함한다. 각각의 프리미티브는 데이터에 적용될 때 데이터에 대한 계산을 수행하고 연관된 값을 갖는 피처를 생성하는 알고리즘을 포함한다. 프리미티브는 하나 이상의 속성들과 연관된다. 프리미티브의 속성은 프리미티브의 디스크립션(예를 들어, 데이터에 적용될 때 프리미티브에 의해 수행되는 계산을 특정하는 자연어 디스크립션), 입력 타입(즉, 입력 데이터의 타입), 리턴 타입(즉, 출력 데이터의 타입), 프리미티브가 이전의 피처 엔지니어링 프로세스에서 얼마나 유용했는지를 나타내는 프리미티브의 메타데이터, 또는 다른 속성들일 수도 있다.
일부 실시양태들에서, 프리미티브들의 풀은 다수의 상이한 타입들의 프리미티브들을 포함한다. 프리미티브의 한가지 타입은 집성 프리미티브(aggregation primitive)이다. 집성 프리미티브는, 데이터세트에 적용될 때, 데이터세트에서 관련 데이터를 식별하고, 관련 데이터에 대한 결정을 수행하고, 결정을 요약 및/또는 집성하는 값을 생성한다. 예를 들어, 집성 프리미티브 "카운트"는 데이터세트의 관련 행들에서 값들을 식별하고, 값들 각각이 비-널 값인지 여부를 결정하고, 데이터세트의 행들에서 비-널 값들의 수의 카운트를 리턴(출력)한다. 다른 타입의 프리미티브는 변환 프리미티브(transformation primitive)이다. 변환 프리미티브는 데이터세트에 적용될 때 데이터세트에 있는 하나 이상의 기존 변수들로부터 새로운 변수를 생성한다. 예를 들어, 변환 프리미티브 "주말(weekend)"은 데이터세트의 타임스탬프를 평가하고 그 타임스탬프에 의해 표시된 날짜가 주말에 발생하는지 여부를 나타내는 이진 값(예를 들어, 참(true) 또는 거짓(false))을 리턴한다. 다른 예시적인 변환 프리미티브는 타임스탬프를 평가하고, 지정된 날짜까지의 일수(예를 들어, 특정 휴일까지의 일수)를 나타내는 카운트를 리턴한다.
프리미티브 선택 모듈(210)은 도 1의 데이터 소스(120) 중 하나와 같은 데이터 소스로부터 수신된 데이터세트에 기초하여 프리미티브들의 세트를 선택한다. 일부 실시양태들에서, 프리미티브 선택 모듈(210)은 프리미티브들을 선택하기 위해 스킴 뷰 접근법(skim view approach), 요약 뷰 접근법(summary view approach), 또는 양자 모두의 접근법들을 사용한다. 스킴 뷰 접근법에서, 프리미티브 선택 모듈(210)은 데이터세트의 하나 이상의 의미론적 표현(semantic representation)들을 식별한다. 데이터세트의 의미론적 표현은 데이터세트의 특성을 기술하며, 데이터세트에서의 데이터에 대한 계산을 수행하지 않고 획득될 수도 있다. 데이터세트의 의미론적 표현들의 예들은 데이터세트에서의 하나 이상의 특정 변수들(예를 들어, 열의 명칭)의 존재, 열들의 수, 행들의 수, 데이터세트의 입력 타입, 데이터세트의 다른 속성들, 및 이들의 일부 조합을 포함한다. 스킴 뷰 접근법을 사용하여 프리미티브를 선택하기 위해, 프리미티브 선택 모듈(210)은 데이터세트의 식별된 의미론적 표현이 풀에서의 프리미티브의 속성과 매칭하는지 여부를 결정한다. 매치가 있는 경우, 프리미티브 선택 모듈(210)은 프리미티브를 선택한다.
스킴 뷰 접근법은 규칙 기반 분석이다. 데이터세트의 식별된 의미론적 표현이 프리미티브의 속성과 매칭하는지 여부의 결정은 피처 엔지니어링 애플리케이션(200)에 의해 유지되는 규칙들에 기초한다. 규칙들은, 예를 들어, 데이터세트의 의미론적 표현들 및 프리미티브의 속성들에서의 키워드들의 매칭에 기초하여, 데이터세트의 어떤 의미론적 표현들이 프리미티브의 어떤 속성들과 매칭하는지를 특정한다. 일 예에서, 데이터세트의 의미론적 표현은 열 명칭 "생일"이고, 프리미티브 선택 모듈(210)은 입력 타입이 "생일"인 프리미티브를 선택하며, 이는 데이터세트의 의미론적 표현과 매칭한다. 다른 예에서, 데이터세트의 의미론적 표현은 열 명칭 "타임스탬프"이고, 프리미티브 선택 모듈(210)은 프리미티브가 타임스탬프를 표시하는 데이터와 함께 사용하기에 적절하다는 것을 표시하는 속성을 갖는 프리미티브를 선택한다.
요약 뷰 접근법에서, 프리미티브 선택 모듈(210)은 데이터세트로부터 대표 벡터(representative vector)를 생성한다. 대표 벡터는 데이터세트에서의 테이블들의 수, 테이블 당 열들의 수, 각각의 열의 평균 수, 및 각각의 행의 평균 수를 나타내는 데이터와 같은, 데이터세트를 기술하는 데이터를 인코딩한다. 따라서, 대표 벡터는 데이터세트의 핑거프린트로서 역할을 한다. 핑거프린트는 데이터세트의 콤팩트 표현이고, 해시 함수들, 라빈의 핑거프린팅 알고리즘, 또는 다른 타입들의 핑거프린트 함수들과 같은 하나 이상의 핑거프린트 함수들을 데이터세트에 적용함으로써 생성될 수도 있다.
프리미티브 선택 모듈(210)은 대표 벡터에 기초하여 데이터세트에 대한 프리미티브들을 선택한다. 예를 들어, 프리미티브 선택 모듈(210)은 데이터세트의 대표 벡터를 머신 런드 모델(machine learned model)에 입력한다. 머신 런드 모델은 데이터세트에 대한 프리미티브들을 출력한다. 머신 런드 모델은, 예를 들어, 프리미티브 선택 모듈(210)에 의해, 대표 벡터들에 기초하여 데이터세트들에 대한 프리미티브들을 선택하도록 트레이닝된다. 이는 복수의 트레이닝 데이터세트들의 복수의 대표 벡터들 및 복수의 트레이닝 데이터세트들 각각에 대한 프리미티브들의 세트를 포함하는 트레이닝 데이터에 기초하여 트레이닝될 수도 있다. 복수의 트레이닝 데이터세트들 각각에 대한 프리미티브들의 세트는 대응하는 트레이닝 데이터세트에 기초하여 예측을 행하는데 유용한 것으로 결정된 피처들을 생성하는 데 사용되었다. 일부 실시양태들에서, 머신 런드 모델은 연속적으로 트레이닝된다. 예를 들어, 프리미티브 선택 모듈(210)은 데이터세트의 대표 벡터 및 선택된 프리미티브들 중 적어도 일부에 기초하여 머신 런드 모델을 추가로 트레이닝시킬 수 있다.
프리미티브 선택 모듈(210)은 피처 엔지니어링 애플리케이션(200)에 의해 지원되는 GUI에서 사용자(예를 들어, 데이터 분석 엔지니어)에게 디스플레이하기 위해 선택된 프리미티브들을 제공할 수 있다. GUI는 또한 사용자가 프리미티브들의 세트에 다른 프리미티브들을 추가하는 것, 새로운 프리미티브들을 생성하는 것, 선택된 프리미티브들을 제거하는 것, 다른 타입들의 액션들, 또는 이들의 일부 조합과 같은 프리미티브들을 편집하는 것을 허용할 수도 있다.
피처 생성 모듈(220)은 피처들의 그룹 및 그룹에서의 각각의 피처에 대한 중요도 인자를 생성한다. 일부 실시양태들에서, 피처 생성 모듈(220)은 선택된 프리미티브들 및 데이터세트에 기초하여 복수의 피처들을 합성한다. 일부 실시양태들에서, 피처 생성 모듈(220)은 하나 이상의 피처들을 합성하기 위해 선택된 프리미티브들 각각을 데이터세트의 적어도 부분에 적용한다. 예를 들어, 피처 생성 모듈(220)은 데이터세트에서 "타임스탬프(timestamp)"라는 명칭의 열에 "주말(weekend)" 프리미티브를 적용하여 주말에 날짜가 발생하는지 여부를 나타내는 피처를 합성한다. 피처 생성 모듈(220)은 수백 또는 심지어 수백만 개의 피처와 같은 데이터세트에 대한 많은 수의 피처들을 합성할 수 있다.
피처 생성 모듈(220)은 피처들을 평가하고 그 평가에 기초하여 피처들 중 일부를 제거하여 피처들의 그룹을 획득한다. 일부 실시양태들에서, 피처 생성 모듈(220)은 반복적 프로세스를 통해 피처들을 평가한다. 반복의 각각의 라운드에서, 피처 생성 모듈(220)은 이전 반복들에 의해 제거되지 않은 피처들("나머지 피처들"이라고도 지칭됨)을 데이터세트의 상이한 부분에 적용하고 피처들 각각에 대한 유용성 스코어를 결정한다. 피처 생성 모듈(220)은 나머지 피처들에서 유용성 스코어들이 가장 낮은 일부 피처들을 제거한다. 일부 실시양태들에서, 피처 생성 모듈(220)은 랜덤 포레스트를 사용하여 피처들의 유용성 스코어들을 결정한다.
반복이 완료되고 피처들의 그룹이 획득된 후, 피처 생성 모듈(220)은 그룹에서의 각각의 피처에 대한 중요도 인자를 결정한다. 피처의 중요도 인자는 타겟 변수를 예측하기 위해 피처가 얼마나 중요한지를 나타낸다. 일부 실시양태들에서, 피처 생성 모듈(220)은 랜덤 포레스트, 예를 들어, 데이터세트의 적어도 부분에 기초하여 구성된 것을 사용함으로써 중요도 인자들을 결정한다. 일부 실시양태들에서, 피처 생성 모듈(220)은 피처 및 데이터세트의 상이한 부분을 머신 러닝 모델에 입력함으로써 피처의 중요도 스코어를 조정한다. 머신 러닝 모델은 피처의 제 2 중요도 스코어를 출력한다. 피처 생성 모듈(220)은 중요도 인자와 제 2 중요도 스코어를 비교하여 중요도 인자의 조정 여부를 결정한다. 예를 들어, 피처 생성 모듈(220)은 중요도 인자를 중요도 인자 및 제 2 중요도 인자의 평균으로 변경할 수 있다.
그 다음, 피처 생성 모듈(220)은 머신 러닝 모델을 트레이닝시키기 위해 피처들의 그룹들 및 그들의 중요도 인자를 모델링 애플리케이션, 예를 들어, 모델링 애플리케이션(150)에 전송한다.
일부 실시양태들에서, 피처 생성 모듈(220)은 증분적 접근법(incremental approach)에 기초하여 추가적인 피처들을 생성할 수도 있다. 예를 들어, 피처 생성 모듈(220)은 예를 들어, 피처들의 그룹들이 생성되고 그들의 중요도 인자들이 결정된 후에, 프리미티브 선택 모듈(210)을 통해 사용자에 의해 추가된 새로운 프리미티브들을 수신한다. 피처 생성 모듈(220)은 추가 피처들을 생성하고, 추가 피처들을 평가하고, 및/또는 생성 및 평가되었던 피처들의 그룹을 변경하지 않고 새로운 프리미티브들에 기초하여 추가 피처들의 중요도 인자들을 결정한다.
메타데이터 생성 모듈(230)은 그룹에서의 피처들을 합성하는데 사용되는 프리미티브들과 연관된 메타데이터를 생성한다. 프리미티브의 메타데이터는 프리미티브가 데이터세트에 대해 얼마나 유용한지를 나타낸다. 메타데이터 생성 모듈(230)은 프리미티브로부터 생성된 피처의 유용도 스코어 및/또는 중요도 인자에 기초하여 프리미티브의 메타데이터를 생성할 수도 있다. 메타데이터는 다른 데이터세트들 및/또는 상이한 예측들에 대한 프리미티브들을 선택하기 위해 후속 피처 엔지니어링 프로세스들에서 프리미티브 선택 모듈(210)에 의해 사용될 수 있다. 메타데이터 생성 모듈(230)은 그룹에서의 피처들을 합성하는데 사용된 프리미티브들의 대표 벡터들을 취출하고, 대표 벡터들 및 프리미티브들을 대표 벡터들에 기초하여 프리미티브들을 선택하는데 사용된 머신 런드 모델로 피드백하여 머신 런드 모델을 추가로 트레이닝할 수 있다.
일부 실시양태들에서, 메타데이터 생성 모듈(230)은 그룹에서의 피처들의 자연어 디스크립션을 생성한다. 피처의 자연어 디스크립션은, 피처에 포함된 알고리즘, 데이터에 피처를 적용한 결과들, 피처의 기능 등과 같은 피처의 속성들을 기술하는 정보를 포함한다.
데이터베이스(240)는 피처 엔지니어링 애플리케이션(200)에 의해 수신, 사용 및 생성된 데이터와 같은 피처 엔지니어링 애플리케이션(200)과 연관된 데이터를 저장한다. 예를 들어, 데이터베이스(240)는 데이터 소스로부터 수신된 데이터세트, 프리미티브들, 피처들, 피처들의 중요도 인자들, 피처들의 유용성 스코어들을 결정하는데 사용되는 랜덤 포레스트, 프리미티브들을 선택하고 피처들의 중요도 인자들을 결정하기 위한 머신 러닝 모델들, 메타데이터 생성 모듈(230)에 의해 생성된 메타데이터 등을 저장한다.
도 3은 일 실시양태에 따른 피처 생성 모듈(300)을 나타내는 블록도이다. 피처 생성 모듈(300)은 도 2의 피처 생성 모듈(220)의 일 실시양태이다. 그것은 머신 러닝 모델을 트레이닝하기 위한 데이터세트에 기초하여 피처들을 생성한다. 피처 생성 모듈(300)은 합성 모듈(310), 평가 모듈(320), 랭킹 모듈(330) 및 마무리(finalizing) 모듈(340)을 포함한다. 통상의 기술자는, 다른 실시양태들은 본 명세서에서 기술된 것들과는 상이한 및/또는 다른 컴포넌트들을 가질 수 있고, 기능성들은 상이한 방식으로 컴포넌트들 사이에 분포될 수 있음을 인식할 것이다.
합성 모듈(310)은 데이터세트 및 데이터세트에 대해 선택된 프리미티브들에 기초하여 복수의 피처들을 합성한다. 각각의 프리미티브에 대해, 합성 모듈(310)은 데이터세트의 부분, 예를 들어, 데이터세트의 하나 이상의 열들을 식별한다. 예를 들어, 입력 타입의 출생 날짜를 갖는 프리미티브에 대해, 합성 모듈(310)은 데이터세트에서 출생 열의 데이터를 식별한다. 합성 모듈(310)은 식별된 열에 프리미티브를 적용하여 열의 각각의 행에 대한 피처를 생성한다. 합성 모듈(310)은 수백 또는 심지어 수백만과 같은 데이터세트에 대한 다수의 피처들을 생성할 수 있다.
평가 모듈(320)은 합성된 피처들의 유용성 스코어들을 결정한다. 피처의 유용성 스코어는 피처가 데이터세트에 기초하여 이루어진 예측을 위해 얼마나 유용한지를 나타낸다. 일부 실시양태들에서, 평가 모듈(320)은 피처들의 유용성을 평가하기 위해 데이터세트의 상이한 부분을 피처들에 반복적으로 적용한다. 예를 들어, 제 1 반복에서, 평가 모듈(320)은 제 1 랜덤 포레스트를 구성하기 위해 데이터세트의 미리 결정된 백분율(예컨대, 25%)을 피처들에 적용한다. 제 1 랜덤 포레스트는 다수의 결정 트리들을 포함한다. 각각의 결정 트리는 복수의 노드들을 포함한다. 매 노드는 피처에 대응하고, 피처의 값에 기초하여 노드를 통해 트리를 이동하는 방법을 설명하는 조건을 포함한다(예를 들어, 날짜가 주말에 발생하면 하나의 분기를 취하고, 그렇지 않으면 다른 분기를 취함). 각 노드에 대한 피처는 정보 이득 또는 Gini 불순물 감소에 기초하여 결정된다. Gini 불순물의 정보 이득 또는 감소를 최대화하는 피처가 분할 피처로서 선택된다. 평가 모듈(320)은 결정 트리에 걸친 피처로 인한 Gini 불순물의 정보 획득 또는 감소에 기초하여 피처의 개별 유용성 스코어를 결정한다. 피처의 개별 유용성 스코어는 하나의 결정 트리에 대해 특정적이다. 랜덤 포레스트에서의 결정 트리들 각각에 대한 피처의 개별 유용성 스코어들을 결정한 후, 평가 모듈(320)은 피처의 개별 유용성 스코어들을 조합함으로써 피처의 제 1 유용성 스코어를 결정한다. 일 예에서, 피처의 제 1 유용성 스코어는 피처의 개별 유용성 스코어들의 평균이다. 평가 모듈(320)은 가장 낮은 제 1 유용성 스코어들을 갖는 피처들의 20%를 제거하여, 피처들의 80%가 남게 된다. 이러한 피처들은 제 1 나머지 피처들로 지칭된다.
제 2 반복에서, 평가 모듈(320)은 제 1 나머지 피처들을 데이터세트의 상이한 부분에 적용한다. 데이터세트의 다른 부분은 제 1 반복에서 사용된 데이터세트의 부분과 상이한 데이터세트의 25%일 수 있거나, 제 1 반복에서 사용된 데이터세트의 부분을 포함하는 데이터세트의 50%일 수 있다. 평가 모듈(320)은 데이터세트의 상이한 부분을 사용하여 제 2 랜덤 포레스트를 구성하고, 제 2 랜덤 포레스트를 사용하여 나머지 피처 각각에 대한 제 2 유용성 스코어를 결정한다. 평가 모듈(320)은 제 1 나머지 피처들의 20% 및 제 1 나머지 피처들의 나머지를 제거한다(즉, 제 1 나머지 피처들의 80%가 제 2 나머지 피처들을 형성한다).
유사하게, 각각의 후속 반복에서, 평가 모듈(320)은 이전 라운드로부터의 나머지 피처들을 데이터세트의 상이한 부분에 적용하고, 이전 라운드로부터의 나머지 피처들의 유용성 스코어들을 결정하고, 나머지 피처들의 일부를 제거하여 피처들의 더 작은 그룹을 획득한다.
평가 모듈(320)은 조건이 충족된다고 결정할 때까지 반복 프로세스를 계속할 수 있다. 조건은 임계 수의 피처들이 남아 있는 상태에서, 나머지 피처들의 최저 유용성 스코어가 임계치 이상인 것, 전체 데이터세트가 피처들에 적용된 것, 임계 수의 라운드들이 반복에서 완료된 것, 다른 조건들, 또는 이들의 일부 조합일 수 있다. 마지막 라운드의 나머지 피처들, 즉 평가 모듈(320)에 의해 제거되지 않은 피처들은 머신 러닝 모델을 트레이닝하기 위해 선택된다.
랭킹 모듈(330)은 선택된 피처들을 랭킹하고, 각각의 선택된 피처에 대한 중요도 스코어를 결정한다. 일부 실시양태들에서, 랭킹 모듈(330)은 선택된 피처들 및 데이터세트에 기초하여 랜덤 포레스트를 구성한다. 랭킹 모듈(330)은 랜덤 포레스트에서의 각각의 결정 트리에 기초하여 선택된 피처의 개별 랭킹 스코어를 결정하고, 개별 랭킹 스코어들의 평균을 선택된 피처의 랭킹 스코어로서 획득한다. 랭킹 모듈(330)은 그들의 랭킹 스코어들에 기초하여 선택된 피처들의 중요도 인자들을 결정한다. 예를 들어, 랭킹 모듈(330)은 그들의 랭킹 스코어들에 기초하여 선택된 피처들을 랭킹하고, 가장 높게 랭킹된 선택된 피처의 중요도 스코어가 1이라고 결정한다. 그 다음, 랭킹 모듈(330)은 가장 높게 랭킹된 선택된 피처의 랭킹 스코어에 대한 선택된 피처들의 나머지의 각각의 랭킹 스코어의 비율을 대응하는 선택된 피처의 중요도 인자로서 결정한다.
마무리 모듈(340)은 선택된 피처들을 마무리한다. 일부 실시양태들에서, 마무리 모듈(340)은 선택된 피처들 각각에 대한 제 2 랭킹 스코어를 결정하기 위해 선택된 피처들을 재랭킹한다. 피처의 제 2 랭킹 스코어가 그것의 초기 랭킹 스코어와 상이하다는 결정에 응답하여, 마무리 모듈(340)은 그룹으로부터 그 피처를 제거하고, 피처의 중요성에서의 불확실성을 나타내는 피처에 대한 메타데이터를 생성하고, 불일치 및 불확실성 등을 최종 사용자에게 경고할 수 있다.
도 4는 일 실시양태에 따른, 머신 러닝 모델을 생성하는 방법(400)을 나타낸 흐름도이다. 일부 실시양태들에서, 방법은 피처 엔지니어링 애플리케이션(140)에 의해 수행되지만, 방법의 동작들 중 일부 또는 전부는 다른 실시양태들에서 다른 엔티티들에 의해 수행될 수도 있다. 일부 실시양태들에서, 흐름도에서의 동작들은 상이한 순서들로 수행되고, 상이한 및/또는 추가적인 단계들을 포함한다.
피처 엔지니어링 애플리케이션(140)은 데이터 소스, 예를 들어 데이터 소스(120) 중 하나로부터 데이터세트를 수신한다(410).
피처 엔지니어링 애플리케이션(140)은 수신된 데이터세트에 기초하여 프리미티브들의 풀로부터 프리미티브들을 선택한다(420). 선택된 프리미티브들의 각각은 하나 이상의 피처들을 합성하기 위해 데이터세트의 적어도 부분에 적용되도록 구성된다. 일부 실시양태들에서, 피처 엔지니어링 애플리케이션(140)은 데이터세트의 의미론적 표현을 생성하고 데이터세트의 의미론적 표현과 매칭하는 속성들과 연관된 프리미티브들을 선택함으로써 프리미티브를 선택한다. 추가적으로 또는 대안적으로, 피처 엔지니어링 애플리케이션(140)은 데이터세트의 대표 벡터를 생성하고 대표 벡터를 머신 런드 모델에 입력한다. 머신 런드 모델은 벡터에 기초하여 선택된 프리미티브들을 출력한다.
피처 엔지니어링 애플리케이션(140)은 선택된 프리미티브들 및 수신된 데이터세트에 기초하여 복수의 피처들을 합성한다(430). 피처 엔지니어링 애플리케이션(140)은 선택된 프리미티브들 각각을 데이터세트의 관련 부분에 적용하여 피처들을 합성한다. 실례로, 각각의 선택된 프리미티브에 대해, 피처 엔지니어링 애플리케이션(140)은 데이터세트에서 하나 이상의 변수들을 식별하고 프리미티브를 변수에 적용하여 피처들을 생성한다.
피처 엔지니어링 애플리케이션(140)은 피처들의 서브세트를 획득하기 위해 복수의 피처들로부터 일부 피처들을 제거하기 위해 복수의 피처들을 반복적으로 평가한다(440). 각각의 반복에서, 피처 엔지니어링 애플리케이션(140)은 데이터세트의 상이한 부분을 평가된 피처들에 적용함으로써 복수의 피처들 중 적어도 일부 피처들의 유용성을 평가하고, 평가된 피처들의 유용성에 기초하여 평가된 피처들 중 일부를 제거한다.
피처 엔지니어링 애플리케이션(140)은 피처들의 서브세트의 각각의 피처에 대한 중요도 인자를 결정한다(450). 일부 실시양태들에서, 피처 엔지니어링 애플리케이션(140)은 피처들의 서브세트 및 피처들의 서브세트의 중요도 인자들을 결정하기 위해 데이터세트의 적어도 부분에 기초하여 랜덤 포레스트를 구성한다.
피처 엔지니어링 애플리케이션(140)은 피처들의 서브세트 및 피처들의 서브세트의 각각의 피처의 중요도 인자에 기초하여 머신 러닝 모델을 생성한다(460). 머신 러닝 모델은 새로운 데이터에 기초하여 예측을 행하는 데 사용되도록 구성된다.
도 5는 일 실시양태에 따른, 머신 러닝 모델을 트레이닝시키고, 예측을 수행하기 위해 트레이닝된 모델을 사용하는 방법(500)을 예시하는 흐름도이다. 일부 실시양태들에서, 방법은 피처 엔지니어링 애플리케이션(150)에 의해 수행되지만, 방법의 동작들 중 일부 또는 전부는 다른 실시양태들에서 다른 엔티티들에 의해 수행될 수도 있다. 일부 실시양태들에서, 흐름도에서의 동작들은 상이한 순서들로 수행되고, 상이한 및/또는 추가적인 단계들을 포함한다.
모델링 애플리케이션(150)은 피처들 및 피처들의 중요도 인자들에 기초하여 모델을 트레이닝시킨다(510). 일부 실시양태들에서, 피처들 및 중요도 인자들은 예를 들어, 전술된 방법(400)을 사용함으로써 피처 엔지니어링 애플리케이션(140)에 의해 생성된다. 모델링 애플리케이션(150)은 상이한 실시양태들에서 상이한 머신 러닝 기법들을 사용할 수도 있다.  예시적인 머신 러닝 기법들은 선형 지원 벡터 머신(선형 SVM), 다른 알고리즘들에 대한 부스팅(예를 들어, AdaBoost), 신경망, 로지스틱 회귀, 나이브 베이즈(na
Figure pct00002
ve Bayes), 메모리 기반 러닝, 랜덤 포레스트, 배그드 트리, 결정 트리, 부스팅된 트리, 부스팅된 스텀프 등과 같은 것을 포함한다.
모델링 애플리케이션(150)은 기업과 연관되는 데이터 소스(예를 들어, 데이터 소스(120))로부터 데이터세트를 수신한다(520). 기업은 제조, 판매, 금융 및 뱅킹과 같은 다양한 산업들 중 하나 이상에 있을 수 있다. 일부 실시양태들에서, 모델링 애플리케이션(150)은 특정 산업 필요에 대해 트레이닝된 모델을 튜닝한다. 예를 들어, 트레이닝된 모델은 사기 금융 거래들을 인식하는 것이고, 모델링 애플리케이션(150)은 예를 들어, 더 중요한 거래들을 강조하는 방식으로 예측된 확률들을 변환함으로써 기업의 요구들을 반영하기 위해 더 중요한 사기 거래들(예를 들어, 고가치 거래들)을 강조하도록 트레이닝된 모델을 튜닝한다.
모델링 애플리케이션(150)은 수신된 데이터세트로부터 피처들의 값들을 획득한다(530). 일부 실시양태들에서, 모델링 애플리케이션(150)은, 예를 들어, 피처가 데이터세트에 포함된 변수인 실시양태들에서, 데이터세트로부터 피처의 값들을 취출한다. 일부 실시양태들에서, 모델링 애플리케이션(150)은 피처를 합성하는데 사용되었던 프리미티브를 데이터세트에 적용함으로써 피처의 값들을 획득한다.
모델링 애플리케이션(150)은 피처들의 값들을 트레이닝된 모델에 입력한다(540). 트레이닝된 모델은 예측을 출력한다. 예측은 고객이 기간 내에 거래를 할 것인지 여부, 거래가 사기적인지 여부, 사용자가 컴퓨터 기반 상호작용을 수행할 것인지 등의 예측일 수도 있다.
도 6은 일 실시양태에 따른, 도 1의 머신 러닝 서버(110)로서 사용하기 위한 일반적인 컴퓨터 시스템(600)의 기능도를 나타내는 하이-레벨 블록도이다.
예시된 컴퓨터 시스템은 칩셋 (604) 에 커플링된 적어도 하나의 프로세서 (602) 를 포함한다. 프로세서 (602) 는 동일한 다이 상에 다수의 프로세서 코어들을 포함할 수 있다. 칩셋 (604) 은 메모리 제어기 허브 (620) 및 입력/출력 (I/O) 제어기 허브 (622) 를 포함한다. 메모리 (606) 및 그래픽 어댑터 (612) 는 메모리 제어기 허브 (620) 에 커플링되고, 디스플레이 (618) 는 그래픽 어댑터 (612) 에 커플링된다. 저장 디바이스 (608), 키보드 (610), 포인팅 디바이스 (614), 및 네트워크 어댑터 (616) 가 I/O 제어기 허브 (622) 에 커플링될 수도 있다. 일부 다른 실시양태들에서, 컴퓨터 시스템 (600) 은 추가적인, 더 적은, 또는 상이한 컴포넌트들을 가질 수도 있고, 그 컴포넌트들은 상이하게 커플링될 수도 있다. 예를 들어, 컴퓨터 시스템 (600) 의 실시양태들은 디스플레이들 및/또는 키보드들이 없을 수도 있다. 또한, 컴퓨터 시스템 (600) 은 일부 실시양태들에서 랙-마운티드 블레이드 서버로서 또는 쿨라우드 서버 인스턴스로서 인스턴스화될 수도 있다.
메모리 (606) 는 프로세서 (602) 에 의해 사용되는 명령들 및 데이터를 유지한다. 일부 실시양태들에서, 메모리 (606) 는 랜덤-액세스 메모리이다. 저장 디바이스 (608) 는 비일시적 컴퓨터 판독가능 저장 매체이다. 저장 디바이스 (608) 는 HDD, SDD, 또는 다른 타입들의 비일시적 컴퓨터 판독가능 저장 매체일 수 있다. 머신 러닝 서버(110)에 의해 처리 및 분석된 데이터는 메모리(606) 및/또는 저장 디바이스(608)에 저장될 수 있다.
포인팅 디바이스 (614) 는 마우스, 트랙 볼, 또는 다른 타입들의 포인팅 디바이스일 수도 있고, 데이터를 컴퓨터 시스템 (600) 내로 입력하기 위해 키보드 (610) 와 조합하여 사용된다. 그래픽 어댑터 (612) 는 디스플레이 (618) 상에 이미지들 및 다른 정보를 디스플레이한다. 일부 실시양태들에서, 디스플레이 (618) 는 사용자 입력 및 선택들을 수신하기 위한 터치 스크린 능력을 포함한다. 네트워크 어댑터 (616) 는 컴퓨터 시스템 (600) 을 네트워크 (160) 에 커플링한다.
컴퓨터 시스템 (600) 은 본원에 설명된 기능성을 제공하기 위해 컴퓨터 모듈들을 실행하도록 적응된다. 본 명세서에서 사용된 바와 같이, "모듈 (module)" 이라는 용어는 특정 기능성을 제공하기 위한 컴퓨터 프로그램 명령 및 다른 로직 (logic) 을 지칭한다. 모듈은 하드웨어, 펌웨어, 및/또는 소프트웨어에서 구현될 수 있다. 모듈은 하나 이상의 프로세스들을 포함할 수 있고, 및/또는, 프로세스의 오직 부분만에 의해 제공될 수 있다. 모듈은 통상적으로 저장 디바이스 (608) 상에 저장되고, 메모리 (606) 내로 로딩되며, 프로세서 (602) 에 의해 실행된다.
컴포넌트들의 특별한 명명, 용어들의 대문자, 속성들, 데이터 구조들, 또는 임의의 다른 프로그래밍 또는 구조적 양태는 필수적이거나 중요하지 않으며, 설명된 실시양태들을 구현하는 메커니즘은 상이한 명칭들, 포맷들, 또는 프로토콜들을 가질 수도 있다. 추가로, 시스템들은 설명된 바와 같이 하드웨어와 소프트웨어의 조합을 통해서, 또는 완전히 하드웨어 엘리먼트들에서 구현될 수도 있다. 또한, 본원에서 설명된 다양한 시스템 컴포넌트들 사이의 기능성의 특정 분할은 단지 예시적인 것이고, 필수적인 것은 아니며; 단일 시스템 컴포넌트에 의해 수행되는 기능들은 대신에 다수의 컴포넌트들에 의해 수행될 수도 있고, 다수의 컴포넌트들에 의해 수행되는 기능들은 대신에 단일 컴포넌트에 의해 수행될 수도 있다.
상기 설명의 일부 부분들은 정보에 대한 동작들의 알고리즘들 및 심볼 표현들의 관점에서 피처들을 제시한다. 이들 알고리즘적 설명들 및 표현들은 그것들의 작업의 본질을 다른 통상의 기술자들에게 가장 효과적으로 전달하기 위해 데이터 프로세싱 기술분야에서 통상의 지식을 가진 자에 의해 사용되는 수단들이다. 이들 동작들은, 기능적으로 또는 논리적으로 설명되지만, 컴퓨터 프로그램들에 의해 구현되는 것으로 이해된다. 또한, 동작들의 이들 배열들을 일반성의 손실 없이 모듈들로서 또는 기능적 명칭들에 의해 지칭하는 것이 때로는 편리한 것으로 증명되었다.
상기 논의로부터 명백한 바와 같이 특별히 달리 언급되지 않으면, 설명 전반에 걸쳐, "프로세싱하는 것" 또는 "계산하는 것" 또는 "산출하는 것" 또는 "결정하는 것" 또는 "디스플레이하는 것" 등과 같은 용어들을 활용하는 논의들은 컴퓨터 시스템 또는 유사한 전자 컴퓨팅 디바이스의 액션 및 프로세스들을 지칭함이 이해되며, 이 컴퓨터 시스템 또는 유사한 전자 컴퓨팅 디바이스는 컴퓨터 시스템 메모리들 또는 레지스터들 또는 다른 이러한 정보 저장, 송신 또는 디스플레이 디바이스들 내의 물리적 (전자적) 양들로서 표현되는 데이터를 조작하고 변환한다.
본원에 기술된 특정 실시양태들은 알고리즘의 형태로 기술된 프로세스 단계들 및 명령들을 포함한다. 실시양태들의 프로세스 단계들 및 명령들은 소프트웨어, 펌웨어 또는 하드웨어로 구현될 수 있을 것이고, 소프트웨어로 구현될 때, 실시간 네트워크 운영 시스템들에 의해 사용되는 상이한 플랫폼들 상에 상주하고 그 상이한 플랫폼들로부터 동작되도록 다운로드될 수 있을 것임에 유의하여야 한다.
마지막으로, 명세서에서 사용된 언어는 주로 판독성 및 교시적 목적들을 위해 선택되었고, 본 발명의 주제를 개관하고 제한하기 위해 선택되지 않았을 수도 있음에 유의하여야 한다. 따라서, 실시양태들의 개시는 예시적인 것으로 의도되고, 제한하는 것으로 의도되지 아니한다.

Claims (20)

  1. 컴퓨터 구현 방법으로서,
    데이터 소스로부터 데이터세트를 수신하는 단계;
    수신된 상기 데이터세트에 기초하여 프리미티브들의 풀로부터 프리미티브들을 선택하는 단계로서, 선택된 상기 프리미티브들의 각각은 하나 이상의 피처들을 합성하기 위해 상기 데이터세트의 적어도 부분에 적용되도록 구성되는, 상기 프리미티브들을 선택하는 단계;
    상기 선택된 프리미티브들을 상기 수신된 데이터세트에 적용함으로써 복수의 피처들을 합성하는 단계;
    피처들의 서브세트를 획득하기 위해 상기 복수의 피처들로부터 일부 피처들을 제거하기 위해 상기 복수의 피처들을 반복적으로 평가하는 단계로서, 각각의 반복은:
    상기 데이터세트의 상이한 부분을 평가된 상기 피처들에 적용함으로써 상기 복수의 피처들 중 적어도 일부 피처들의 유용성을 평가하는 것, 및
    상기 피처들의 서브세트를 생성하기 위해 상기 평가된 피처들의 유용성에 기초하여 상기 평가된 피처들의 일부를 제거하는 것
    을 포함하는, 상기 피처들의 서브세트를 획득하기 위해 상기 복수의 피처들로부터 일부 피처들을 제거하기 위해 상기 복수의 피처들을 반복적으로 평가하는 단계;
    상기 피처들의 서브세트의 각각의 피처에 대한 중요도 인자를 결정하는 단계; 및
    상기 피처들의 서브세트 및 상기 피처들의 서브세트의 각각의 피처의 상기 중요도 인자에 기초하여 머신 러닝 모델을 생성하는 단계로서, 상기 머신 러닝 모델은 새로운 데이터에 기초하여 예측을 행하는 데 사용되도록 구성되는, 상기 머신 러닝 모델을 생성하는 단계를 포함하는, 컴퓨터 구현 방법.
  2. 제 1 항에 있어서,
    상기 수신된 데이터세트에 기초하여 복수의 프리미티브들로부터 상기 프리미티브들을 선택하는 것은,
    상기 수신된 데이터세트의 의미론적 표현을 생성하는 것; 및
    상기 수신된 데이터세트의 상기 의미론적 표현과 매칭되는 속성들과 연관된 프리미티브들을 선택하는 것을 포함하는, 컴퓨터 구현 방법.
  3. 제 1 항에 있어서,
    상기 수신된 데이터세트에 기초하여 복수의 프리미티브들로부터 상기 프리미티브들을 선택하는 것은,
    상기 수신된 데이터세트로부터 대표 벡터를 생성하는 것;
    상기 대표 벡터를 머신 런드 모델에 입력하는 것으로서, 상기 머신 런드 모델은 상기 대표 벡터에 기초하여 상기 선택된 프리미티브들을 출력하는, 상기 대표 벡터를 머신 런드 모델에 입력하는 것을 포함하는, 컴퓨터 구현 방법.
  4. 제 1 항에 있어서,
    상기 피처들의 서브세트를 획득하기 위해 상기 복수의 피처들로부터 일부 피처들을 제거하기 위해 상기 복수의 피처들을 반복적으로 평가하는 단계는,
    상기 복수의 피처들 각각의 제 1 유용성 스코어를 결정하기 위해 상기 복수의 피처들을 상기 데이터세트의 제 1 부분에 적용하는 단계;
    상기 피처들의 예비 서브세트를 획득하기 위해 상기 복수의 피처들 각각의 상기 제 1 유용성 스코어에 기초하여 상기 복수의 피처들 중 일부를 제거하는 단계;
    상기 피처들의 상기 예비 서브세트 각각의 제 2 유용성 스코어를 결정하기 위해 상기 피처들의 상기 예비 서브세트를 상기 데이터세트의 제 2 부분에 적용하는 단계; 및
    상기 피처들의 상기 예비 서브세트 각각의 상기 제 2 유용성 스코어에 기초하여 상기 피처들의 예비 서브세트로부터 상기 피처들의 상기 예비 서브세트 중 일부를 제거하는 단계를 포함하는, 컴퓨터 구현 방법.
  5. 제 1 항에 있어서,
    상기 피처들의 서브세트 각각에 대한 상기 중요도 인자를 결정하는 것은,
    상기 피처들의 서브세트 및 상기 데이터세트의 제 1 부분을 머신 러닝 모델에 입력함으로써 상기 피처들의 서브세트를 랭킹하는 것으로서, 상기 머신 러닝 모델은 상기 피처들의 서브세트 각각에 대한 제 1 랭킹 스코어를 출력하는, 상기 피처들의 서브세트를 랭킹하는 것; 및
    상기 피처들의 서브세트의 랭킹 스코어들에 기초하여 상기 피처들의 서브세트의 상기 중요도 인자들을 결정하는 것을 포함하는, 컴퓨터 구현 방법.
  6. 제 5 항에 있어서,
    상기 피처들의 서브세트 및 상기 데이터세트의 제 2 부분을 머신 러닝 모델에 입력함으로써 상기 피처들의 서브세트를 랭킹하는 단계로서, 상기 머신 러닝 모델은 상기 피처들의 서브세트 각각에 대한 제 2 랭킹 스코어를 출력하는, 상기 피처들의 서브세트를 랭킹하는 단계;
    상기 피처의 랭킹 스코어에 기초하여 상기 피처들의 서브세트 각각에 대한 제 2 중요도 인자를 결정하는 단계; 및
    상기 피처의 제 2 중요도 스코어에 기초하여 상기 피처들의 서브세트 각각에 대한 상기 중요도 스코어를 조정하는 단계를 더 포함하는, 컴퓨터 구현 방법.
  7. 제 1 항에 있어서,
    상기 프리미티브들의 서브세트 및 상기 수신된 데이터세트에 기초하여 상기 복수의 피처들을 합성하는 것은:
    상기 서브세트에서의 각각의 프리미티브에 대해,
    상기 데이터세트에서 하나 이상의 변수들을 식별하는 것; 및
    상기 프리미티브를 상기 하나 이상의 변수들에 적용하여 상기 복수의 피처들 중 하나 이상의 피처들을 생성하는 것
    을 포함하는, 컴퓨터 구현 방법.
  8. 시스템으로서,
    컴퓨터 프로그램 명령들을 실행하기 위한 컴퓨터 프로세서; 및
    동작들을 수행하도록 상기 컴퓨터 프로세서에 의해 실행가능한 컴퓨터 프로그램 명령들을 저장하는 비일시적 컴퓨터 판독가능 메모리를 포함하고,
    상기 동작들은:
    데이터 소스로부터 데이터세트를 수신하는 동작;
    수신된 상기 데이터세트에 기초하여 프리미티브들의 풀로부터 프리미티브들을 선택하는 동작으로서, 선택된 상기 프리미티브들의 각각은 하나 이상의 피처들을 합성하기 위해 상기 데이터세트의 적어도 부분에 적용되도록 구성되는, 상기 프리미티브들을 선택하는 동작;
    상기 선택된 프리미티브들을 상기 수신된 데이터세트에 적용함으로써 복수의 피처들을 합성하는 동작;
    피처들의 서브세트를 획득하기 위해 상기 복수의 피처들로부터 일부 피처들을 제거하기 위해 상기 복수의 피처들을 반복적으로 평가하는 동작으로서, 각각의 반복은:
    상기 데이터세트의 상이한 부분을 평가된 상기 피처들에 적용함으로써 상기 복수의 피처들 중 적어도 일부 피처들의 유용성을 평가하는 것, 및
    상기 피처들의 서브세트를 생성하기 위해 상기 평가된 피처들의 유용성에 기초하여 상기 평가된 피처들의 일부를 제거하는 것
    을 포함하는, 상기 피처들의 서브세트를 획득하기 위해 상기 복수의 피처들로부터 일부 피처들을 제거하기 위해 상기 복수의 피처들을 반복적으로 평가하는 동작;
    상기 피처들의 서브세트의 각각의 피처에 대한 중요도 인자를 결정하는 동작; 및
    상기 피처들의 서브세트 및 상기 피처들의 서브세트의 각각의 피처의 상기 중요도 인자에 기초하여 머신 러닝 모델을 생성하는 동작으로서, 상기 머신 러닝 모델은 새로운 데이터에 기초하여 예측을 행하는 데 사용되도록 구성되는, 상기 머신 러닝 모델을 생성하는 동작
    을 포함하는, 시스템.
  9. 제 8 항에 있어서,
    상기 수신된 데이터세트에 기초하여 복수의 프리미티브들로부터 상기 프리미티브들을 선택하는 것은,
    상기 수신된 데이터세트의 의미론적 표현을 생성하는 것; 및
    상기 수신된 데이터세트의 상기 의미론적 표현과 매칭되는 속성들과 연관된 프리미티브들을 선택하는 것을 포함하는, 시스템.
  10. 제 8 항에 있어서,
    상기 수신된 데이터세트에 기초하여 복수의 프리미티브들로부터 상기 프리미티브들을 선택하는 것은,
    상기 수신된 데이터세트로부터 대표 벡터를 생성하는 것;
    상기 대표 벡터를 머신 런드 모델에 입력하는 것으로서, 상기 머신 런드 모델은 상기 대표 벡터에 기초하여 상기 선택된 프리미티브들을 출력하는, 상기 대표 벡터를 머신 런드 모델에 입력하는 것을 포함하는, 시스템.
  11. 제 8 항에 있어서,
    상기 피처들의 서브세트를 획득하기 위해 상기 복수의 피처들로부터 일부 피처들을 제거하기 위해 상기 복수의 피처들을 반복적으로 평가하는 동작은,
    상기 복수의 피처들 각각의 제 1 유용성 스코어를 결정하기 위해 상기 복수의 피처들을 상기 데이터세트의 제 1 부분에 적용하는 동작;
    상기 피처들의 예비 서브세트를 획득하기 위해 상기 복수의 피처들 각각의 상기 제 1 유용성 스코어에 기초하여 상기 복수의 피처들 중 일부를 제거하는 동작;
    상기 피처들의 상기 예비 서브세트 각각의 제 2 유용성 스코어를 결정하기 위해 상기 피처들의 상기 예비 서브세트를 상기 데이터세트의 제 2 부분에 적용하는 동작; 및
    상기 피처들의 상기 예비 서브세트 각각의 상기 제 2 유용성 스코어에 기초하여 상기 피처들의 예비 서브세트로부터 상기 피처들의 상기 예비 서브세트 중 일부를 제거하는 동작을 포함하는, 시스템.
  12. 제 8 항에 있어서,
    상기 피처들의 서브세트 각각에 대한 상기 중요도 인자를 결정하는 것은,
    상기 피처들의 서브세트 및 상기 데이터세트의 제 1 부분을 머신 러닝 모델에 입력함으로써 상기 피처들의 서브세트를 랭킹하는 것으로서, 상기 머신 러닝 모델은 상기 피처들의 서브세트 각각에 대한 제 1 랭킹 스코어를 출력하는, 상기 피처들의 서브세트를 랭킹하는 것; 및
    상기 피처들의 서브세트의 랭킹 스코어들에 기초하여 상기 피처들의 서브세트의 상기 중요도 인자들을 결정하는 것을 포함하는, 시스템.
  13. 제 12 항에 있어서,
    상기 동작들은,
    상기 피처들의 서브세트 및 상기 데이터세트의 제 2 부분을 머신 러닝 모델에 입력함으로써 상기 피처들의 서브세트를 랭킹하는 동작으로서, 상기 머신 러닝 모델은 상기 피처들의 서브세트 각각에 대한 제 2 랭킹 스코어를 출력하는, 상기 피처들의 서브세트를 랭킹하는 동작;
    상기 피처의 랭킹 스코어에 기초하여 상기 피처들의 서브세트 각각에 대한 제 2 중요도 인자를 결정하는 동작; 및
    상기 피처의 제 2 중요도 스코어에 기초하여 상기 피처들의 서브세트 각각에 대한 상기 중요도 스코어를 조정하는 동작을 더 포함하는, 시스템.
  14. 제 8 항에 있어서,
    상기 프리미티브들의 서브세트 및 상기 수신된 데이터세트에 기초하여 상기 복수의 피처들을 합성하는 것은:
    상기 서브세트에서의 각각의 프리미티브에 대해,
    상기 데이터세트에서 하나 이상의 변수들을 식별하는 것; 및
    상기 프리미티브를 상기 하나 이상의 변수들에 적용하여 상기 복수의 피처들 중 하나 이상의 피처들을 생성하는 것
    을 포함하는, 시스템.
  15. 데이터 분석 시스템에서 데이터 블록들을 프로세싱하기 위한 실행가능 컴퓨터 프로그램 명령들을 저장하는 비일시적 컴퓨터 판독가능 메모리로서,
    상기 명령들은,
    데이터 소스로부터 데이터세트를 수신하는 동작;
    수신된 상기 데이터세트에 기초하여 프리미티브들의 풀로부터 프리미티브들을 선택하는 동작으로서, 선택된 상기 프리미티브들의 각각은 하나 이상의 피처들을 합성하기 위해 상기 데이터세트의 적어도 부분에 적용되도록 구성되는, 상기 프리미티브들을 선택하는 동작;
    상기 선택된 프리미티브들을 상기 수신된 데이터세트에 적용함으로써 복수의 피처들을 합성하는 동작;
    피처들의 서브세트를 획득하기 위해 상기 복수의 피처들로부터 일부 피처들을 제거하기 위해 상기 복수의 피처들을 반복적으로 평가하는 동작으로서, 각각의 반복은:
    상기 데이터세트의 상이한 부분을 평가된 상기 피처들에 적용함으로써 상기 복수의 피처들 중 적어도 일부 피처들의 유용성을 평가하는 것, 및
    상기 피처들의 서브세트를 생성하기 위해 상기 평가된 피처들의 유용성에 기초하여 상기 평가된 피처들의 일부를 제거하는 것
    을 포함하는, 상기 피처들의 서브세트를 획득하기 위해 상기 복수의 피처들로부터 일부 피처들을 제거하기 위해 상기 복수의 피처들을 반복적으로 평가하는 동작;
    상기 피처들의 서브세트의 각각의 피처에 대한 중요도 인자를 결정하는 동작; 및
    상기 피처들의 서브세트 및 상기 피처들의 서브세트의 각각의 피처의 상기 중요도 인자에 기초하여 머신 러닝 모델을 생성하는 동작으로서, 상기 머신 러닝 모델은 새로운 데이터에 기초하여 예측을 행하는 데 사용되도록 구성되는, 상기 머신 러닝 모델을 생성하는 동작
    을 포함하는 동작들을 수행하도록 실행가능한, 비일시적 컴퓨터 판독가능 메모리.
  16. 제 15 항에 있어서,
    상기 수신된 데이터세트에 기초하여 복수의 프리미티브들로부터 상기 프리미티브들을 선택하는 것은,
    상기 수신된 데이터세트의 의미론적 표현을 생성하는 것; 및
    상기 수신된 데이터세트의 상기 의미론적 표현과 매칭되는 속성들과 연관된 프리미티브들을 선택하는 것을 포함하는, 비일시적 컴퓨터 판독가능 메모리.
  17. 제 15 항에 있어서,
    상기 수신된 데이터세트에 기초하여 복수의 프리미티브들로부터 상기 프리미티브들을 선택하는 것은,
    상기 수신된 데이터세트로부터 대표 벡터를 생성하는 것;
    상기 대표 벡터를 머신 런드 모델에 입력하는 것으로서, 상기 머신 런드 모델은 상기 대표 벡터에 기초하여 상기 선택된 프리미티브들을 출력하는, 상기 대표 벡터를 머신 런드 모델에 입력하는 것을 포함하는, 비일시적 컴퓨터 판독가능 메모리.
  18. 제 15 항에 있어서,
    상기 피처들의 서브세트를 획득하기 위해 상기 복수의 피처들로부터 일부 피처들을 제거하기 위해 상기 복수의 피처들을 반복적으로 평가하는 동작은,
    상기 복수의 피처들 각각의 제 1 유용성 스코어를 결정하기 위해 상기 복수의 피처들을 상기 데이터세트의 제 1 부분에 적용하는 동작;
    상기 피처들의 예비 서브세트를 획득하기 위해 상기 복수의 피처들 각각의 상기 제 1 유용성 스코어에 기초하여 상기 복수의 피처들 중 일부를 제거하는 동작;
    상기 피처들의 상기 예비 서브세트 각각의 제 2 유용성 스코어를 결정하기 위해 상기 피처들의 상기 예비 서브세트를 상기 데이터세트의 제 2 부분에 적용하는 동작; 및
    상기 피처들의 상기 예비 서브세트 각각의 상기 제 2 유용성 스코어에 기초하여 상기 피처들의 예비 서브세트로부터 상기 피처들의 상기 예비 서브세트 중 일부를 제거하는 동작을 포함하는, 비일시적 컴퓨터 판독가능 메모리.
  19. 제 15 항에 있어서,
    상기 피처들의 서브세트 각각에 대한 상기 중요도 인자를 결정하는 것은,
    상기 피처들의 서브세트 및 상기 데이터세트의 제 1 부분을 머신 러닝 모델에 입력함으로써 상기 피처들의 서브세트를 랭킹하는 것으로서, 상기 머신 러닝 모델은 상기 피처들의 서브세트 각각에 대한 제 1 랭킹 스코어를 출력하는, 상기 피처들의 서브세트를 랭킹하는 것; 및
    상기 피처들의 서브세트의 랭킹 스코어들에 기초하여 상기 피처들의 서브세트의 상기 중요도 인자들을 결정하는 것을 포함하는, 비일시적 컴퓨터 판독가능 메모리.
  20. 제 19 항에 있어서,
    상기 동작들은,
    상기 피처들의 서브세트 및 상기 데이터세트의 제 2 부분을 머신 러닝 모델에 입력함으로써 상기 피처들의 서브세트를 랭킹하는 동작으로서, 상기 머신 러닝 모델은 상기 피처들의 서브세트 각각에 대한 제 2 랭킹 스코어를 출력하는, 상기 피처들의 서브세트를 랭킹하는 동작;
    상기 피처의 랭킹 스코어에 기초하여 상기 피처들의 서브세트 각각에 대한 제 2 중요도 인자를 결정하는 동작; 및
    상기 피처의 제 2 중요도 스코어에 기초하여 상기 피처들의 서브세트 각각에 대한 상기 중요도 스코어를 조정하는 동작을 더 포함하는, 비일시적 컴퓨터 판독가능 메모리.
KR1020237014555A 2020-09-30 2021-09-16 자동화된 피처 엔지니어링을 운영하는 시스템 및 방법 KR20230078764A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US17/039,428 US11941497B2 (en) 2020-09-30 2020-09-30 System and method of operationalizing automated feature engineering
US17/039,428 2020-09-30
PCT/US2021/050752 WO2022072150A1 (en) 2020-09-30 2021-09-16 System and method of operationalizing automated feature engineering

Publications (1)

Publication Number Publication Date
KR20230078764A true KR20230078764A (ko) 2023-06-02

Family

ID=80822741

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020237014555A KR20230078764A (ko) 2020-09-30 2021-09-16 자동화된 피처 엔지니어링을 운영하는 시스템 및 방법

Country Status (8)

Country Link
US (1) US11941497B2 (ko)
EP (1) EP4222651A1 (ko)
JP (1) JP2023544011A (ko)
KR (1) KR20230078764A (ko)
CN (1) CN116235158A (ko)
AU (1) AU2021353828B2 (ko)
CA (1) CA3191371A1 (ko)
WO (1) WO2022072150A1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11727284B2 (en) * 2019-12-12 2023-08-15 Business Objects Software Ltd Interpretation of machine learning results using feature analysis
WO2024053370A1 (ja) * 2022-09-06 2024-03-14 ソニーグループ株式会社 情報処理装置、および情報処理方法、並びにプログラム

Family Cites Families (61)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5182708A (en) * 1990-12-11 1993-01-26 Ricoh Corporation Method and apparatus for classifying text
US5371807A (en) * 1992-03-20 1994-12-06 Digital Equipment Corporation Method and apparatus for text classification
US6192360B1 (en) * 1998-06-23 2001-02-20 Microsoft Corporation Methods and apparatus for classifying text and for building a text classifier
US7062498B2 (en) * 2001-11-02 2006-06-13 Thomson Legal Regulatory Global Ag Systems, methods, and software for classifying text from judicial opinions and other documents
US20030208399A1 (en) * 2002-05-03 2003-11-06 Jayanta Basak Personalized product recommendation
US7366705B2 (en) * 2004-04-15 2008-04-29 Microsoft Corporation Clustering based text classification
US7689531B1 (en) * 2005-09-28 2010-03-30 Trend Micro Incorporated Automatic charset detection using support vector machines with charset grouping
US7711673B1 (en) * 2005-09-28 2010-05-04 Trend Micro Incorporated Automatic charset detection using SIM algorithm with charset grouping
US7580742B2 (en) * 2006-02-07 2009-08-25 Microsoft Corporation Using electroencephalograph signals for task classification and activity recognition
US8023974B1 (en) * 2007-02-15 2011-09-20 Trend Micro Incorporated Lightweight SVM-based content filtering system for mobile phones
US8095521B2 (en) * 2007-03-30 2012-01-10 Amazon Technologies, Inc. Recommendation system with cluster-based filtering of recommendations
US7853599B2 (en) * 2008-01-21 2010-12-14 Microsoft Corporation Feature selection for ranking
US7970808B2 (en) * 2008-05-05 2011-06-28 Microsoft Corporation Leveraging cross-document context to label entity
KR20110058789A (ko) * 2008-08-08 2011-06-01 유니버시티 오브 조지아 리서치 파운데이션 인코퍼레이티드 체액으로 분비될 수 있는 단백질을 예측하기 위한 방법 및 시스템
US8655803B2 (en) * 2008-12-17 2014-02-18 Xerox Corporation Method of feature extraction from noisy documents
US20100185568A1 (en) * 2009-01-19 2010-07-22 Kibboko, Inc. Method and System for Document Classification
US20110213655A1 (en) * 2009-01-24 2011-09-01 Kontera Technologies, Inc. Hybrid contextual advertising and related content analysis and display techniques
US9292493B2 (en) * 2010-01-07 2016-03-22 The Trustees Of The Stevens Institute Of Technology Systems and methods for automatically detecting deception in human communications expressed in digital form
US8560466B2 (en) * 2010-02-26 2013-10-15 Trend Micro Incorporated Method and arrangement for automatic charset detection
US8949158B2 (en) * 2010-10-25 2015-02-03 Intelius Inc. Cost-sensitive alternating decision trees for record linkage
EP2665408B1 (en) * 2011-01-18 2021-08-11 University Health Network (UHN) Device for swallowing impairment detection
US20130097103A1 (en) * 2011-10-14 2013-04-18 International Business Machines Corporation Techniques for Generating Balanced and Class-Independent Training Data From Unlabeled Data Set
US9552393B2 (en) * 2012-01-13 2017-01-24 Business Objects Software Ltd. Adaptive record linking in a distributed computing system
US8498986B1 (en) * 2012-01-31 2013-07-30 Business Objects Software Ltd. Classifying data using machine learning
US9249287B2 (en) * 2012-02-24 2016-02-02 Nec Corporation Document evaluation apparatus, document evaluation method, and computer-readable recording medium using missing patterns
US9507867B2 (en) * 2012-04-06 2016-11-29 Enlyton Inc. Discovery engine
US9189750B1 (en) * 2013-03-15 2015-11-17 The Mathworks, Inc. Methods and systems for sequential feature selection based on significance testing
EP2801906B1 (en) * 2013-05-08 2017-01-11 Accenture Global Services Limited Source code flow analysis using information retrieval
US9852132B2 (en) * 2014-11-25 2017-12-26 Chegg, Inc. Building a topical learning model in a content management system
US10325212B1 (en) * 2015-03-24 2019-06-18 InsideView Technologies, Inc. Predictive intelligent softbots on the cloud
US10486847B1 (en) 2015-04-09 2019-11-26 Creative Edge Design Group, Ltd. Bottle with center pour opening, contoured handle, and contoured profile for interlocking during stacking/transport
US10504035B2 (en) * 2015-06-23 2019-12-10 Microsoft Technology Licensing, Llc Reasoning classification based on feature pertubation
US11257000B2 (en) * 2015-12-14 2022-02-22 Zoomph, Inc. Systems, apparatus, and methods for generating prediction sets based on a known set of features
US9524469B1 (en) * 2015-12-14 2016-12-20 MetroStar Systems, Inc. Systems, apparatus, and methods for generating prediction sets based on a known set of features
EP3188093A1 (en) * 2015-12-29 2017-07-05 Tata Consultancy Services Limited System and method for predicting response time of an enterprise system
US10318669B2 (en) * 2016-06-16 2019-06-11 International Business Machines Corporation Adaptive forecasting of time-series
US10885463B2 (en) * 2016-07-08 2021-01-05 Microsoft Technology Licensing, Llc Metadata-driven machine learning for systems
US10733534B2 (en) * 2016-07-15 2020-08-04 Microsoft Technology Licensing, Llc Data evaluation as a service
US9645999B1 (en) * 2016-08-02 2017-05-09 Quid, Inc. Adjustment of document relationship graphs
RU2635902C1 (ru) * 2016-08-05 2017-11-16 Общество С Ограниченной Ответственностью "Яндекс" Способ и система отбора обучающих признаков для алгоритма машинного обучения
US9740368B1 (en) * 2016-08-10 2017-08-22 Quid, Inc. Positioning labels on graphical visualizations of graphs
US10552497B2 (en) * 2016-08-16 2020-02-04 International Business Machines Corporation Unbiasing search results
US9787705B1 (en) * 2016-08-19 2017-10-10 Quid, Inc. Extracting insightful nodes from graphs
US9836183B1 (en) * 2016-09-14 2017-12-05 Quid, Inc. Summarized network graph for semantic similarity graphs of large corpora
US11514233B2 (en) * 2016-11-22 2022-11-29 President And Fellows Of Harvard College Automated nonparametric content analysis for information management and retrieval
US9715495B1 (en) * 2016-12-15 2017-07-25 Quid, Inc. Topic-influenced document relationship graphs
US9911211B1 (en) * 2017-04-13 2018-03-06 Quid, Inc. Lens-based user-interface for visualizations of graphs
US10482118B2 (en) * 2017-06-14 2019-11-19 Sap Se Document representation for machine-learning document classification
US20190108276A1 (en) * 2017-10-10 2019-04-11 NEGENTROPICS Mesterséges Intelligencia Kutató és Fejlesztõ Kft Methods and system for semantic search in large databases
WO2019090023A1 (en) 2017-11-03 2019-05-09 General Electric Company System and method for interactive representation learning transfer through deep learning of feature ontologies
US11113326B2 (en) * 2018-01-26 2021-09-07 International Business Machines Corporation Automatic extraction of domain specific terminology from a large corpus
US10847136B2 (en) * 2018-09-06 2020-11-24 Nice Ltd. System and method for mapping a customer journey to a category
US11087088B2 (en) * 2018-09-25 2021-08-10 Accenture Global Solutions Limited Automated and optimal encoding of text data features for machine learning models
JP7085513B2 (ja) * 2019-04-01 2022-06-16 株式会社東芝 情報処理装置、情報処理方法、及びコンピュータプログラム
US20210081811A1 (en) * 2019-09-18 2021-03-18 Johnson Controls Technology Company Trend analysis and data management system for temperature, pressure, and humidity compliance
US11663280B2 (en) * 2019-10-15 2023-05-30 Home Depot Product Authority, Llc Search engine using joint learning for multi-label classification
US11727284B2 (en) * 2019-12-12 2023-08-15 Business Objects Software Ltd Interpretation of machine learning results using feature analysis
US11568314B2 (en) * 2020-02-11 2023-01-31 Microsoft Technology Licensing, Llc Data-driven online score caching for machine learning
US11429899B2 (en) * 2020-04-30 2022-08-30 International Business Machines Corporation Data model processing in machine learning using a reduced set of features
US11693637B1 (en) * 2020-05-15 2023-07-04 Google Llc Using natural language latent representation in automated conversion of source code from base programming language to target programming language
US20220253725A1 (en) * 2021-02-10 2022-08-11 Capital One Services, Llc Machine learning model for entity resolution

Also Published As

Publication number Publication date
WO2022072150A1 (en) 2022-04-07
JP2023544011A (ja) 2023-10-19
AU2021353828B2 (en) 2024-02-01
EP4222651A1 (en) 2023-08-09
US11941497B2 (en) 2024-03-26
AU2021353828A1 (en) 2023-03-16
CA3191371A1 (en) 2022-04-07
CN116235158A (zh) 2023-06-06
US20220101190A1 (en) 2022-03-31

Similar Documents

Publication Publication Date Title
NO20230419A1 (en) Computer-based systems, computing components and computing objects configured to implement dynamic outlier bias reduction in machine learning models
CN113570064A (zh) 利用复合机器学习模型来执行预测的方法及系统
WO2019047790A1 (zh) 生成机器学习样本的组合特征的方法及系统
WO2019015631A1 (zh) 生成机器学习样本的组合特征的方法及系统
CN107273979B (zh) 基于服务级别来执行机器学习预测的方法及系统
AU2021353828B2 (en) System and method of operationalizing automated feature engineering
CN113610240A (zh) 利用嵌套机器学习模型来执行预测的方法及系统
JP2024516656A (ja) 産業特定機械学習アプリケーション
JP2023539240A (ja) ハイブリッド機械学習
AU2021412848B2 (en) Integrated feature engineering
US20230281541A1 (en) Systems and methods for generating insights based on regulatory reporting and analysis
US20230334362A1 (en) Self-adaptive multi-model approach in representation feature space for propensity to action
US20240169254A1 (en) Systems and methods for generating integrated feature graphs during feature engineering of training data for artificial intelligence models
US20240169255A1 (en) Systems and methods for integrating disparate feature groups during feature engineering of training data for artificial intelligence models
Charron et al. Performing Transaction Synthesis through Machine Learning Models
CN115481616A (zh) 目标文本的获取方法、装置、计算机设备和存储介质
Boehm et al. Systems for ML Lifecycle Tasks
WO2022265782A1 (en) Blackbox optimization via model ensembling
Hassani ACG Gaasbeek