본문 바로가기
혼자공부

패스트캠퍼스) 빅데이터 분석 첫걸음 시작하기 : 데이터 분석 - 학습일지 1주차

by 쁑쁑쓰 2022. 8. 8.
728x90
반응형
빅데이터 분석 첫걸음 시작하기_1주차_데이터사이언스 기초(1)_데이터 사이언스란?

 

CH01 - 01 Job Description으로 살펴보는 Data Science

데이터 사이언티스트란?

데이터를 관리하고 분석하여 비즈니스 문제를 해결하기 위한

다양한 기술 및 도메인 기반 기술을 필요로 하는 직업입니다.

일부 수학자, 비즈니스 분석가 및 일부 컴퓨터 과학자가 포함된다.

위의 개념이 확정된 개념은 아니지만 지속적으로 발전하고 있다.

 

최근 들어서 데이터 사이언티스트에 대한 공고들이 많이 늘고 있으며

구글, 네이버, 타다 등등 여러 기업에서도 많은 데이터 사이언티스트를 찾고 있다.

뿐만 아니라 회사 마다 원하는 조건들이 정해져있기 때문에 다 확인해보는게 좋다.

 

 

CH01 - 02 데이터 사이언스 기초 용어

선형대수학

벡터 ? 숫자의 나열, 숫자들의 묶음이라고 한다. 

 

- 벡터의 연산 : 각자의 위치에 따라 더하고, 빼고, 나뉘어진다.

ex) x = [1, 2, 3] , y = [ 4, 3, 1]

x + y = (5, 5, 4) // x - y = (-3, -1, 2) // 3 * x = (3, 6, 9)

- 벡터의 특징 : 원소값, 방향을 의미한다.

- 벡터의 차원 : 원소의 갯수이다.

- 벡터의 크기(norm) : 벡터의 모든 원소를 제곱하고 다 더한 뒤, 루트를 씌운 값

                                  즉, 원점과의 거리를 의미한다.(L2 norm)

- 벡터 공간(Ventor Space) : 벡터가 정의되는 집합, 연산, 차원, 기저(basis)(= C축),...

 

통계

기술통계량 : 데이터에서 측정할 수 있는 요약된 수치값들.

- 평균 : 모든 데이터 값을 더한 다음 갯수로 나눈 값을 의미한다.

- 분산 : 데이터의 퍼진 정도를 의미한다. 각 데이터에서 평균을 뺀 값을 제곱해서

            다 더한 뒤 데이터 갯수로 나눈 값을 말한다.

- 표준편차 : 분산의 양의 제곱근을 말한다.

- 중앙값 : 오름차순으로 정렬 했을 때 한 가운데에 있는 값을 의미한다.

                ex) 1 2 3 4 5 -> 3 // 1 2 3 4 6 12 -> 3.5

- 최빈값 : 데이터 중에서 가장 많이 등장한 횟수를 의미한다.

- 사분위수 : 오름차순으로 정렬해서 4등분한 지점을 의미한다. 25% , 50% , 75%

 

추론통계량 : 모집단에 대해서 예측한 수치값들.

- 모집단 : 우리가 알고 싶은 대상을 말한다.

- 표본집단 : 모집단에 대상이 될 것 같은 데이터의 일부를 의미한다.

- 표본평균 : 표본집단의 평균.

- 표본분산 : 표본집단의 분산.

- 추정(estimation) : 표본 집단을 통해서 모집단의 정보들을 예측하는 행위를 의미한다.

- 가절 검정(testing hypothesis) : 추정할 때 가정하는 명제가 맞는지 틀렸는지를 확인하는 작업을 말한다.

 

정보 이론(information theory) : 정보라는 대상에 대해서 다루는 학문을 의미한다.

- Bit : 0 또는 1

- Byte : 8 bits = 1B

- KB, MB, GB, TB, PB

- entropy(엔트로피)

- 데이터 (data)

- 정보 (information)

 

 

 CH01 - 03 데이터 분석 레포트

데이터 분석 레포트? 분석 결과를 설명하는 문서를 말한다. 분석한 내용들을 잘 정리하고

