BigQuery ML을 사용한 펭귄 체중 예측
Page content
개요
- BigQuery ML을 소개한다.
- BigQuery ML을 사용하면, 머신러닝 모델을 만들고 또한 실행할 수 있다.
목표
- BigQuery ML에서 CREATE MODEL 문을 사용하여 선형회귀 모델 만들기
ML.EVALUATE
함수를 사용하여 ML 모델 평가ML.PREDICT
함수를 사용하여 ML 모델 예측
주의 사항
- BigQuery 비용 관련된 문서는 다음과 같다.
- BigQuery 가격 책정: https://cloud.google.com/bigquery/pricing
- BigQuery 가격 책정**:** https://cloud.google.com/bigquery-ml/pricing
1단계: 데이터 세트 만들기
- 데이터 세트 ID에
bqml_practice
입력 - 데이터 위치로 미국 US 선택
- 나머지는 모두 Default로 설정한다.
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 작업이 진행 된 것을 확인할 수 있다.
- 모델 학습 결과를 가져오려면 다음과 같이 진행한다.
- 모델의 예측이 완벽하면 손실은 0에 수렴한다.
SELECT
*
FROM
ML.TRAINING_INFO(MODEL `bqml_practice.penguins_model`)
- 생성된 모델을 클릭하면 다양한 탭이 나온다. Training 탭을 클릭하면 학습 데이터 LOSS와 실행결과가 같이 나오는 것을 확인할 수 있다.
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))
- 선형 회귀를 수행했기 때문에, 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"))
- 위 결과물을 테이블로 저장할 수 있다.
- CSV 파일, JSON 파일, Google Sheets 등으로 변환할 수 있다.
5단계 예측 데이터 시각화
- 예측 데이터를 시각화를 하기 위해 Data Studio 를 연다.
- 데이터소스로 빅쿼리를 선택한 후, 아래와 같이 테이블을 선택할 수 있다.
- 시각화 차트를 활용하여 간단하게 작성하면 다음과 같다.
References
https://cloud.google.com/bigquery-ml/docs/linear-regression-tutorial