빅쿼리(BigQuery) 머신러닝(machine learning)인 BQML 알아보기

빅쿼리 머신러닝 (BigQuery Machine Learning)인 BQML은 BigQuery UI에서 SQL 쿼리문만으로 모델을 훈련시키고 평가하여 예측할 수 있게 해줍니다. 간단하게 사용법을 알아보겠습니다. 퀵랩의 실습을 직접해보았습니다.
  • 구글 클라우드 콘솔에서 빅쿼리 메뉴로 갑니다.  
  • 빅쿼리 퍼블릭 데이터셋의 구글 애널리틱스 샘플 데이터 테이블에서 몇 가지 feature를 뽑아 방문자가 transaction을 할 것인지 예측하는 모델을 훈련 시킬 것입니다. CREATE DATASET으로 bqml_test란 데이터세트를 아래와 같이 생성합니다. 

  • CREATE OR REPLACE MODEL 이란 명령문으로 bqml_test 데이터셋 아래에 cookie_model 이란 모델을 생성하고, 모델유형은 로지스틱 회귀(logistic regression)를 선택할 것입니다. 방문자가 거래를 했는지 안했는지 0,1로 예측하게 훈련시킬 것이기 때문입니다. 쿼리는 아래와 같습니다.
  • 쿼리를 실행하면 아래와 같이 bqml_test 데이터셋 아래에 테이블처럼 cookie_model이 생깁니다. 
  • Details 탭에서 아래의 정보를 확인하실 수 있습니다. 
  • 링크를 클릭하면 훈련에 사용된 Training Data와  평가에 사용된 Evaluation Data를 보실 수 있습니다. 

  • 모델의 Training 탭에서 모델 훈련에 관한 정보를 확인할 수 있습니다.
  • EVALUATE 명령문을 사용해서 훈련받은 모델을 평가합니다. 
  • linear regression과 logistic regression은 평가 후 나오는 항목들이 다릅니다. 로지스틱 리그레션 모델은 precision, recall, accuracy, f1_score, log_loss, roc_auc 같은 평가 지표를 사용합니다. 쿼리를 실행하면 아래의 결과가 나옵니다.
  • 모델의 Evaluation 탭에서 아래와 같은 정보들을 볼 수 있습니다. 



  • 대부분의 경우는 평가 후 모델을 재훈련시키는 과정을 반복해서 모델의 성능을 향상 시킨 뒤 예측(predict)을 합니다. 간단한 테스트가 목적이므로 바로 예측을 하겠습니다.  아래와 같이 PREDICT 문법을 사용합니다.
  • 우리의 머신러닝 모델인 "쿠키"는 아래와 같이 나라별로 구매를 할 것이라고 예측하였습니다. 짝짝짝
* 위의 소개 자료는 빅쿼리에서 머신러닝을 사용하는 bqml을 이해하기 쉽게 아주 단순하게 만든 실습입니다. 

Comments