본문 바로가기
Cloud/Google Cloud Study Jam

Bayes Classifier on Dataproc

by 사향낭 2022. 5. 8.
 

Bayes Classifier on Dataproc | Qwiklabs

Bayes Classifier on Cloud Dataproc

www.qwiklabs.com

 

 

이번 lab에서는 비행기의 연착 가능성에 따라 미팅을 취소할 것인지 아닌지를 추천하는 two-variable Bayesian classifier을 만들어 볼 것이다.

 

Batch processing, querying, streaming, machine learning에 오픈소스 데이터 툴들을 이용할 수 있도록 하는 관리형 Spark 및 Hadoop service인 Dataproc을 함께 사용할 것이다.

 

 

 

1. Create a Dataproc Cluster

 

Google Cloud Console로 들어가 로그인하자.

 

Navigation menu -> Compute Engine -> VM Instances

 

 

startup-vm에 SSH를 클릭하여 접속

 

 

connect 클릭

 

이번 랩을 위한 repository를 clone하고 repo 안의 06_dataproc로 현재 폴더를 바꾸기

 

 

환경변수 설정

 

 

clone해온 shell script 하나를 실행시켜 cloud Dataproc cluster 생성

 

 

 

2. Quantization using Spark SQL

 

출발 지연 시간과 비행 거리 두 변수를 이용하여 statistical model을 만들 것이다.

 

 

JupyterLab on Dataproc

 

Navigation menu -> Dataproc

 

 

바로 보이는 cluster를 클릭하여 Cluster details로 들어가기

 

 

WEB INTERFACES -> JupyterLab

 

 

Launch dialog에서 Notebook -> Python 3 클릭

 

 

Setup environment variable

 

환경변수 설정을 위해 셀에 다음과 같이 입력 후 실행

(Shift-Enter 를 누르면 현재 셀을 실행하고 다음 셀로 넘어간다)

 

 

Exploration using BigQuery

 

기본적인 data science 툴들과 Google Bigquery API client library를 import하고 Bigquery client object를 생성한다.

 

 

client에 query를 넘겨 data를 pandas의 dataframe 형태로 받아온다.

 

 

seaborn을 이용하여 받아온 data를 그래프로 시각화한다.

 

 

Start a Spark Session

 

Spark session을 생성한다.

 

 

bucket에서 JSON 파일들을 읽어온다

 

 

temporary view 생성

 

 

flights view를 이용한 query문 예시

 

 

Restrict to train days

 

training days data를 CSV 파일형태로 만들어 bucket 안에 복사

 

 

traindays.csv 파일로부터 traindays dataframe 생성

 

 

SQL join operation을 이용해 flights dataframe이 training days에 해당하는 data만 가지도록 설정

 

 

flights data를 이용하여 그래프 그려보기

 

 

distance, departure delay에 따라 data distribution이 uniform한 threshold 계산

 

 

 

 

3. Bayes classification

 

위에서 구한 threshold를 이용하여 distance와 departure delay를 quantization하고 이에 따른 ontime possibility를 계산해보자.

 

 

departure delay가 길어지는 어느 시점부터 제시간에 도착할 확률이 확연히 줄어드는 것을 확인할 수 있다.

 

우리는 도착할 가능성이 70%가 되는 departure delay의 threshold를 찾으려고 한다.

 

따라서 departure delay를 조금 더 나누어 적절한 threshold를 찾아보자.

 

 

제 시간에 도착할 확률이 0.7에 제일 가까운 distance threshold를 구하자.

 

 

만약 departure delay가 거리에 따른 threshold보다 더 높다면 비행기의 연착 가능성이 높을 것이다.

 

계산한 bayes table을 CSV 파일로 bucket에 저장한다.

 

 

 

4. Evaluate the model

 

 

학습한 모델을 평가해보자.

 

 

나름 잘 학습된 것도 같다.

 

 

5. Delete the dataproc cluster

 

 

startup-vm VM terminal로 돌아가서 dataproc cluster을 제거해주자.

 

댓글