58
입입입입 입입입입입입 입입입 ~

Apache Spark 입문에서 머신러닝까지

Embed Size (px)

Citation preview

Page 1: Apache Spark 입문에서 머신러닝까지

입문에서 머신러닝까지 한방에 ~

Page 2: Apache Spark 입문에서 머신러닝까지

HELLO WORLD(VER. SPARK USING SCALA)

NOTHING MORE OR NOTHING LESS

GOAL

Page 3: Apache Spark 입문에서 머신러닝까지

NOTE (IF YOU ARE A SCALA NEWBIE)

• SCALA CRASH COURSE

• 스칼라 학교

Page 4: Apache Spark 입문에서 머신러닝까지

• PART 1 – 초간단 SPARK 소개• PART 2 – 머신러닝 입문 WITH SPARK

INTRO

Page 5: Apache Spark 입문에서 머신러닝까지

PART 1

Page 6: Apache Spark 입문에서 머신러닝까지

APACHE SPARK – WHO R U?

Page 7: Apache Spark 입문에서 머신러닝까지
Page 8: Apache Spark 입문에서 머신러닝까지

SPARK OVERVIEW

Page 9: Apache Spark 입문에서 머신러닝까지

SPARK INSTALLATION (FOR BEGINNER)1. JAVA SDK INSTALL

