Upload
donam-kim
View
1.946
Download
7
Embed Size (px)
Citation preview
입문에서 머신러닝까지 한방에 ~
HELLO WORLD(VER. SPARK USING SCALA)
NOTHING MORE OR NOTHING LESS
GOAL
NOTE (IF YOU ARE A SCALA NEWBIE)
• SCALA CRASH COURSE
• 스칼라 학교
• PART 1 – 초간단 SPARK 소개• PART 2 – 머신러닝 입문 WITH SPARK
INTRO
PART 1
APACHE SPARK – WHO R U?
SPARK OVERVIEW
SPARK INSTALLATION (FOR BEGINNER)1. JAVA SDK INSTALL
2. 스파크 노트북 (HTTP://SPARK-NOTEBOOK.IO/)
3. 자신이 원하는 버전을 다운4. 다운로드한 파일을 압축 해재5. 노트북 실행 ./BIN/SPARK-NOTEBOOK.BAT
THAT EASY???
NOTE – APACHE ZEPPELINE
SPARK NOTEBOOKDEMO
(COMPARE WITH REPL)
SPARK APPLICATION
Reference: http://spark.apache.org/docs/latest/cluster-overview.html
SPARK TERMS
• APPLICATION – DRIVER PROGRAM + EXECUTORS• DRIVER PROGRAM – 프로그래밍 언어의 MAIN 함수 (시작점 )• SPARKCONTEXT – 어떻게 클러스터에 접근할 수 있는지 알려주는 OBJECT (SPARKCONF 를 필요 )
SPARK TERMS• CLUSTER MANAGER – 클러스터에서 필요한 자원을 찾아줌• WORKER NODE – 실제 작업을 수행하는 노드• EXECUTOR – TASK 를 수행하는 PROCESS• TASK – EXECUTOR 에 할당 되는 작업의 단위• JOB – 사용자 입장에서의 작업의 단위 (TASK 의 조합 )
DATA LOADDEMO
RDD• RESILIENT DISTRIBUTED DATASETS• RDD == IMMUTABLE COLLECTION(ABSTRACTION)
+ PARALLEL PROCESSING + FAULT TOLERANT
RDDReference: https://dzone.com/articles/big-data-processing-spark
RDD – MUST KNOW THINGOPERATION TYPE (2 TYPE)
• TRANSFORMATION• 데이터를 내가 원하는 모양으로 조각하는 것• TRANSFORMATION 의 결과는 RDD• LAZY..!!
RDD – MUST KNOW THINGOPERATION TYPE (TRANSFORMATION OR ACTION)
• ACTION• 조작한 데이터를 바탕으로 결과를 얻음• ACTION 의 결과는 VALUE• TRIGGER..!!
RDD (PROS & CONS)PROS• TYPE SAFETY – COMPILE TIME
• LOW LEVEL == FINE TUNING(IF YOU ARE EXPERT OR GURU)
RDD (PROS & CONS)CONS• HOW > WHAT• CANNOT BE OPTIMIZED BY SPARK
• SLOW (NON-JVM)
RDD OPERATIONDEMO
DATA FRAME (NEW KIDS ON THE BLOCK)
Reference: http://www.slideshare.net/databricks/2015-0616-spark-summit
DATAFRAME (PROS & CONS)
PROS• WHAT(SQL) > HOW • OPTIMIZED BY SPARK
DATAFRAME (OPTIMIZATION)
Reference: http://www.slideshare.net/databricks/spark-sqlsse2015public
DATAFRAME (OPTIMIZATION)
Reference: http://www.slideshare.net/databricks/spark-sqlsse2015public
DATAFRAME (PROS & CONS)
CONS• LOST TYPE SAFETY
DATAFRAMEDEMO
DATASET
DATASET
DATASET
DATASET• BACKSTREET BOYS 의 등장• DATASET 은 DATAFRAME 의 확장팩• 다시 돌아온 TAPE SAFTY• SPARK OPTIMIZATION
PART 1 - SUMMARY
• RDD (BASE)• DATAFRAME (CURRENT)• DATASET (FUTURE – VERY NEAR..!!)
PART 2
PART 2 - INTRO• 대학교 때 머신러닝이나 AI 수업도 들었다• 커뮤니티에서 추천하는 각종 책도 읽었다• CORSERA, EDX 와 같은 MOOC 머신러닝 코스도 공부했다
그런데 왜 ?
어떻게 시작해야 할지 아직도 잘 모르겠는 걸까 ?
공부한 자료들이 전부 BOTTOM UP
실습ML 이론
선형대수 , 통계 , 프로그래밍
• 이론의 “중요성”은 인지했습니다만 , 일단 돌아가는 걸 보고 싶어요 !!!
• 우리 ( 개발자 ) 는 뭐가 뭔지 몰라도 HELLO WORLD 부터 화면에 출력하고 설명해야 합니다 .
• 개발자의 브레인 모델은 타이핑을 하면 정보 습득량이 두배가 되도록 오랜 기간 트레이닝 되어 있습니다 .
TOP DOWN APPROCH
Hello World 부터 타이핑하고 시작하자
DATA SCIENCE PROCESS
• 타이타닉 생존 예측 프로젝트 목표• 데이터 살펴보기데이터 이해• 타이타닉 데이터데이터 준비• ML 알고리즘 선택과 트레이닝 실행모델링• 테스트 데이터를 사용해서 모델 평가평가• 캐글에 올리기배포
목표 – 생존 예측일단 75% 확률을 목표BINARY PREDICTION
• 머신 러닝의 HELLO WORLD
데이터 이해• PASSENGERID – UNIQUE KEY (FEATURE 아님 ) FOR
KAGGLE• SURVIVAL – 정답 (LABEL)• PCLASS – 승객 등급 (1 – 일등석 , 2 – 이등석 3 – 이코노미 )• NAME – 승객 이름• SEX – 성별• AGE – 나이
Reference: https://www.kaggle.com/c/titanic/data
데이터 이해 ( 계속 )• SIBSB – 같이 탑승한 형제 / 자매 / 배우자의 수• PARCH – 같이 타승한 부모 / 자식 수• TICKET – 티켓 번호• FARE – 티켓 요금• CABIN – 객실 번호• EMBARKED – 탑승 항구
(C = 쉘브르 , Q = 퀸즈타운 , S = 사우스햄튼 )Reference: https://www.kaggle.com/c/titanic/data
데이터 준비• NA 값을 처리• TRAIN 과 TEST 데이터의 NA 가 다르게 분포
할 수 도 있음을 고려 (FOR KAGGLE)
모델링• SPARK FEATURE 는 반드시 DOUBLE 타입
• ORG.APACHE.SPARK.ML.FEATURE.STRINGINDEXER• CATEGORY DATA
• ORG.APACHE.SPARK.ML.FEATURE.BUCKETIZER• FEATURE 선택
• ORG.APACHE.SPARK.ML.FEATURE.VECTORASSEMBLER
모델링 ( 계속 )
• NORMALIZATIONORG.APACHE.SPARK.ML.FEATURE.NORMALIZER
• 어떤 ML 알고리즘을 선택할까 ? CHEAT SHEET• ORG.APACHE.SPARK.ML.CLASSIFICATION.LOGISTIC
REGRESSION
SPARK PIPELINE CONCEPT
SPARK PIPELINE (EASY)
ML Workflow 라고 생각하자Workflow 안에 두 단계 존재- 파이프를 변형 ( 모델 )- 파이프를 통해 결과 획득
SPARK PIPELINE (EASY) 계속1 단계 - 파이프를 생성 IMPORT ORG.APACHE.SPARK.ML.PIPELINE VAL PIPELINE = NEW PIPELINE()
.SETSTAGES(ARRAY(FAREBUCKET, SEXINDEXER, ASSEMBLER, NORMALIZER, LOGREG)
SPARK PIPELINE (EASY) 계속2 단계 – 모델을 생성 VAR MODEL = PIPELINE.FIT(TRAINDATA)
TrainingData
맞춤형 파이프 라인 (Model)
SPARK PIPELINE (EASY) 계속3 단계 – 예측 결과 획득 VAL RESULT = MODEL.TRANSFORM(TESTDATA)
TestData
Model Result
평가결과 VS 정답OVER 75% ?
동영상 소개Reference: https://en.wikipedia.org/wiki/Receiver_operating_characteristic
배포
KAGGLE UPLOADDEMO
NOTE – RECOMMENDED NEXT STAGE
HOUSE PRICE PREDICTION
PART 2 - SUMMARY
• BINARY PREDICTION 이 ML 시작을 위한 좋은 시작점• SPARK ML 어렵지 않아요 !