700개 이상의 실습 및 과정 이용하기

BigQuery ML을 사용한 방문자 구매 예측

실습 1시간 universal_currency_alt 크레딧 5개 show_chart 입문
info 이 실습에는 학습을 지원하는 AI 도구가 통합되어 있을 수 있습니다.
700개 이상의 실습 및 과정 이용하기

개요

BigQuery 머신러닝(BigQuery ML)을 사용하면 BigQuery에서 SQL 쿼리를 사용하여 머신러닝 모델을 만들고 실행할 수 있습니다. BigQuery ML의 목표는 SQL 실무자가 기존 도구를 사용하여 모델을 빌드할 수 있도록 지원하여 머신러닝을 대중화하고 데이터 이동의 필요성을 제거하여 개발 속도를 향상시키는 것입니다.

BigQuery에는 Google Merchandise Store의 Google 애널리틱스 레코드 수백만 개가 포함된 전자상거래 데이터 세트가 로드되어 있습니다. 이번 실습에서는 이 데이터를 사용하여 방문자의 거래 여부를 예측하는 모델을 만듭니다.

학습할 내용

BigQuery에서 머신러닝 모델을 만들고, 평가하고, 사용하는 방법

필요한 항목

  • 브라우저(Chrome 또는 Firefox 등)
  • SQL 또는 BigQuery에 관한 기본 지식

설정 및 요건

각 실습에서는 정해진 기간 동안 새 Google Cloud 프로젝트와 리소스 집합이 무료로 제공됩니다.

  1. 시크릿 창을 사용하여 Qwiklabs에 로그인합니다.

  2. 실습 사용 가능 시간(예: 1:15:00)을 참고하여 해당 시간 내에 완료합니다.
    일시중지 기능은 없습니다. 필요한 경우 다시 시작할 수 있지만 처음부터 시작해야 합니다.

  3. 준비가 되면 실습 시작을 클릭합니다.

  4. 실습 사용자 인증 정보(사용자 이름비밀번호)를 기록해 두세요. Google Cloud Console에 로그인합니다.

  5. Google Console 열기를 클릭합니다.

  6. 다른 계정 사용을 클릭한 다음, 안내 메시지에 실습에 대한 사용자 인증 정보를 복사하여 붙여넣습니다.
    다른 사용자 인증 정보를 사용하는 경우 오류가 발생하거나 요금이 부과됩니다.

  7. 약관에 동의하고 리소스 복구 페이지를 건너뜁니다.

BigQuery 콘솔 열기

  1. Google Cloud 콘솔에서 탐색 메뉴 > BigQuery를 선택합니다.

Cloud Console의 BigQuery에 오신 것을 환영합니다라는 메시지 상자가 열립니다. 이 메시지 상자에서는 빠른 시작 가이드 링크 및 UI 업데이트 목록을 확인할 수 있습니다.

  1. 완료를 클릭합니다.

작업 1. 데이터 탐색

이 작업에서는 머신러닝 모델을 위한 공개 데이터 세트를 살펴보고 준비합니다. SQL 쿼리를 실행하여 Google 애널리틱스 데이터 샘플을 검사하고 결과를 training_data로 저장합니다.

이 실습에서 사용할 데이터는 공개 데이터이며 bigquery-public-data 프로젝트에 있습니다. 이 데이터의 샘플을 살펴보겠습니다.

  1. bqml_lab 데이터 세트가 있는지 확인하기 위해 qwiklabs-gcp-00-XXXXXXXXXX로 시작하는 Project_ID 왼쪽에 있는 화살표를 클릭합니다. bqml_lab 데이터 세트가 아래에 표시됩니다.

  2. + 아이콘을 클릭하여 새 SQL 쿼리를 만듭니다. BigQuery Studio에 새 탭이 표시됩니다.

쿼리 설명

  1. 제목 없는 쿼리 상자에 쿼리를 추가합니다.
SELECT IF(totals.transactions IS NULL, 0, 1) AS label, IFNULL(device.operatingSystem, "") AS os, device.isMobile AS is_mobile, IFNULL(geoNetwork.country, "") AS country, IFNULL(totals.pageviews, 0) AS pageviews FROM `bigquery-public-data.google_analytics_sample.ga_sessions_*` WHERE _TABLE_SUFFIX BETWEEN '20160801' AND '20170631' LIMIT 10000;
  1. 쿼리를 선택합니다.

  2. 쿼리 바로 왼쪽에 있는 Gemini Gemini Code Assist 버튼을 클릭합니다.

  3. 이 쿼리 설명을 클릭합니다.

  4. BigQuery Studio 오른쪽에 Gemini 대화상자가 열립니다.

  5. Gemini 창에 'Cloud 콘솔의 Gemini에 오신 것을 환영합니다'라는 메시지가 표시됩니다. 채팅 시작을 클릭합니다. 채팅창에서 아래와 같은 쿼리에 대한 설명을 볼 수 있습니다.

