이번 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을 제거해주자.
'Cloud > Google Cloud Study Jam' 카테고리의 다른 글
Dataflow: Qwik Start - Python (0) | 2022.06.16 |
---|---|
Dataprep: Qwik Start (0) | 2022.06.03 |
Speech to Text Transcription with the Cloud Speech API (0) | 2022.03.28 |
Entity and Sentiment Analysis with the Natural Language API (0) | 2022.03.28 |
Cloud Natural Language API: Qwik Start (0) | 2022.03.28 |
댓글