Notice
Recent Posts
Recent Comments
Link
«   2024/10   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
Archives
Today
Total
관리 메뉴

Super Coding Addict

210104 MON 수업 본문

Python활용 빅데이터전문가과정

210104 MON 수업

밍응애 2021. 1. 4. 18:01

* 데이터 홍수

- 이 속에서 가장 중요한 것은 양질의 '데이터'

- 데이터에서 유의미한 가치를 만드는 것이 과제이자, 앞으로의 큰 기회

 

* 빅테크 기업의 독주

 

* 데이터를 왜 인문학으로 바라보아야 하는 가?

 

* 빅데이터 시대

- 예쁘다의 순위 : 최근에 남성이 1,2,3위를 차지함... why? 여성 소비자들의 파워가 커졌다?!

- 결과가 정확하더라도... 항상 의심을 해볼 필요가 있다.

   팩트 뿐만 아니라 이면의 의미를 파악할 필요...

   ex) 수지가 예쁘다 --> 수지 외에도, 무역수지, 용인 수지 등등이 있을 수 있다...

   ===> 데이터 전처리의 중요성!

 

* 다섯가지 i from Bigdata

- Inspiration(영감의 원천)
- Intelligence(똑똑한)

- idea(아이디어)

- intersting(재미/흥미)

- insight(통찰력)

 

* 빅데이터란? 기존의 관리, 분석체계로는 감당할 수 없는 거대한 데이터의 집합

===> 비지니스적 정의 : 쌓아놓기만 하던 데이터를 재조명하여 그로부터 의미를 찾고 활용하고자 하는 비즈니스 전략

- 빅데이터의 종류와 범주 : Internal - External

- 기존에는 감에만 의존해 결정했다면, 이제는 Data Driven Decision Support/Making

   ==> 일하는 방식의 변화

- 데이터의 양면성 : 내 입맛에 맞게 데이터를 재단해버리는 문제

- 데이터 기반 의사결정은 의사결정의 패러다임의 변화이자, 조직의 의사결의 패러다임의 변화

   즉 분석뿐만 아니라 분석된 데이터를 어떻게 풀어나가느냐 [해석]

- 숫자로 이야기한다는 것이 주장을 더욱 설득력 있게 한다

 

* 빅데이터의 활용

- 오프라인에서 수집한 데이터들의 한계

- 온라인에서 수집한 데이터들 ex) 구글 애널리틱스, Heatmap Analysis

   ===> 내가 설계한 대로 사람들이 서비스를 이용하고 있는 지, 어떤 것이 허들이 되고 있는 지 등

 

* 예시 : 푸르지오 고민

- 인지된 니즈 <-> 인지되지 않은 니즈

- asking vs. listening, 빅데이터 분석은 listening...

- 빅데이터 분석은 다양한 차원에서 기존의 조사한계 보완(Big, Listening, Trend, Expandibility, Immediately, Sentiment, Accessibility) ==> IT'S ABLE

 

* 데이터 분석 설계 : 테이블 구조 ) 판다스

- demension : 문자열, 날짜 및 시간형 데이터

- metric : 숫자 데이터

===>데이터 전처리 과정 필요 (데이터를 쪼개고 나누는 과정, 시간 多)

- 데이타는 절대 깨끗하지 않으며, 분석 대부분의 시간을 전처리 단계에서 보내게 될 것이다...?

===>효과적인 데이터 전처리 방법을 찾아놓고, 이를 재활용할 필요

 

* 관점 확장의 중요성

- '관점'의 확장이 이해의 폭을 넓힌다

===>메타인지의 중요성

- 관점의 확장은 관찰력으로부터!

 

* 데이터 해석 접근법 - AB Test

- 정답은 Insight가 아닌 경우가 많다. 단순히 답을 가지고 안전하게만 갈 것이 아님

 

* 인과관계의 성립 조건

- 선후관계, 관련성, 의존성

 

* insight가 되려면?

- 상관관계만이 아니라, '인과관계'가 타당했을 때!

 

* 일반화의 오류를 조심할 것!

 

* 심슨의 역설

 

* 퍼센트 & 퍼센트포인트

 

* 확률의 함정

- 확률은 직관과 다를 수 있다

 

*Big Data Agenda - 1. 데이터 시각화 2.빅브라더 3. 데이터 개방화와 데이터 민주주의

 

* 데이터 시각화

- 동적 차트로 제공했을 때 정적 차트로 제공했을 때보다 데이터를 더 효과적으로 보여줄 수 있음

 