공유하는 것도 매우 중요하다. 이런 레포트는 대시보드(웹), 눈문, 블로그로 공유된다.

 

 

CH01 - 04 모델링

모델링(Modeling) - 수학/통계적인 방법을 이용하여 데이터를 해석하는 과정이다.

이런 모델링의 근본적인 개념은 수학적인 모델과 통계적인 모델의 개념에서 나온다.

주로 통계적인 모델링과 머신러닝 방법이 주로 사용된다.

 

수학적 모델 (Mathematical Model) - https://en.wikipedia.org/wiki/Mathematical_model

- 수학적 개념과 언어를 사용하는 시스템이다.

수학적 모델을 개발하는 프로세스를 수학적 모델링이라고 한다.

수학적 모델은 자연 과학 및 공학 분야, 사회 과학과 같은 비물리적 시스템에서 사용된다.

 

 

Mathematical model - Wikipedia

From Wikipedia, the free encyclopedia Jump to navigation Jump to search Description of a system using mathematical concepts and language A mathematical model is a description of a system using mathematical concepts and language. The process of developing a

en.wikipedia.org

 

통계적 모델 (Statistical Model) - https://en.wikipedia.org/wiki/Statistical_model

- 샘플 데이터 생성과 관련된 일련의 통계적 가정을 구현하는 수학적 모델이다.

 통계 보델은 이상적인 형태로 데이터 생성 프로세스를 나타낸다.

 

Statistical model - Wikipedia

From Wikipedia, the free encyclopedia Jump to navigation Jump to search Type of mathematical model A statistical model is a mathematical model that embodies a set of statistical assumptions concerning the generation of sample data (and similar data from a

en.wikipedia.org

 

머신러닝(Machin Learning) 의 종류

지도 학습(Supervised Learning) / 비지도 학습(Unsupervised Learning) / 강화학습(Reinforcement Learning)

 

지도 학습(Supervised Learning) - 레이블된 데이터로 학습, 미래 데이터를 예측

                                                       지도 학습은 분류(classification), 회귀(regression)으로 나뉜다.

                                                       classification은 필기체 인식, 스팸 메일 분류시에 사용한다.

                                                       regression은 주가 예측 시에 사용한다.

비지도 학습(Unsupervised Learning) - 레이블 없이 학습, 데이터의 숨겨진 구조/ 특징 발견

                                                         클러스터링(clustering)은 마케팅 고객 그룹화에 사용한다.

강화학습(Reinforcement Learning) - 보안 시스템으로 학습, 의사결정을 위한 최적의 액션 선택

 

 

CH02 - 01 Job Description으로 살펴보는 Data Engineering

Data Engineering ? 빅데이터를 수집, 가공, 젖아하는 모든 시스템을 구축/관리하는 과정이다.

데이터 엔지니어링을 딱 떨어지게 정의할 수는 없다. 뿐만 아니라 새로 생겨나고 진화하는 

직무라서 회사마다 정의하는 업무도 다르고 개인별로 상상하는 바도 다르다고한다.

 

데이터 엔지니어에게 필요한 역량들은 Hadoop Ecosystem, Spark/ Hive, 대용량 데이터 처리 경험,

python, C++, java, Scala 등등 그 외에 다른 역량들이 필요했다. 그 중에서 특히 대용량 데이터를

효과적으로 처리하는 역량을 가장 중요하게 생각한다.

 

 

CH02 - 02 데이터 엔지니어링 기초 용어

Computing Resource : 데이터를 처리하기 위해서 필요한 능력 

                                     ex) CPU, 메인 메모리, 스토리지 등등

Network : 컴퓨터가 특정 시스템을 통해서 연결되어 있는 구조이며, 컴퓨터들이 서로 통신을 해서

                 데이터를 주고 받을 수 있다.

DataBase : 데이터를 효율적으로 운영/관리/저장하는 시스템.

 

 

CH02 - 03 Data Pipeline

 

Extract : 데이터 원본 소스로부터 가져오는 작업이다

Transform : 추출한 데이터를 분석에 필요한 형태로 변환시켜준다.

Load : Transform한 데이터를 Data Warehouse에 저장한다.

 

