DS2 Certi - jjin-choi/study_note GitHub Wiki
-
데이터의 유형
- 정성적 데이터
. 언어, 문자 등 형태와 형식이 정해져 있지 않아서 저장 검색 분석하는데 많은 비용 기술적 투자 수반 - 정량적 데이터
. 수치, 도형, 기호 등 데이터 양이 크게 증가하더라도 이를 관리하는 시스템에 저장 검색 분석 가능
- 정성적 데이터
-
지식의 유형
-
암묵적 지식
. 형태와 형식이 정해져 있지 않아 저장 검색 분석하는데 많은 비용, 기술적 투자 수반
. 사회적으로 중요하지만 다른 사람에게 공유되기 어려움
. 상호작용 : 공통화 내면화 -
형식적 지식
. 문서나 매뉴얼처럼 형상화된 지식
. 표출화, 연결화
-
-
DIKW 피라미드
- 데이터 (가공전 순수한 수치나 기호)
- 정보 (패턴을 인식하여 그 의미 부여)
- 지식 (상호 연결된 정보 패턴을 이해하여 예측)
- 지혜 (창의적 아이디어 도출)
-
정의
- (국내 저작권법) 소재를 체계적으로 배열 또는 구성한 편집물로 개별적으로 그 소재에 접근하거나 검색할 수 있도록 한 것
-
특징
-
통합된 데이터 (Integrated data)
. 동일한 내용의 데이터가 중복되지 않음 -
저장된 데이터 (Stored data)
. 컴퓨터가 접근할 수 있는 저장 매체에 저장되는 것 -
공용 데이터 (Shared data)
. 여러 사용자가 다른 목적으로 데이터를 공동으로 이용한다는 것 의미 -
변화하는 데이터 (Changeable data)
. 데이터 베이스에 저장된 내용은 곧 데이터 베이스의 현 시점에서의 상태 나타냄
. 이 상태는 새로운 데이터의 삽입, 삭제, 갱신으로 항상 변화하면서도 현재의 정확한 데이터를 유지해야함
-
-
활용
- OLTP (On-Line Transaction Processing) : 호스트 컴퓨터와 온라인으로 접속된 여러 단말 간의 처리 형태의 하나
- OLAP (On-Line Analytical Processing) : 데이터 조회 위주
- CRM ERP 등등
-
Doug Laney's 3V (Volume, Variety, Velocity)
-
본질적인 변화 4가지
- 사전 처리 → 사후 처리
. (사전 처리) 필요한 정보만 수집하고 필요하지 않는 정보는 모으지 않는 방식
. (사후 처리) 많은 데이터를 모으고 다양한 방식으로 조합해 숨은 정보를 추출 - 표본 조사 → 전수 조사
. (표본 조사) 통계 분석에 사용
. (전수 조사) 데이터 수집 비용 감소 및 클라우드 컴퓨팅 기술 발전으로 샘플링이 주지 못한 패턴 정보 제공 - 인과 관계 → 상관 관계
. (인과 관계) 회귀 분석을 많이 하였음.
. (상관 관계) 상관관계를 통해 특정 현상의 발생 가능성이 포착되고, 그에 상응하는 행동을 하도록 추천되는 일 : 상관분석의 패러독스 - 질 → 양
. (질) Garbage in, garbage out : 무가치한 데이터를 넣으면 무가치한 결과가 나온다고 생각
. (양) bias 된 data를 구분해 낼 수 있기 때문에 양적으로 많은 데이터가 더 중요하게 됨
- 사전 처리 → 사후 처리
-
활용 기본 테크닉
- 연관 규칙 분석, 유형 분석, 유전자 알고리즘, 기계 학습, 회귀 분석, 감정 분석, 소셜네트워크 분석
-
데이터 사이언스
- 데이터로부터 의미 있는 정보를 추출해내는 학문
- 구성 요소 : 분석 (수학, 확률모델, 머신러닝, 분석학 등등) IT (시그널 프로세싱, 프로그래밍, 등등) 비즈니스 분석 . Hard skill : 빅데이터에 대한 이론적 지식 및 분석 기술에 대한 숙련 . Soft skill : 비즈니스 분석 쪽. 통찰력 있는 분석에 상당히 중요
-
구조
- Data Warehouse (D.W) 데이터 축적
- Data Mart 필요한 데이터만 추출
-
ETL (Extraction, Transformation and Load)
- 다양한 데이터 원천으로부터 데이터를 추출 및 변환하여 필요에 의해 다른 곳으로 이동하는 것
- 기능 : 추출, 변형 (클렌징, 변환, 표준화 등), 적재
-
CDC (Change Data Capture)
- 데이터에 대한 변경을 식별해 데이터 전송/ 공유 등의 후속 처리를 자동화 하는 설계 기법
- push (source 에서 변경을 식별하고 대상 target 에 변경 데이터 적재)
- pull (target 에서 source 을 정기적으로 살펴보아 필요시 데이터를 다운로드)
-
EAI (Enterprise Application Integration)
- 기업 정보 시스템들의 데이터를 연계 및 통합하는 S/W 및 System 아키텍쳐
- 지역적으로 분리된 정보 시스템들 간의 데이터 동기화
- 협력사, 파트너, 고객과의 상호 협력 프로세스 연계
- 웹 서비스 등 인터넷 비즈니스를 위한 기본 토대 확립
-
처리 프로세스
- 데이터 소스 → 수집 → 저장 → 분석
-
대용량 분산 병렬 처리
- 하둡 (Hadoop) : 분산 병렬 처리의 업계 표준인 맵리듀스 (MapReduce) 시스템과 분산 파일 시스템인 HDFS (Hadoop Distributed File System) 를 핵심 구성 요소로 가지는 플랫폼 기술
-
데이터 연동
- 비정형 데이터의 분석을 위해서는 정형 데이터와 비정형 데이터의 연동이 필요
- 스쿱 (Sqoop) : 하둡 분산 파일 시스템 (HDFS) 과 데이터 베이스 간의 데이터 연동 솔루션
- 대용량 질의 기술
- 하둡 (Hadoop)
. 저비용으로 대용량 데이터를 저장하고 신속하게 처리 가능하지만 코딩이 필요
. 사용자에게 친숙한 SQL 이라는 query 기술을 이용한 'Hive' 등장 . 실시간 SQL 질의 분석 기술은 SQL on Hadoop (ex. APACHE drill, APACHE Tajo, Shark, Impala, HAWQ, presto ...)
- 하둡 (Hadoop)
-
MapReduce
-
구글에서 분산 병렬 컴퓨팅을 이용하여 대용량 데이터를 처리하기 위한 목적으로 제작한 SW 프레임워크
-
분할 정복 방식으로 대용량 데이터를 병렬로 처리할 수 있음
-
구글 MapReduce : 대용량 처리에 대한 복잡성을 추상화하였고 오직 핵심 기능 구현에만 집중하도록 제작 ( 찾아보기) https://static.googleusercontent.com/media/research.google.com/ko//archive/mapreduce-osdi04.pdf
-
아파치 MapReduce : Java 언어로 구현된 시스템 . 구성 요소 : 네임 노드 / 데이터 노드 / 잡 트래커 / 태스크 트래커로 구성 . 실행 단계 : Split → Map → Combine → Shuffle → Sort → Reduce (분산 병렬 컴퓨팅 실행)
-
-
분산 처리 기술
-
분산 파일 시스템 . Google File System (GFS) 여러개의 클라이언트, 하나의 마스터, 여러 개의 청크 서버로 구성 . Hadoop Distributed File System (HDFS) Block 단위로 나뉘어 여러 데이터 노드에 분산 복제 저장
-
데이터베이스 클러스터 . 하나의 데이터 베이스를 여러 개의 서버 상에 구축하는 것을 의미 . 파티셔닝 - 데이터 통합 - 클러스터링
-
NoSQL . Google bigtable, Amazon SimpleDB, HBase, Microsoft SSDS
-
-
클라우드 인프라 기술
-
동적으로 확장할 수 있는 가상화 자원들을 인터넷으로 서비스하는 기술 (ex. VMware, Xen, KVM 등 IaaS Infrastructure as a Service)
-
서버 가상화 . 물리적 서버와 운영체제 사이에 적절한 계층을 추가해서 서비를 사용하는 사용자에게 물리적인 자원은 숨기고 논리적 자원만 보여주는 기술
-
( 여기서부터 듣기 )
-
플랫폼 (OS) 운영 체제에 독립적이다.
-
컴파일러 (소스코드를 기계어로 먼저 번역. 해당 플랫폼에 최적화되어 프로그램을 실행)
- 실행 속도가 빠르고 한번의 많은 기억 장소 필요
- C, C++, 자바
-
인터프리터 (별도의 번역 과정 없이 소스 코드를 실행시점에 해석하여 컴퓨터가 처리할 수 있도록 함)
- 간단히 작성, 메모리가 적게 필요, 실행 속도가 느림
- 파이썬, 스칼라
-
객체 지향적 동적 타이핑 언어
- 객체 지향적 : 실행 순서가 아닌 단위 객체 중심
- 동적 타이핑 언어 : 실행하는 시점에 프로그램이 사용해야할 데이터에 대한 타입이 결정됨
- Log 남기기
- 프로그램 진행 상황에 따라 다른 level 의 log 를 출력함
- debug > info > warning > error > critical
import logging
logger = logging.getLogger("main")
stream_handler = logging.FileHandler("filename", mode="at", encoding="utf-8")
logger.addHandler(stream_handler)
logging.debug("DEBUG")
logging.info("INFO")
logging.warning("WARNING")
>>> WARNING:root:WARNING
logging.error("ERROR")
>>> ERROR:root:ERROR
logging.critical("CRITICAL")
>>> CRITICAL:root:CRITICAL
-
Data Handling ( Comma Separate Value )
-
ML Overview and Python ecosystem
-
Numpy & Pandas
-
Data Visualization
-
시계열 데이터 처리
-
데이터 전처리 실습