참고: 채팅 창에 설명이 표시되지 않는 경우 전체 쿼리를 선택한 후 이 쿼리 설명을 다시 클릭하세요.
  1. 설명을 검토합니다.
참고: Gemini Code Assist는 생성형 도구이므로 응답이 매번 약간씩 다를 수 있지만 핵심 내용은 비슷해야 합니다.
  1. Gemini가 다음과 비슷한 대답을 반환합니다.

    This GoogleSQL query is designed to extract a sample of Google Analytics session data and transform it into a format suitable for machine learning or analytical purposes.
  2. 실행을 클릭합니다.

  3. 저장을 클릭한 다음 뷰 저장을 선택합니다.

  4. 뷰 저장 대화상자에서 데이터 세트를 클릭하고 bqml_lab을 선택합니다.

  5. 테이블에 training_data를 입력한 후 저장을 클릭합니다.

내 진행 상황 확인하기를 클릭하여 목표를 확인합니다. 뷰 테이블 만들기

작업 2. 모델 만들기

이 작업에서는 BigQuery에서 SQL 쿼리 자연어 프롬프트를 사용하여 방문자 거래를 예측하는 새로운 머신러닝 모델을 생성합니다. 로지스틱 회귀 모델 유형을 지정하고 기존 training_data를 사용하여 학습시킵니다.

  1. + 아이콘을 클릭하여 새 SQL 쿼리를 만듭니다. BigQuery Studio에 새 탭이 표시됩니다.

  2. SQL 생성 도구 아이콘을 클릭하여 SQL 생성 도구에 액세스합니다. 'Gemini로 SQL 생성하기' 대화상자가 표시됩니다. 이 창에 자연어 프롬프트를 입력하여 새 SQL 문을 생성할 수 있습니다.

  3. 아래 프롬프트를 복사하여 붙여넣습니다.

    Create a model name sample_model, type logistic_reg to predict whether a visitor will make a transaction using the training_data view table.
  4. 생성을 클릭합니다. Gemini는 다음과 유사한 SQL 쿼리를 추천합니다.

    CREATE MODEL `{{{project_0.project_id|set at lab start}}}`.`bqml_lab`.`sample_model` OPTIONS ( model_type = 'LOGISTIC_REG', input_label_cols = ['label']) AS SELECT label, os, is_mobile, country, pageviews FROM `{{{project_0.project_id|set at lab start}}}`.`bqml_lab`.`training_data`;
참고: 생성된 쿼리 때문에 오류 메시지가 표시되는 경우 쿼리 문법을 조정하거나 제공된 예시와 일치하도록 전체 쿼리를 변경하세요.
  1. 삽입을 클릭합니다.

  2. 실행을 클릭합니다.

이 경우 bqml_lab이 데이터 세트의 이름이고 sample_model이 모델의 이름이며 training_data가 이전 작업에서 살펴본 거래 데이터입니다. 지정된 모델 유형은 바이너리 로지스틱 회귀입니다.

CREATE MODEL 명령어를 실행하면 비동기적으로 실행되는 쿼리 작업을 만들어 BigQuery UI 창을 닫거나 새로고침하는 등의 작업을 수행할 수 있습니다.

내 진행 상황 확인하기를 클릭하여 목표를 확인합니다. 모델 만들기

[선택사항] 모델 정보 및 학습 통계

자세히 살펴보고 싶은 경우 왼쪽 메뉴에서 bqml_lab 데이터 세트를 클릭한 후 UI에서 sample_model 데이터 세트를 클릭하면 모델에 관한 정보를 가져올 수 있습니다. 세부정보에서 몇 가지 기본적인 모델 정보와 모델을 만드는 데 사용된 학습 옵션을 확인할 수 있습니다. 학습에 다음과 비슷한 테이블이 표시됩니다.

반복, 데이터 손실, 학습률, 완료 시간에 관한 데이터 행 11개와 열 6개가 있는 테이블

작업 3. 모델 평가

