Super Coding Addict
210104 MON 수업 본문
* 데이터 홍수
- 이 속에서 가장 중요한 것은 양질의 '데이터'
- 데이터에서 유의미한 가치를 만드는 것이 과제이자, 앞으로의 큰 기회
* 빅테크 기업의 독주
* 데이터를 왜 인문학으로 바라보아야 하는 가?
* 빅데이터 시대
- 예쁘다의 순위 : 최근에 남성이 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~
- 첨엔 분석에 집중하고, 나중에 데이터량이 더 많아지는 때가 되면 분산환경으로... -> 스파크
- 한대에서 파이썬으로 다 할 수 있다면 굳이 스팤하지말고 한 대에서 병렬을 해라
- 한대를 처리 못하고 여러대로 처리해야 한다면 그걸 일반적으로 빅데이터라고 구분한다
'Python활용 빅데이터전문가과정' 카테고리의 다른 글
210111 MON - 파이썬 기본문법 (2) (0) | 2021.01.13 |
---|---|
210108 FRI 수업 - 파이썬 기본문법(1) (0) | 2021.01.10 |
210107 THU 수업 - MySQL문법(3) (0) | 2021.01.07 |
210106 WED 수업 - MySQL 문법(2) (0) | 2021.01.06 |
210105 TUE 수업 - MySQL 문법(1) (0) | 2021.01.05 |