* 데이터 리터러시 향상!

- 차트 눈속임 간파하기

- 어떠한 의도에 의해 시각화를 하느냐에 따라 데이터를 왜곡/해석 할 수 있음

 

* 데이터 활용 역량

- 파이썬 외에도 종합적인 역량이 필요하다.

- 데이터 지향적 사고 : 탐구심, 호기심, 집요함, 의심, 양심

- Hard Skill [수집, 분석, 시각화] <-> Soft Skill

 

 


<< Spark 이해하기 >>

 

* Apache

- 오픈 소스 라이센스

 

* Apache Spark

- for 대용량 (작은용량은 파이썬으로 충분)

- 대용량 데이터 프로세싱을 하기 위한 엔진 (저장소가 아니라, 컴퓨팅 즉 연산을 하기 위한 엔진)

- 서버 여러 대로 묶여있음 (클러스터), 여러서버에서 동시에 작업ㅇ르 처리할 수 있게

- cf. 하둡 : 컴퓨팅엔진, 메모리에 올리지 X
- 인메모리 (내가 처리할 데이터 전체를 메모리에 올림)

- 서버 여러대를 묶어 처리할 수 있는 플랫폼

- 분산 메모리 기반(but 단일처럼 느껴짐) 분산 병렬 처리

- 배치, 대화형 쿼리, 스트리밍(ex-IoT센서데이터, GPS데이터), 머신러닝 지원하는 범용 엔진

- Scala 기반이지만 Java, Python, R로 점차 Api 개발중 

- 코어 + 패키지(파이썬 모듈처럼) 

- Apache Spark은 여러 개의 서버를 관리하기 위한 별도의 기능이 필요한데,

이를 Spark 자체가 하기도 함... --> 리소스 매니저 : Standalone Scheduler

cf. 별도의 오픈소스도 있음 : YARN, Mesos

 

* Python vs. PySpark

 

//Python

- HDFS에 저장된 데이터들 (GB ~ PB까지)

- 보통 비정형 데이터는 List(한건한건 처리), 정형 데이터는 DataFrame에 넣어두고 (List / DataFrame)

 

//PySpark -- 큰 데이터를 다룰 때, 로딩을 빨리하고 싶을 때

 

- RDD / DataFrame

- 로컬에서 돌렸던 작업을 원격에서 돌리게 됨

- 데이터를 분산해서 각각 서버1, 서버2, 서버3이 갖게 된다

- 코드가 네트웍을 타고 각각에 가서 거기서 돌게 되고, 그 결과를 로컬로 돌려줌

- 부하가 많이 걸리는 작업, CPU가 많이 필요한 작업들을 remote에 있는 서버 여러개를 묶어 처리

- 그러나 개발자는 나눠서 처리되는 걸 인지하지 않음. 마치 하나처럼 생각하고 작업.

- 이때 클러스터에서 코어와 메모리를 관리해주는 애들 - 아까 Standalone Schedular, YARN 등등

(개발자가 여러명이라면 그들에게 메모리를 할당해서...)

 

// 비교방법

- List vs. RDD

- DataFrame vs. DataFrame

- SQL vs. SQL

 

* 머신러닝 알고리즘

- 문자도 다 숫자로 바꿔줘야 하는 것!

- 자연어 --> 보통 100차원으로.

- Word2Vec을 많이 쓴다 (관계를 고려해서 좌표를 찍어준다) - PCA으로 차원축소

- MNIST 손글씨 숫자 분류

 

*옵티마이저가 있어서 내가 SQL문을 허접하게 짜도 정제화해주니까 이상한 코드로 짜느니 SQL로...

 

* 공식문서로 api문서 보는 게 책보다 빠르다

 

@ 결론

- 파이썬으로 충분하다

- 분석기능이나 머신러닝 알고리즘 등은 파이썬, R이 더 풍부

- 데이터량이 많아도 쪼개서 할 수 있다면 파이썬

- 데이터량을 쪼갤 수 없고 많다면 그때는 Spark~

- 첨엔 분석에 집중하고, 나중에 데이터량이 더 많아지는 때가 되면 분산환경으로... -> 스파크

- 한대에서 파이썬으로 다 할 수 있다면 굳이 스팤하지말고 한 대에서 병렬을 해라

- 한대를 처리 못하고 여러대로 처리해야 한다면 그걸 일반적으로 빅데이터라고 구분한다