이 작업에서는 ML.EVALUATE 함수를 사용하여 머신러닝 모델의 성능을 평가합니다. 이를 통해 모델이 방문자 거래를 얼마나 정확하게 예측하는지 보여주는 주요 측정항목을 확인할 수 있습니다.

  1. + 아이콘을 클릭하여 새 SQL 쿼리를 만듭니다. BigQuery Studio에 새 탭이 표시됩니다.

  2. SQL 생성 도구 아이콘을 클릭하여 SQL 생성 도구에 액세스합니다. 'Gemini로 SQL 생성하기' 대화상자가 표시됩니다. 이 창에 자연어 프롬프트를 입력하여 새 SQL 문을 생성할 수 있습니다.

  3. 아래 프롬프트를 복사하여 붙여넣습니다.

    Write a query to evaluate the performance of the model `bqml_lab.sample_model` using the `ml.EVALUATE` function.
  4. 생성을 클릭합니다. Gemini는 다음과 유사한 SQL 쿼리를 추천합니다.

    SELECT * FROM ML.EVALUATE( MODEL `{{{project_0.project_id|set at lab start}}}`.`bqml_lab`.`sample_model`, TABLE `{{{project_0.project_id|set at lab start}}}`.`bqml_lab`.`training_data`);
참고: 생성된 쿼리 때문에 오류 메시지가 표시되는 경우 쿼리 문법을 조정하거나 제공된 예시와 일치하도록 전체 쿼리를 변경하세요.
  1. 삽입을 클릭합니다.

  2. 실행을 클릭합니다.

다음과 비슷한 테이블이 표시됩니다.

결과 테이블

작업 4. 모델 사용

이 작업에서는 BigQuery의 ML.PREDICT 함수를 사용하여 예측하는 방법을 알아봅니다. 하지만 먼저 잘못된 함수를 사용하는 쿼리를 디버그해야 합니다. Gemini를 사용하여 문법 오류를 식별하고 수정한 다음, 쿼리를 실행하여 상위 구매 국가 10개를 예측합니다.

  1. + 아이콘을 클릭하여 새 SQL 쿼리를 만들고 아래 쿼리를 실행합니다.
SELECT IF(totals.transactions IS NULL, 0, 1) AS label, IFNULL(device.operatingSystem, "") AS os, device.isMobile AS is_mobile, IFNULL(geoNetwork.country, "") AS country, IFNULL(totals.pageviews, 0) AS pageviews, fullVisitorId FROM `bigquery-public-data.google_analytics_sample.ga_sessions_*` WHERE _TABLE_SUFFIX BETWEEN '20170701' AND '20170801';

쿼리의 SELECTFROM 부분이 학습 데이터를 생성할 때 사용된 것과 유사함을 알 수 있습니다. 추가된 fullVisitorId 열은 개별 사용자의 거래를 예측하는 데 사용됩니다. WHERE 부분은 기간(2017년 7월 1일~8월 1일)의 변화를 반영합니다.

  1. 모델을 사용해 예측하는 다음 단계에서 사용할 수 있도록 이 7월 데이터를 저장하겠습니다.

  2. 저장을 클릭한 다음 뷰 저장을 선택합니다.

  3. 뷰 저장 대화상자에서 데이터 세트를 클릭하고 bqml_lab을 선택합니다.

  4. 테이블에 july_data를 입력한 후 저장을 클릭합니다.

국가/지역별 구매 예측

이 쿼리를 사용해 국가 또는 지역별 방문자의 거래 수를 예측해 보고, 결과를 정렬하고, 구매 건수 기준 상위 10개 항목을 선택해 보겠습니다.

  1. + 아이콘을 클릭하여 새 SQL 쿼리를 만듭니다.

  2. 아래 쿼리를 복사하여 붙여넣습니다.

SELECT country, TOTAL(predicted_label) as total_predicted_purchases FROM ml.PREDICT(MODEL `bqml_lab.sample_model`, ( SELECT * FROM `bqml_lab.july_data`)) GROUP BY country ORDER BY total_predicted_purchases DESC LIMIT 10;
  1. 실행을 클릭합니다. 쿼리가 실행되지 않으며 다음 오류가 표시됩니다.

    함수를 찾을 수 없음: [3:3]의 TOTAL

Gemini로 코드 디버그 및 오류 해결

  1. BigQuery에서 Gemini 채팅 창을 클릭합니다.

  2. 채팅 창에 다음 질문을 복사하여 붙여넣습니다.

    Why am I getting "Function not found: TOTAL at [3:3]" when I run this query?
  3. <SHIFT><ENTER>(Mac에서는 <SHIFT><return>) 키를 눌러 채팅 창에 새 줄을 생성합니다.

  4. 쿼리를 선택하고 복사합니다.

  5. 쿼리를 질문 바로 뒤에 붙여넣습니다.

  6. <SHIFT><ENTER>(Mac에서는 <SHIFT><return>) 키를 눌러 채팅 창에 새 줄을 생성합니다.

  7. 아래 문장을 복사하여 붙여넣습니다.

    Please suggest new code to resolve any issues.
  8. 프롬프트 전송 프롬프트 전송을 클릭합니다. Gemini가 대답합니다.

  9. 대답에서 추천을 검토합니다. 이러한 추천에 따르면 TOTAL()은 BigQuery에서 유효한 SQL 집계 함수가 아닙니다.