2. 스파크 노트북 (HTTP://SPARK-NOTEBOOK.IO/)

3. 자신이 원하는 버전을 다운4. 다운로드한 파일을 압축 해재5. 노트북 실행 ./BIN/SPARK-NOTEBOOK.BAT

Page 10: Apache Spark 입문에서 머신러닝까지

THAT EASY???

Page 11: Apache Spark 입문에서 머신러닝까지

NOTE – APACHE ZEPPELINE

Page 12: Apache Spark 입문에서 머신러닝까지

SPARK NOTEBOOKDEMO

(COMPARE WITH REPL)

Page 13: Apache Spark 입문에서 머신러닝까지

SPARK APPLICATION

Reference: http://spark.apache.org/docs/latest/cluster-overview.html

Page 14: Apache Spark 입문에서 머신러닝까지

SPARK TERMS

• APPLICATION – DRIVER PROGRAM + EXECUTORS• DRIVER PROGRAM – 프로그래밍 언어의 MAIN 함수 (시작점 )• SPARKCONTEXT – 어떻게 클러스터에 접근할 수 있는지 알려주는 OBJECT (SPARKCONF 를 필요 )

Page 15: Apache Spark 입문에서 머신러닝까지

SPARK TERMS• CLUSTER MANAGER – 클러스터에서 필요한 자원을 찾아줌• WORKER NODE – 실제 작업을 수행하는 노드• EXECUTOR – TASK 를 수행하는 PROCESS• TASK – EXECUTOR 에 할당 되는 작업의 단위• JOB – 사용자 입장에서의 작업의 단위 (TASK 의 조합 )

Page 16: Apache Spark 입문에서 머신러닝까지

DATA LOADDEMO

Page 17: Apache Spark 입문에서 머신러닝까지

RDD• RESILIENT DISTRIBUTED DATASETS• RDD == IMMUTABLE COLLECTION(ABSTRACTION)

+ PARALLEL PROCESSING + FAULT TOLERANT

Page 18: Apache Spark 입문에서 머신러닝까지

RDDReference: https://dzone.com/articles/big-data-processing-spark

Page 19: Apache Spark 입문에서 머신러닝까지

RDD – MUST KNOW THINGOPERATION TYPE (2 TYPE)

• TRANSFORMATION• 데이터를 내가 원하는 모양으로 조각하는 것• TRANSFORMATION 의 결과는 RDD• LAZY..!!

Page 20: Apache Spark 입문에서 머신러닝까지

RDD – MUST KNOW THINGOPERATION TYPE (TRANSFORMATION OR ACTION)

• ACTION• 조작한 데이터를 바탕으로 결과를 얻음• ACTION 의 결과는 VALUE• TRIGGER..!!

Page 21: Apache Spark 입문에서 머신러닝까지

RDD (PROS & CONS)PROS• TYPE SAFETY – COMPILE TIME

• LOW LEVEL == FINE TUNING(IF YOU ARE EXPERT OR GURU)

Page 22: Apache Spark 입문에서 머신러닝까지

RDD (PROS & CONS)CONS• HOW > WHAT• CANNOT BE OPTIMIZED BY SPARK

• SLOW (NON-JVM)

Page 23: Apache Spark 입문에서 머신러닝까지

RDD OPERATIONDEMO

Page 24: Apache Spark 입문에서 머신러닝까지

DATA FRAME (NEW KIDS ON THE BLOCK)

Reference: http://www.slideshare.net/databricks/2015-0616-spark-summit

Page 25: Apache Spark 입문에서 머신러닝까지

DATAFRAME (PROS & CONS)

PROS• WHAT(SQL) > HOW • OPTIMIZED BY SPARK

Page 26: Apache Spark 입문에서 머신러닝까지

DATAFRAME (OPTIMIZATION)

Reference: http://www.slideshare.net/databricks/spark-sqlsse2015public

Page 27: Apache Spark 입문에서 머신러닝까지

DATAFRAME (OPTIMIZATION)

Reference: http://www.slideshare.net/databricks/spark-sqlsse2015public

Page 28: Apache Spark 입문에서 머신러닝까지

DATAFRAME (PROS & CONS)

CONS• LOST TYPE SAFETY

Page 29: Apache Spark 입문에서 머신러닝까지

DATAFRAMEDEMO

Page 30: Apache Spark 입문에서 머신러닝까지

DATASET

Page 31: Apache Spark 입문에서 머신러닝까지

DATASET

Page 32: Apache Spark 입문에서 머신러닝까지

DATASET

Page 33: Apache Spark 입문에서 머신러닝까지

DATASET• BACKSTREET BOYS 의 등장• DATASET 은 DATAFRAME 의 확장팩• 다시 돌아온 TAPE SAFTY• SPARK OPTIMIZATION

Page 34: Apache Spark 입문에서 머신러닝까지

PART 1 - SUMMARY

• RDD (BASE)• DATAFRAME (CURRENT)• DATASET (FUTURE – VERY NEAR..!!)

Page 35: Apache Spark 입문에서 머신러닝까지

PART 2

Page 36: Apache Spark 입문에서 머신러닝까지

PART 2 - INTRO• 대학교 때 머신러닝이나 AI 수업도 들었다• 커뮤니티에서 추천하는 각종 책도 읽었다• CORSERA, EDX 와 같은 MOOC 머신러닝 코스도 공부했다

Page 37: Apache Spark 입문에서 머신러닝까지

그런데 왜 ?

어떻게 시작해야 할지 아직도 잘 모르겠는 걸까 ?

Page 38: Apache Spark 입문에서 머신러닝까지

공부한 자료들이 전부 BOTTOM UP

실습ML 이론

선형대수 , 통계 , 프로그래밍

Page 39: Apache Spark 입문에서 머신러닝까지

• 이론의 “중요성”은 인지했습니다만 , 일단 돌아가는 걸 보고 싶어요 !!!

• 우리 ( 개발자 ) 는 뭐가 뭔지 몰라도 HELLO WORLD 부터 화면에 출력하고 설명해야 합니다 .

• 개발자의 브레인 모델은 타이핑을 하면 정보 습득량이 두배가 되도록 오랜 기간 트레이닝 되어 있습니다 .

Page 40: Apache Spark 입문에서 머신러닝까지

TOP DOWN APPROCH

Hello World 부터 타이핑하고 시작하자

Page 41: Apache Spark 입문에서 머신러닝까지

DATA SCIENCE PROCESS

Page 42: Apache Spark 입문에서 머신러닝까지

• 타이타닉 생존 예측 프로젝트 목표• 데이터 살펴보기데이터 이해• 타이타닉 데이터데이터 준비• ML 알고리즘 선택과 트레이닝 실행모델링• 테스트 데이터를 사용해서 모델 평가평가• 캐글에 올리기배포

Page 43: Apache Spark 입문에서 머신러닝까지

목표 – 생존 예측일단 75% 확률을 목표BINARY PREDICTION

• 머신 러닝의 HELLO WORLD

Page 44: Apache Spark 입문에서 머신러닝까지

데이터 이해• PASSENGERID – UNIQUE KEY (FEATURE 아님 ) FOR

KAGGLE• SURVIVAL – 정답 (LABEL)• PCLASS – 승객 등급 (1 – 일등석 , 2 – 이등석 3 – 이코노미 )• NAME – 승객 이름• SEX – 성별• AGE – 나이

Reference: https://www.kaggle.com/c/titanic/data

Page 45: Apache Spark 입문에서 머신러닝까지

데이터 이해 ( 계속 )• SIBSB – 같이 탑승한 형제 / 자매 / 배우자의 수• PARCH – 같이 타승한 부모 / 자식 수• TICKET – 티켓 번호• FARE – 티켓 요금• CABIN – 객실 번호• EMBARKED – 탑승 항구

(C = 쉘브르 , Q = 퀸즈타운 , S = 사우스햄튼 )Reference: https://www.kaggle.com/c/titanic/data

Page 46: Apache Spark 입문에서 머신러닝까지

데이터 준비• NA 값을 처리• TRAIN 과 TEST 데이터의 NA 가 다르게 분포

할 수 도 있음을 고려 (FOR KAGGLE)

Page 47: Apache Spark 입문에서 머신러닝까지

모델링• SPARK FEATURE 는 반드시 DOUBLE 타입

• ORG.APACHE.SPARK.ML.FEATURE.STRINGINDEXER• CATEGORY DATA

• ORG.APACHE.SPARK.ML.FEATURE.BUCKETIZER• FEATURE 선택

• ORG.APACHE.SPARK.ML.FEATURE.VECTORASSEMBLER

Page 48: Apache Spark 입문에서 머신러닝까지

모델링 ( 계속 )

• NORMALIZATIONORG.APACHE.SPARK.ML.FEATURE.NORMALIZER

• 어떤 ML 알고리즘을 선택할까 ? CHEAT SHEET• ORG.APACHE.SPARK.ML.CLASSIFICATION.LOGISTIC

REGRESSION

Page 49: Apache Spark 입문에서 머신러닝까지

SPARK PIPELINE CONCEPT

Page 50: Apache Spark 입문에서 머신러닝까지

SPARK PIPELINE (EASY)

ML Workflow 라고 생각하자Workflow 안에 두 단계 존재- 파이프를 변형 ( 모델 )- 파이프를 통해 결과 획득

Page 51: Apache Spark 입문에서 머신러닝까지

SPARK PIPELINE (EASY) 계속1 단계 - 파이프를 생성 IMPORT ORG.APACHE.SPARK.ML.PIPELINE VAL PIPELINE = NEW PIPELINE()

.SETSTAGES(ARRAY(FAREBUCKET, SEXINDEXER, ASSEMBLER, NORMALIZER, LOGREG)

Page 52: Apache Spark 입문에서 머신러닝까지

SPARK PIPELINE (EASY) 계속2 단계 – 모델을 생성 VAR MODEL = PIPELINE.FIT(TRAINDATA)

TrainingData

맞춤형 파이프 라인 (Model)

Page 53: Apache Spark 입문에서 머신러닝까지

SPARK PIPELINE (EASY) 계속3 단계 – 예측 결과 획득 VAL RESULT = MODEL.TRANSFORM(TESTDATA)

TestData

Model Result

Page 54: Apache Spark 입문에서 머신러닝까지

평가결과 VS 정답OVER 75% ?

동영상 소개Reference: https://en.wikipedia.org/wiki/Receiver_operating_characteristic

Page 55: Apache Spark 입문에서 머신러닝까지

배포

KAGGLE UPLOADDEMO

Page 57: Apache Spark 입문에서 머신러닝까지

PART 2 - SUMMARY

• BINARY PREDICTION 이 ML 시작을 위한 좋은 시작점• SPARK ML 어렵지 않아요 !

Page 58: Apache Spark 입문에서 머신러닝까지