BigQuery ML을 사용한 펭귄 체중 예측

Page content

개요

  • BigQuery ML을 소개한다.
  • BigQuery ML을 사용하면, 머신러닝 모델을 만들고 또한 실행할 수 있다.

목표

  • BigQuery ML에서 CREATE MODEL 문을 사용하여 선형회귀 모델 만들기
  • ML.EVALUATE 함수를 사용하여 ML 모델 평가
  • ML.PREDICT 함수를 사용하여 ML 모델 예측

주의 사항

1단계: 데이터 세트 만들기

  • 데이터 세트 ID에 bqml_practice 입력
  • 데이터 위치로 미국 US 선택
  • 나머지는 모두 Default로 설정한다.

Untitled

2단계: 모델 만들기

데이터 소개

  • 먼저 데이터를 소개한다.
  • 데이터 원 자료는 해당 논문에서 확인할 수 있다.
  • 데이터 셋에 대한 설명은 다음과 같다.
    • species — 펭귄의 종(문자열)
    • island — 펭귄이 사는 섬(문자열)
    • culmen_length_mm — 컬멘 길이(밀리미터)(FLOAT64).
    • culmen_depth_mm — 컬멘 깊이(밀리미터)(FLOAT64)
    • flipper_length_mm — 지느러미의 길이(밀리미터)(FLOAT64)
    • sex — 펭귄의 성별(문자열)

모델 만들기 코드 실행

  • CREATE MODEL 명령어를 실행하여 모델을 생성한다.
#standardSQL
CREATE OR REPLACE MODEL `bqml_practice.penguins_model`
OPTIONS
  (model_type='linear_reg',
  input_label_cols=['body_mass_g']) AS
SELECT
  *
FROM
  `bigquery-public-data.ml_datasets.penguins`
WHERE
  body_mass_g IS NOT NULL
  • 실행 결과는 보는 것처럼 Preprocess, Train, Evaluate 작업이 진행 된 것을 확인할 수 있다.

Untitled

  • 모델 학습 결과를 가져오려면 다음과 같이 진행한다.
    • 모델의 예측이 완벽하면 손실은 0에 수렴한다.
SELECT
  *
FROM
  ML.TRAINING_INFO(MODEL `bqml_practice.penguins_model`)
  • 생성된 모델을 클릭하면 다양한 탭이 나온다. Training 탭을 클릭하면 학습 데이터 LOSS와 실행결과가 같이 나오는 것을 확인할 수 있다.

Untitled

3단계: 모델 평가

  • 모델 생성 후에는 ML.EVALUATE 함수를 활용하여 모형의 성능을 평가할 수 있다.
SELECT
  *
FROM
  ML.EVALUATE(MODEL `bqml_practice.penguins_model`,
    (
    SELECT
      *
    FROM
      `bigquery-public-data.ml_datasets.penguins`
    WHERE
      body_mass_g IS NOT NULL))

Untitled

  • 선형 회귀를 수행했기 때문에, MAE, MSE, MSLE와 같은 평가 지표들이 나온 것을 확인할 수 있다.
  • 평가 지표에서 중요한 측정 항목은 $R_{2}$이다.
    • 이 지표는 회귀 예측이 실제 데이터에 가까운지 알 수 있는 통계 척도이다.
    • 0은 응답 데이터의 변동성을 전혀 설명하지 못한다.
    • 1은 모델이 평균 주위 응답 데이터의 변동성을 모두 설명한다.

4단계: 모델 사용하여 결과 예측

  • 모델을 사용하여 Biscoe에 있는 모든 펭귄의 체질량을 그램 단위로 예측하는 쿼리를 작성한다.
#standardSQL
SELECT
  *
FROM
  ML.PREDICT(MODEL `bqml_tutorial.penguins_model`,
    (
    SELECT
      *
    FROM
      `bigquery-public-data.ml_datasets.penguins`
    WHERE
      body_mass_g IS NOT NULL
      AND island = "Biscoe"))

Untitled

  • 위 결과물을 테이블로 저장할 수 있다.
    • CSV 파일, JSON 파일, Google Sheets 등으로 변환할 수 있다.

Untitled

5단계 예측 데이터 시각화

  • 예측 데이터를 시각화를 하기 위해 Data Studio 를 연다.
  • 데이터소스로 빅쿼리를 선택한 후, 아래와 같이 테이블을 선택할 수 있다.

Untitled

  • 시각화 차트를 활용하여 간단하게 작성하면 다음과 같다.

Untitled

References

https://cloud.google.com/bigquery-ml/docs/linear-regression-tutorial