Gemini의 추천에는 아래와 같이 가능한 솔루션과 함께 미세 조정된 쿼리가 포함됩니다.

SELECT country, SUM(predicted_label) as total_predicted_purchases FROM ml.PREDICT(MODEL `bqml_lab.sample_model`, ( SELECT * FROM `bqml_lab.july_data`)) GROUP BY country ORDER BY total_predicted_purchases DESC LIMIT 10;
  1. 미세 조정된 쿼리를 복사합니다.

  2. + 아이콘을 클릭하여 새 SQL 쿼리를 만듭니다.

  3. 새로운 '제목 없는 쿼리' 탭에 미세 조정된 쿼리를 붙여넣습니다.

  4. 실행을 클릭합니다.

이 쿼리에서는 ml.PREDICT를 사용하며 쿼리의 BigQuery ML 부분이 표준 SQL 명령어로 래핑되었습니다. 이 실습에서는 국가 및 각 국가의 구매 건수 합계가 중요하므로 SELECT, GROUP BY, ORDER BY를 사용했습니다. LIMIT는 상위 10개 결과만 얻기 위해 사용한 것입니다.

다음과 비슷한 테이블이 표시됩니다.

국가별 총 예측 구매 건수에 관한 데이터 행 10개와 열 3개가 있는 테이블

내 진행 상황 확인하기를 클릭하여 목표를 확인합니다. 오류를 수정하고 국가별 상위 구매 항목 10개 가져오기

도전 과제

사용자별 구매 예측

이번에는 각 방문자가 수행할 거래 수를 예측해 보고, 결과를 정렬하고, 거래 수 기준 상위 10명의 방문자를 선택합니다.

실습 종료하기

실습을 완료하면 실습 종료를 클릭합니다. Google Cloud Skills Boost에서 사용된 리소스를 자동으로 삭제하고 계정을 지웁니다.

실습 경험을 평가할 수 있습니다. 해당하는 별표 수를 선택하고 의견을 입력한 후 제출을 클릭합니다.

별점의 의미는 다음과 같습니다.

  • 별표 1개 = 매우 불만족
  • 별표 2개 = 불만족
  • 별표 3개 = 중간
  • 별표 4개 = 만족
  • 별표 5개 = 매우 만족

의견을 제공하고 싶지 않다면 대화상자를 닫으면 됩니다.

의견이나 제안 또는 수정할 사항이 있다면 지원 탭을 사용하세요.

Copyright 2020 Google LLC All rights reserved. Google 및 Google 로고는 Google LLC의 상표입니다. 기타 모든 회사명 및 제품명은 해당 업체의 상표일 수 있습니다.

시작하기 전에

  1. 실습에서는 정해진 기간 동안 Google Cloud 프로젝트와 리소스를 만듭니다.
  2. 실습에는 시간 제한이 있으며 일시중지 기능이 없습니다. 실습을 종료하면 처음부터 다시 시작해야 합니다.
  3. 화면 왼쪽 상단에서 실습 시작을 클릭하여 시작합니다.

시크릿 브라우징 사용

  1. 실습에 입력한 사용자 이름비밀번호를 복사합니다.
  2. 비공개 모드에서 콘솔 열기를 클릭합니다.

콘솔에 로그인

    실습 사용자 인증 정보를 사용하여
  1. 로그인합니다. 다른 사용자 인증 정보를 사용하면 오류가 발생하거나 요금이 부과될 수 있습니다.
  2. 약관에 동의하고 리소스 복구 페이지를 건너뜁니다.
  3. 실습을 완료했거나 다시 시작하려고 하는 경우가 아니면 실습 종료를 클릭하지 마세요. 이 버튼을 클릭하면 작업 내용이 지워지고 프로젝트가 삭제됩니다.

현재 이 콘텐츠를 이용할 수 없습니다

이용할 수 있게 되면 이메일로 알려드리겠습니다.

감사합니다

이용할 수 있게 되면 이메일로 알려드리겠습니다.

한 번에 실습 1개만 가능

모든 기존 실습을 종료하고 이 실습을 시작할지 확인하세요.

시크릿 브라우징을 사용하여 실습 실행하기

이 실습을 실행하려면 시크릿 모드 또는 시크릿 브라우저 창을 사용하세요. 개인 계정과 학생 계정 간의 충돌로 개인 계정에 추가 요금이 발생하는 일을 방지해 줍니다.