2022. 12. 14. 01:30 수정 및 복습 시작
데이터 과학
데이터 과학은 필수적이다. 4차 산업혁명 시대로 진입하며 빅데이터, 사물 인터넷, 인공지능 등 핵심 기술의 중심에 데이터가 있다.
21세기의 원유는 즉 데이터다. 전통적인 방식으로 데이터를 수집하고 저장하는데 한계가 있다.
현대 데이터는 방대한 규모와 다양한 형태가 존재한다.
단순히 데이터를 분류하고 검색하는 것을 넘어, 방대한 양의 데이터 속에 숨겨진 규칙과 패턴을 찾아내 문제 해결에 활용하고 미래의 일을 예측하여 미리 준비하기를 우리는 원하고 있다.
이 말은 다양해진 데이터 활용에 대한 요구가 늘어난다는 것이다.
데이터 과학의 개념은 데이터를 수집한 후 분석을 통해 데이터를 정확히 이해함으로써 그 속에 숨겨진 새로운 지식을 발견하고, 이를 문제 해결에 활용하는 모든 과정의 활동을 의미한다.
데이터 생성, 수집, 저장, 분석, 표현의 모든 과정과 연관된다.
활동을 지원하는 수단이나 기술도 포함한다. 데이터 과학의 목표는 수집된 데이터로부터 가공된 정보를 거쳐 지식과 지혜를 추출하는 것이다.
다음은 DIKW 계층 구조이다. 아래 이미지와 같다.
- 데이터: 관찰하거나 측정하여 수집한 사실이나 값을 데이터라고 부른다.
- 정보: 상황에 대한 이해를 바탕으로 데이터를 목적에 맞게 가공한 것이다.
- 지식: 규칙이나 패턴을 통해 찾아낸 의미 있고 유용한 정보다.
- 지혜: 지식에 통찰력을 더해 새롭고 창의적인 아이디어를 도출한 것이다.
데이터 과학의 특징
- 컴퓨터 과학, 통계학, 적용 분야에 대한 이해를 필요로 하는 복합적인 기술이다.
- 드류 콘웨이의 데이터 과학 벤다이어그램이 있다.
- 데이터 과학의 전문인력은 컴퓨터과학과 통계학 분야의 기술을 보유하고 있다.
- 데이터 과학을 적용으로 하는 대상은 꼭 빅데이터일 필요는 없으나 축적된 데이터는 필요하다.
빅데이터
- 빅데이터의 개념은 좁은 정의로는 기존 데이터베이스가 저장하고 관리할 수 있는 범위를 넘어서는 대규모의 다양한 데이터다.
- 넓은 정의는 대규모 데이터를 저장 및 관리하는 기술과 가치 있는 정보를 만들기 위해 분석하는 기술까지 포함한다.
- 빅데이터의 사례로는 아마존의 고객 소비 성향 파악, 구글의 검색 조건 분석, 페이스북의 맞춤형 정보 제공 등이 있다.
- 빅데이터는 정치 분야에서 여론 조사에서도 사용된다.
빅데이터 특징
빅데이터의 특징은 3V라고 한다. 속도와 데이터양과 다양성이다.
- 데이터양은 테라바이트 단위 이상의 대량 데이터다. 여러 경로를 통해 계속 생성되고 있는 많은 양의 데이터를 의미한다.
- 속도는 데이터의 수집과 분석을 정해진 시간 내에 처리하는 것에 대한 것이다. 많은 양의 데이터가 생성되고 전달되는 속도가 빠르므로 수집 및 분석 작업도 실시간으로 진행되어야 한다.
- 다양성은 데이터의 형태가 다양하다는 것이다. 정형, 반정형, 비정형 같은 다양한 형태의 데이터를 모두 포함한다.
빅데이터를 양적 측면의 대규모 데이터를 넘어서 질적 측면의 다양한 형태를 포함하는 대규모 데이터로 이해해야 한다.
빅데이터의 유형은 오디오, 사진, 리포트, 웹, DB, SMS 등 정말 다양하다.
빅데이터의 기술
빅데이터의 기술은 크게 저장 기술, 분석 기술, 표현 기술로 나뉜다.
저장 기술
- 하둡: 대용량 데이터를 분산 처리할 수 있는 자바 기반의 오픈 소스 프레임워크다.
분산 파일 시스템인 HDFS에 데이터를 저장하고, 분산 처리 시스템인 맵리듀스를 이용해 데이터를 처리한다.
오픈 소스이기 때문에 기존 데이터베이스 시스템보다 비용이 적게 들고, 여러 대의 서버에 데이터를 분산해서 저장해두기 때문에 처리 속도가 빠르다. - NOSQL: 관계 데이터 모델과 SQL을 사용하지 않는 데이터베이스 시스템이다.
일관성보다는 가용성과 확장성에 중심을 두고 있다.
비정형 데이터의 저장을 위해 유연한 데이터 모델을 지원하고, 관계 데이터베이스의 동일한 데이터 처리가 가능하면서도 더 저렴한 비용으로 분산 처리와 병렬 처리가 가능하다.
분석 기술
- 텍스트 마이닝: 반정형 또는 비정형 텍스트에서 자연어 처리 기술로 정보를 추출하고 가공한다.
- 오피니언 마이닝: SNS, 블로그, 게시판 등에 기록된 사용자들의 의견을 수집하고 분석하여, 제품이나 서비스에 대한 긍정, 부정, 중립 등의 선호도를 추출.
- 소셜 네트워크 분석: 소셜 네트워크의 연결 구조나 강도 등을 바탕으로 소셜 네트워크에 나타난 영향력, 관심사, 성향, 행동 패턴 등을 추출.
- 군집 분석: 데이터 간의 유사도를 측정한 후 이를 바탕으로 특성이 비슷한 데이터를 합쳐가면서 최종적으로 유사 특성의 데이터 집합을 추출.
표현 기술
- R 언어: 데이터 분석을 통해 추출한 의미와 가치를 시각적으로 표현하기 위해 사용하는 언어다.
기본 통계 기법부터 최신 데이터 마이닝 기법까지 구현이 가능하다.
다양한 프로그래밍 언어와 연동 가능하고 다양한 운영체제를 지원하며, 하둡 환경에서 분산 처리를 지원하는 라이브러리를 제공한다. 즉 R은 통계 계산과 다양한 시각화를 위한 언어와 개발 환경을 제공하는 오픈 소스다.
아래는 이전 데이터와 빅데이터에 관해 정리된 표다.
NOSQL의 등장 배경
관계 데이터베이스를 대신할 새로운 대안이 필요했다.
정형화된 데이터를 주로 처리하는 관계 데이터베이스는 빠른 속도로 생성되는 다양한 유형의 비정형 데이터를 저장 및 관리하는데 적합하지 않았다.
단일 컴퓨터 환경에서 주로 사용되는 관계 데이터베이스는 여러 컴퓨터가 연결되어 하나의 시스템을 구성하는 클러스터 환경에는 확장성 측면에서 비효율적이다.
이에 대해 새로운 대안으로 NOSQL이 등장했다.
관계 데이터베이스만 고집하지 말고 필요에 따라 다른 특성을 제공하는 데이터베이스를 사용하는 것이 좋다는 의미로 이해하면 되겠다.
NOSQL은 NOT ONLY SQL의 약어라고 이해하면 되겠다.
의미는 빠른 속도로 생성되는 대량의 비정형 데이터를 저장하고 처리하기 위해 ACID(원자성, 일관성, 격리성, 지속성)를 위한 트랜잭션 기능을 제공하지 않는 대신 저렴한 비용으로 여러 대의 컴퓨터에 데이터를 분산 저장 처리하는 것이 가능한 데이터베이스다.
특징은 관계 데이터 모델보다 더 융통성 있는 데이터 모델을 사용한다.
스키마 없이 동작하기 때문에 데이터 구조를 미리 정의할 필요가 없고 수시로 그 구조를 바꿀 수 있어 비정형 데이터를 저장하기에 적합하다. 대부분 오픈 소스로 제공된다.
아래는 SQL과 NOSQL의 비교다.
NOSQL은 SQL의 경쟁자가 아니다.
관계 데이터베이스가 적합하지 않은 새로운 환경에서 선택의 폭을 넓히기 위한 대안으로 SQL을 이해해야 한다.
저장될 데이터의 형태와 처리 목적에 더 적합한 것을 선택해야 한다.
NOSQL 종류
NOSQL에는 키-값 데이터베이스, 문서 기반 데이터베이스, 칼럼 기반 데이터베이스, 그래프 기반 데이터베이스가 있다.
- 키-값 데이터베이스: 키와 값의 쌍으로 데이터가 저장된다.
가장 단순한 형태이며 이미지와 동영상은 물론 어떠한 형태의 값도 저장이 가능하다.
질의 처리 속도가 빠르며 키를 이용해 값 전체를 검색할 수는 있지만,
값의 일부를 검색하거나 값의 내용을 이용한 질의는 할 수 없고 별도의 처리가 필요하다.
아마존의 다이나모 DB와 트위터 등에서 사용되는 레디스 등이 있다. - 문서 기반 데이터베이스: 키와 문서의 쌍으로 데이터를 저장한다.
트리 형태의 계층적 구조가 존재하는 JSON, XML 등과 같은 반정형 형태의 문서로 데이터를 저장한다.
문서는 객체지향에서 객체의 개념과 유사하다. 키- 값 데이터 모델이 확장된 형태며 문서 전체를 검색하는 것도 가능하지만,
XQuery 같은 특별한 문서 대상 질의 언어를 이용하면 문서 내의 일부를 검색할 수도 있다. 몽고 DB와 카우치 DB 등이 있다. - 칼럼 기반 데이터베이스: 칼럼 패밀리와 키의 쌍으로 데이터를 저장한다. 칼럼 패밀리는 관련 있는 칼럼 값들을 모아서 구성한다.
관계 데이터 모델과 유사성을 가진다. 칼럼 패밀리는 테이블에서 한 개의 투플(행)을 구성하는 속성들의 모임으로 볼 수 있다.
키가 각 투플을 구분하는 것처럼 키로 각 칼럼 패밀리를 식별한다. 관계 데이터 모델과 차별성도 가진다.
다양한 형태의 데이터를 값으로 저장할 수 있고,
칼럼 패밀리마다 칼럼의 구성을 다르게 할 수 있다. 구글의 빅 테이블, H 베이스, 카산드라 등이 있다. - 그래프 기반 데이터베이스: 노드에 데이터를 저장하고 간선으로 데이터 간의 관계를 표현하는 그래프 형태다.
질의는 그래프 순회 과정을 통해 처리한다. 연관 데이터를 추천하거나 소셜 네트워크에서 친구 찾기를 수행하는데 적합하다.
트랜잭션을 통해 ACID를 지원하며, 클러스터 환경에는 적합하지 않다.
이것이 다른 NOSQL과 차이점이다. 대표적인 예로는 네오포 제이, 오리엔트 DB 등이 있다.
빅데이터 분석 기술: 데이터 마이닝
데이터 분석 기술은 데이터 안에 숨겨진 유용한 정보, 즉 지식을 찾아내기 위해 데이터를 가공하는 역할을 담당한다.
데이터베이스에서 SQL 문을 통해 자신이 원하는 데이터를 추출해서 분석하는 것도 해당된다.
빅데이터의 분석 기술은 기존 데이터 분석 기술 + 빅데이터의 특징이다.
다양한 형태의 비정형 데이터를 기반으로 엄청난 양의 데이터를 처리한다. 대표적인 기술로는 데이터 마이닝과 기계 학습이 있다.
데이터 마이닝과 기계학습
분석 목적이 발견이면 데이터 마이닝이다.
수집된 데이터에서 숨겨진 규칙과 패턴을 찾아 가치 있는 유용한 정보인 지식을 발견하는 것이다.
분석 목적이 예측이면 기계학습이다.
수집된 데이터로 프로그램을 학습시켜서 유사한 상황의 새로운 데이터가 입력되었을 때 결과를 예측하는 것이다.
각자의 목적을 위해 모든 기법을 사용해야 한다.
이제 먼저 데이터 마이닝에 대해 더 살펴보겠다.
데이터 마이닝의 개념은 대량의 데이터 안에 숨겨진 지식을 발견하기 위해 규칙과 패턴을 찾아내는 기술이다.
고객의 성향을 파악해 전략을 세우거나, 개인의 신용 등급을 판단하거나,
불량품이 발생하는 원인을 파악하고 개선하는 등 다양한 분야에서 활용된다.
데이터베이스에서의 지식 발견으로 시작했지만 빅데이터를 대상으로 하는 데이터 분석 기술로 영역을 넓히고 있다.
대표적인 분석 기법으로는 분류 분석, 군집 분석, 연관 분석이 있다.
- 분류 분석: 새로운 데이터가 어떤 그룹 또는 등급에 속하는지 예측하는데 주로 사용한다. 미리 정의된 기준에 따라 기존 데이터의 그룹이 나뉘어 있다. 예를 들면 의사가 기존 환자들의 데이터를 토대로 새로운 환자의 증상을 듣고 병명을 진단하는 것이다. 로지스틱 회귀모형, 의사결정 나무, K-최근접 이웃 모형 등 다양한 방법이 있다.
- 군집 분석: 계층적 군집 분석과 비계층적 군집 분석이 있다. 먼저 계층적 군집 분석은 가장 유사한 데이터를 묶어 나가는 과정을 반복하면서 원하는 개수의 군집을 형성하는 방법이다. 거리를 정의하는 방법에 따라 최단 연결법, 최장 연결법, 평균 연결법, 중심 연결법, 와드 연결법 등으로 세분화된다. 비계층적 군집 분석은 데이터를 군집으로 나눌 수 있는 모든 방법을 생각한 후 가장 최적화된 군집을 형성하는 방법이다. 대표적으로 k-중심 군집이 사용된다.
- 연관 분석: 데이터 간의 발생 빈도를 분석하여 그 속에 숨겨진 연관 규칙을 파악하는 방법이다. 연관 규칙을 평가하기 위해 지지도, 상품 신뢰도, 향상도 지표를 이용한다. 상품이나 서비스 간의 연관 관계를 분석하여 마케팅에 주로 활용한다. 장바구니 분석이라고도 하며 Apiriori 알고리즘이 대표적이다.
이상으로 포스팅을 마칩니다. 감사합니다.
2022. 12. 14. 02:00 수정 및 복습 마무리
댓글