Skip to main content
QUICK REVIEW

[논문 리뷰] Efficient and Accurate In-Database Machine Learning with SQL Code Generation in Python

M. Kaufmann, Gabriel Stechschulte|arXiv (Cornell University)|2021. 04. 07.
Scientific Computing and Data Management참고 문헌 18인용 수 4
한 줄 요약

이 논문은 파이썬을 사용해 Jinja2 템플릿 매크로를 통해 SQL 코드를 생성하는 새로운 데이터베이스 내 기계학습(IDBML) 프레임워크를 제안한다. 이는 다차원 확률 추정을 효율적이고 정확하게 수행할 수 있도록 한다. 등량 순위 분할(EQRB)과 등용량 분할(EWB)을 도입하여 이산화를 수행하며, scikit-learn의 최상위 알고리즘보다 빠른 계산 속도를 달성하면서도 커버타입 데이터셋에서 결정트리 및 랜덤 포레스트보다 1-2% 낮은 정확도를 유지한다.

ABSTRACT

Following an analysis of the advantages of SQL-based Machine Learning (ML) and a short literature survey of the field, we describe a novel method for In-Database Machine Learning (IDBML). We contribute a process for SQL-code generation in Python using template macros in Jinja2 as well as the prototype implementation of the process. We describe our implementation of the process to compute multidimensional histogram (MDH) probability estimation in SQL. For this, we contribute and implement a novel discretization method called equal quantized rank binning (EQRB) and equal-width binning (EWB). Based on this, we provide data gathered in a benchmarking experiment for the quantitative empirical evaluation of our method and system using the Covertype dataset. We measured accuracy and computation time and compared it to Scikit Learn state of the art classification algorithms. Using EWB, our multidimensional probability estimation was the fastest of all tested algorithms, while being only 1-2% less accurate than the best state of the art methods found (decision trees and random forests). Our method was significantly more accurate than Naive Bayes, which assumes independent one-dimensional probabilities and/or densities. Also, our method was significantly more accurate and faster than logistic regression. This motivates for further research in accuracy improvement and in IDBML with SQL code generation for big data and larger-than-memory datasets.

연구 동기 및 목표

  • 대규모이고 메모리에 올릴 수 없는 데이터셋에서 전통적인 메모리 내 기계학습의 성능 및 확장성 한계를 해결하기 위해.
  • SQL을 통해 데이터베이스 내에서 직접 다차원 확률 추정을 정확하고 효율적으로 수행할 수 있도록 하기 위해.
  • 기계학습 워크플로우를 위한 최적화된 SQL 코드를 자동으로 생성하는 파이썬 기반 시스템을 개발하기 위해.
  • 제안된 방법의 정확도와 성능을 최신 scikit-learn 알고리즘과 비교 평가하기 위해.
  • 실증적 벤치마킹을 통해 IDBML이 대규모 데이터 워크로드에 대해 실현 가능할지 탐색하기 위해.

제안 방법

  • 파이썬에서 Jinja2 템플릿 매크로를 사용해 기계학습 작업을 위한 효율적이고 실행 가능한 SQL 코드를 생성한다.
  • SQL을 사용한 다차원 히스토GRAM(MDH) 확률 추정을 구현하여 데이터베이스 내 계산을 가능하게 한다.
  • 확률 추정 정확도를 향상시키기 위해 새로운 이산화 기법인 등량 순위 분할(EQRB)을 도입한다.
  • 기준 비교를 위해 등용량 분할(EWB)도 구현하며, 최소한의 정확도 손실로 빠른 계산을 제공한다.
  • 데이터를 데이터베이스 내에서 직접 처리하여 데이터 이동을 방지하고 I/O 오버헤드를 줄인다.
  • 커버타입 데이터셋을 사용해 파ip라인을 평가하며, 정확도와 런타임을 scikit-learn 벤치마크와 비교한다.

실험 결과

연구 질문

  • RQ1파이썬에서 생성된 SQL 코드를 통해 대규모 데이터셋에 대한 효율적이고 정확한 데이터베이스 내 기계학습을 구현할 수 있는가?
  • RQ2EQRB 및 EWB를 통한 다차원 확률 추정의 정확도는 기존의 최신 scikit-learn 알고리즘과 비교해 어떻게 되는가?
  • RQ3생성된 SQL을 사용한 데이터베이스 내 처리 방식은 기존의 메모리 내 기계학습 대비 어떤 성능 향상을 보이는가?
  • RQ4EQRB 및 EWB 이산화 방법은 다차원 확률 추정에서 정확도와 속도 간의 상호 보완적 관계에 어떤 영향을 미치는가?
  • RQ5SQL 코드 생성을 통한 IDBML은 주로 메모리에 올릴 수 없는 데이터셋을 성능 저하 없이 처리할 수 있는가?

주요 결과

  • 등용량 분할(EWB)을 사용한 결과, 커버타입 데이터셋에서 모든 테스트 알고리즘 중에서 가장 빠른 계산 시간을 기록했다.
  • EWB를 사용한 MDH 확률 추정은 결정트리 및 랜덤 포레스트와 같은 최고 성능을 보인 최신 기법들보다 오직 1-2% 낮은 정확도를 보였다.
  • 독립적인 일차원 확률 가정에 기반한 나이브 베이즈보다 정확도에서 뚜렷한 우월성을 보였다.
  • 로지스틱 회귀보다도 더 빠르고 정확도가 높은 성능을 보였다.
  • 결과적으로 SQL 코드 생성을 통한 데이터베이스 내 기계학습의 실현 가능성을 입증했다.
  • 벤치마킹 실험을 통해 생성된 SQL을 사용한 데이터베이스 내 처리가 다차원 분류 작업에서 높은 성능과 정확도를 달성할 수 있음을 확인했다.

더 나은 연구,지금 바로 시작하세요

논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.

카드 등록 없음 · 무료 플랜 제공

이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.