ETL-Process-for-linkedin3-1024x535.png (1024×535) (rivery.io)

 

 

ETL : Extract, Transform, Load 의 약자로 데이터 소스로부터 데이터를 수집 및 처리하는데

         사용되는 파이프라인이다.

 

장점

- 자원(데이터 보관 인프라)의 효율적 사용가능

- Compliance 이슈 해결

- ETL은 매우 오랜 시간 동안 기업들이 사용하면서 수 많은 기능들이 추가되고 성능이 향상됨에 따라

  ETK 도구를 매우 쉽고 효율적으로 활용가능하게 되었다.

 

단점

- Disk 기반의 성능 문제로 속도가 느리다.

- 잦은 관리가 필요하다.

- 높은 수정 비용이 필요하다.

 

 

https://www.bing.com/newtabredir?url=https%3A%2F%2Frivery.io%2Fblog%2Fetl-vs-elt-whats-the-difference%2F

 

 

ELT : Extract, Load, Transform의 약자로 Transform이 일어나는 위치만 ETL과 다른 데이터 파이프라인이다.

 

 

장점

- 빠른 데이터 전송

- 낮은 데이터 처리비용

- 낮은 운영비용

- 높은 유연성

 

단점

- 과도한 일반화

- Compliance 이슈 ( ETL에서는 해결가능하지만, 반대로 ELT 에서는 문제가 될 수 있다)

- 조회 속도(latency) 가 늦다.

 

 

CH02 - 04. Hadoop Ecosystem

Hadoop ? High Availability Distributed Object-Oriented Platform 의 약자로 대용량 데이터를

                분산처리할 수 있는 Java 기반 프레임워크이다.

                즉, 대용량 데이터를 효과적으로 처리하는 것을 목적으로 하는 많은 소프트웨어들이 함께있는 플랫폼이다.

 

               Hadoop 은 HDFS 파일처리 시스템, YARN이라는 리소스 관리 시스템, MapReduce 라는 대용량 처리 시스템을

                 기반으로 하는 프레임워크이다.

 

HDFS (Hadoop Distributed File System)

하둡 분산 파일 시스템(HDFS)은 다수의 리눅스 서버에 설치되어 운영되며, 뛰어난 확장성으로 페타바이트 이상의 대용량 데이터 저장 공간을 확보할 수 있다. 또한, 여러 대의 서버가 동시에 데이터를 분산 처리하여 대규모 데이터 처리에 있어 빠른 속도를 보장한다. 특히, 리눅스 장비를 사용함으로써 고가의 장비를 사용하는 관계형 데이터베이스 관리 시스템(RDBMS)에 비해 시스템 구축비용이 저렴하다. 저가의 장비 사용으로 인한 데이터 유실 및 저장 실패 등의 문제는 그림2와 같이 데이터를 다양한 노드(서버)에 분산 저장하여 해결한다.

출처 : [네이버 지식백과] HDFS [Hadoop Distributed File System] (국립중앙과학관 - 빅데이터)

ARN (Yet Another Resource Negotiator)

하둡의 맵리듀스 처리 부분을 새롭게 만든 자원 관리 플랫폼이다. 즉, Hadoop에서 처리되는 모든 리소스를 관리해주는 시스템이며, 어떤 요청이 어떤 클러스터에 할당되어야 하는지 관리한다. Resource Manager의 요청을 수행하는 역할디ㅏ.

 

MapReduce

데이터를 분산처리하는 방법 중에 하나이다. 임의의 순서로 정렬된 데이터를 분산 처리하고 이를 다시 합치는 과정을 거친다.

 

 

CH02 - 05 Cloud Computing

Cloud Computing?  사용자에 필요에 따라 Computing Resource를 할당해주는 시스템이다. 할당을 해주는 서버가 네트워크/서비스를 통해서 제공해주는 시스템이다.

 

현재는 대클라우드 시대로 컴퓨터를 빌려쓰는 시대에 살게 되었다. 그래서 이런 클라우드를 사용한 만큼 요금을 지불한다.

IT 대기업들이 서비스를 제공하고 있다.

 

ex) Amazon web service, Google cloud platform, microsoft azure 등등이 있다.

728x90
반응형