-
다양한 키워드
- 빅데이터
- 인공지능
- 4차 산업혁명
- 데이터 사이언스
-
‘데이터 과학’과 ‘인공지능’이 일자리를 위협한다?
- 데이터 과학을 통해 나의 업무를 변화시키고, 새로운 기회를 찾을 수 있을까?
-
데이터 과학을 활용한 사례: CT 사진을 이용한 암 진단
- 인공지능을 활용하지 않고, 진단 전문의가 CT 사진을 통해 암진단을 내림
- 인공지능이 인간이 제대로 판단하지 못한 암세포를 정확히 판단해냄(CNN 정확도 98%)
- 기존 진단 방법의 문제 : 전문의 육성에 큰 자원이 들어간다.
Data science is an inter-disciplinary field that uses scientific methods, processes, algorithms and systems to extract knowledge and insights from many structural and unstructured data
-
데이터 과학은 데이터로부터 지식과 인사이트를 찾는 융합 분야다.
- 이미 데이터 과학이란 용어가 나오기 전부터 데이터로부터 지식과 인사이트를 찾아왔다.
-
데이터 기반의 의사결정 예시
- 프로모션 진행 여부 결정하기
- 경험 : 감 / 데이터 : 매출 기록, 이전 프로모션 결과분석 등
- 프로모션 진행 결과를 분석해보면 프로모션을 진행하면 판매량이 급증하지만, 점차 판매량이 감소하며, 프로모션을 반복할수록 판매량의 증가분은 감소한다.
- 프로모션 진행 여부 결정하기
-
데이터 과학이 뜬 이유
- 새로운 종류의 데이터의 폭발적인 유입
- 사람의 지적능력으로 판단하기 어려울 만큼 다양한 데이터가 수집된다.
- 다양한 분야에서 IT 기술과 접목
- 새로운 종류의 데이터의 폭발적인 유입
컴퓨터를 활용해서, 데이터를 분석하고, 현실의 문제를 해결하는 활동
- A : IT 프로그래밍
- A & B : 머신러닝
- A & C : 소프트웨어/IT 시스템 개발
- B : 수학 & 통계학
- B & C : 전통적 통계분석
- C : 업무와 산업에 특화된 지식/전문성(도메인 지식)
- A & B & C : 데이터 과학
- 설명적 분석(Descriptive Analytics) : What happened?
- 예측적 분석(Predictive Analytics) : What will happen?
- 처방적 분석(Prescriptive Analytics) : How can we make it happen?
===
컴퓨터가 데이터로부터 시행착오를 통해 학습할 수 있도록 프로그래밍을 통하여 패턴을 찾는 활동입니다.
- 통계분석과 머신러닝은 공통점
- 입력값 (input value)을 받아 예측값 (output value)과 참값 (true value)을 도출하는 점에서
- 통계분석과 머신러닝의 차이점 (추론vs예측)
- 통계분석은 중간과정을 해부하는데 관심을 가진다(추론)
- 함수 자체의 모양을 정확히 만드는 것
- 머신러닝은 예측값과 참값의 차이를 줄이는데 관심을 가진다(예측)
- 예측값을 정확히 만들어내는 것이 중요
- 예측값과 참값이 다른 훈련의 시행착오를 통해서 정확한 예측값을 도출하는 것
- 통계분석은 중간과정을 해부하는데 관심을 가진다(추론)
-
전통적인 접근 방법
- 문제 파악, 문제 정의 -> 인간이 규칙 작성 -> 평가 -> 서비스 도입
- 평가 후 에러 확인/문제에 새로이 반영
-
전통적 접근 방법의 한계
- 문제점
-
- “만약에~, 다음과 같이 실행~”이 너무 많다
-
- 이전과 다른 새로운 상황/데이터의 등장
-
- 인간의 지적 능력으로는 파악하기 어려운 상황/데이터의 등장(텍스트, 이미지, 음성, 영상 등)
-
- 문제점
-
머신러닝 접근 방법
- 문제 파악, 문제 정의 -> 머신러닝 모델 학습 -> 평가 -> 서비스 도입 -> 데이터 업데이트 -> 머신러닝 모델 학습 -> ...(자동화)
- 평가 후 에러 확인/문제에 새로이 반영
===
데이터 과학 : 컴퓨터를 활용해서, 데이터를 분석하고, 현실의 문제를 해결하는 활동
머신러닝 : 컴퓨터가 데이터로부터 시행착오를 통해 학습할 수 있도록 프로그래밍을 통하여 패턴을 찾는 활동입니다.
-
컴퓨터 활용(프로그래머) + 데이터 분석(데이터 애널리스트) + 현실의 문제(전문가, 컨설턴트)
세가지 분야를 모두 활용해서 문제를 해결하는 사람은 데이터 과학자라고 한다. -
데이터 과학자에게 요구되는 Skill Set
- 논리적 사고, 숫자기반 사고능력은 기반이 되어야한다
- 도메인 지식(업무와 산업에 특화된 전문성) : 문제와 결단을 판단할 지식이 있어야한다.
- 비즈니스 이해/지식
- Collaborative
- 데이터에 대한 호기심
- 전략적 사고/기획력
- 문제 해결능력
- Proactive/Creativity
- 수학&통계학 지식 : Data Analysis 지식이 있어야 분석이 가능하다
- 연구 계획(Experiment design)
- ML
- Statistical modeling
- 베이지안 추론
- 선형대수, 미적분
- Supervised Learning(지도학습), Unsupervised Learning(비지도학습)
- Optimization(최적화)
- 프로그래밍 지식 : 컴퓨터로 이를 구현할 수 있어야한다
- CS 지식
- 프로그래밍 언어(Python, R 등)
- DB (SQL, NoSQL, DBMS 등)
- Relational Algebra
- 병렬 처리 컴퓨팅
- MapReduce 개념
- Hadoop / Hive / Pig
- AWS 등 클라우드 컴퓨팅 사용 경험
- 커뮤니케이션 능력
- 상급자, 팀원과 원활한 의사소통 능력
- 스토리텔링 능력
- 데이터기반 인사이트를 의사결정에 활용하는 능력
- ppt, doc 등 문서작성 능력
- 시각화(Visualiztion)
- 발표/설득력
-
비전공자를 위한 출발 지점
- 업무 전문성에서 시작해서 프로그래밍과 수학/통계학을 각각 학습하기보다 머신러닝을 학습하기
- 프로그래밍 능력은 엔지니어가 해야할 일의 어느정도 수준만 갖추기
- 프로그래밍을 전공했다면 수학/통계학과 ML을 공부하고 업무 전문성을 갖추기
- 수학이 너무 두렵다면?
- 수학은 데이터를 처리하는 방법과 머신러닝을 위해 사용할 알고리즘을 가장 논리적으로, 가장 오류없는 방식으로 소통하기 위한 도구.
- 예를 들어 평균제곱오차란 참값과 예측값 간의 차이인 오차를 제곱한 것의 평균을 구한 값, 이를 식으로 바꾸면 오류없이 가장 정확한 소통 방법이다.
- 수학자나 통계학자가 되란 것이 아니다! 지식은 도구일 뿐이다.
- 업무 전문성에서 시작해서 프로그래밍과 수학/통계학을 각각 학습하기보다 머신러닝을 학습하기
모든 것을 다 갖춘 데이터 과학자는 유니콘, 상상속의 존재이다.
그래서 팀으로 활동한다.
- 프로그래밍 스킬도, 수학&통계학 지식도 부족하다면 비즈니스 실무자와 IT 엔지니어 사이의 데이터 과학자가 되면 된다. 비즈니스와 기술의 가교역활 (시각화 등을 통해서)
- 데이터 과학자에게 도메인 지식의 중요성
- SNS에 대한 지식 없이, SNS 데이터 분석을 시작할 수 없다. (SNS 마케팅을 위한 분석 요구를 받음)
- 도메인 지식 없이 데이터 분석 결과를 바탕으로 AB테스트를 계획하고 수행할 수 있을까?
- 엔지니어와 통계학자를 설득해서 어떻게 테스트를 구성하고 진행할지 역할이 분명히 존재한다.
- 데이터 과학자는 어디에 가장 많은 시간을 사용할까?
- 데이터 정제 60 %
- 데이터 셋 수집 19%
- 패턴탐색 9%
데이터 셋 수집과 정제는 수작업으로 시간이 많이 들어가는 작업이다.
- 문제파악,문제정의
- 데이터 준비
- 모델 구축 & 분석 (패턴 찾기)
- 결과 공유
- 모니터링
-
- 문제파악 및 문제정의
-
- 비즈니스 문제 파악
-
- 머신러닝 문제로 전환
-
- 머신러닝 도입 필요성/가능성 체크(비용 대비 효율, 불가능 여부, 반드시 필요한가)
-
- 도입에 따른 효과검증 설계
-
- 데이터 준비
-
- 가능한 다양하고 많은 데이터 확보
-
- 머신러닝을 도입할 시스템 설계(엔지니어 영역)
-
- 데이터 전처리(정제) (Data Preprocessing)
-
- 탐색적 데이터 분석 (Exploratory Data Analysis) (특징, 패턴)
-
- 피쳐 엔지니어링 (Feature Engineering)
-
- 학습, 검증, 테스트 데이터셋 생성
-
- 머신러닝 모델 구축 & 분석
-
- 사용할 모델/알고리즘 선택
-
- 실무적 제약사항 고려
-
- 하이퍼파라미터 설정
-
- 모델 학습
-
- 결과 공유
- A. 코드 배포 (Productionize)
- B. 보고서 작성, 결과정리 및 발표 (커뮤니케이션 영역)
-
- 모니터링
-
- 모델의 성능을 지속적으로 tracking
-
- 효과검증 결과 tracking
-
- 지속적인 유지·보수 계획/실행
- 문제파악,문제정의
- 데이터 준비
- 모델 구축 & 분석 (패턴 찾기)
- 결과 공유
- 모니터링
- 1~5번 사이의 과정이 수없이 되돌아가면서 반복한다. 엄청난 시행착오를 겪는다.
- 원하는 결과를 얻지 못할 가능성이 50%보다 높다.
-
Excel : MS는 궁극적으로 Excel을 데이터 분석 도구로 만들고자 한다. but 데이터 사이즈가 크면 쓰기 어렵다, 원하는 알고리즘을 사용할 수 있을만큼 유연성이 충분하지 않다.
- 쿼리로부터 데이터 가져오기
- 데이터 정렬
- 데이터 내 중복 제거
- 데이터 통합
- 가상 분석
- 피봇 테이블
-
Python R
-
Python
- 목적: 프로그램 개발
- 주사용자: 프로그램 개발자
- 컴퓨터 프로그래밍 언어 중에서는 쉬움
- Python으로 데이터 분석을 사용하기 위해서는 많은 자료를 배워야 함, tools(라이브러리)
- 데이터 과학과 관련된 코드들이 Python으로 구현된 경우가 많음
-
R
- 목적: 데이터 분석, 통계 분석
- 주사용자: 연구자
- 초기에는 배우는 데에 어려움이 있으나 익숙해지면 쉬움
- R에는 기본적으로 매트릭스 유형과 기본 그래픽이 내장되어 있음
- 통계적 정확성에 있어서 월등히 좋고, 시각화에 탁월함
-
WARNING: “Python은 배우기 쉬워요”라는 말에 속으시면 안 됩니다. Python은 C언어나 JavaScript를 배운 경험이 있는 분에게 쉽습니다.
-
데이터 과학이 컴퓨터 전공자를 위주로 발전해왔다. 따라서 많은 데이터 과학, 머신러닝 관련 자료가 Python을 기반으로 되어있다. 관련 자료의 입지는 Python이 R보다 훨씬 훨등하다.
-
Python 머신러닝 Tool Box
- IPython
- Jupyter
- Numpy(연산)
- Scipy(복잡한 연산)
- Pandas(Matrix)
- Scikit learn(ML)
- matplotlib(visualiztion)
- Tensorflow(Deep learning)
- Pytorch
- Keras 등