데이터 사이언스의 정의와 기반 개념
1. 데이터 사이언스의 의미
- 데이터 사이언스(Data Science): 과학적 방법론을 활용하여 정형/비정형 데이터를 포함한 다양한 데이터로부터 통찰력 있는 정보를 도출하기 위한 기술
- 수학, 컴퓨터공학, 통계학, 도메인 지식 등 다양한 분야의 기법을 종합하는 융합적 성격
핵심 용어
| 용어 | 설명 |
|---|---|
| 정형 데이터 (Structured Data) | 구조화 되어있는 데이터 |
| 비정형 데이터 (Unstructured Data) | 구조화된 형태가 없고 연산이 불가능한 데이터 |
| 도메인 지식 (Domain Knowledge) | 특정 산업분야에서 널리 통용되는 기술적 지식 |
데이터 사이언스 발전과정
- 1960년대: 데이터베이스 개념 도입
- 1970년대: 분석예측 방법론 발전
- 1980년대 이후: AI 기법 등의 적용
- 최근: 빅데이터와 클라우드 컴퓨팅
분석의 난이도와 가치 (중요)
- 현황 분석 - 과거에 무슨 일이 일어났나?
- 진단(원인) 분석 - 과거에 왜 그런 일이 일어났나?
- 예측 분석 - 무슨 일이 일어날 것인가?
- 예측 최적화 분석 - 어떻게 원하는 결과가 일어나게 할 것인가?
2. 빅데이터의 5V (매우 중요)
| 특성 | 영문 | 설명 |
|---|---|---|
| 크기 | Volume | 대량의 데이터 |
| 속도 | Velocity | 데이터 생성 속도의 증가 |
| 다양성 | Variety | 이미지, 동영상, 음성까지 사용 |
| 정확성 | Veracity | 정확한 정보의 수집 필요 |
| 가치 | Value | 데이터 분석을 통해 가치 창조 |
3. 데이터 분석의 주요 방법론
| 종류 | 정의 | 예시 |
|---|---|---|
| 기술통계 | 데이터가 가진 통계적 특성 분석 | 평균, 표준편차, 빈도수, 비율, 최빈치 |
| 추론통계 | 표본분석 기반으로 모집단 특성 추론 | 평균/비율 차이, 회귀분석, 상관분석, 시계열분석 |
| 데이터 마이닝 | 데이터를 분석하여 내재된 패턴과 규칙 도출 | 군집, 연관, 분류, 예측분석, 텍스트마이닝 |
4. 데이터 사이언스 프로세스 (시험 출제 가능성 높음)
- 문제 정의 - 해결할 문제를 명확히 정의, 정량화 가능한 목표 설정
- 가설 수립 - 탐구할 만한 가치 있는 가설 세우기
- 데이터 수집 - 전체 과정의 70% 시간 소요, 누락/오류 파악
- 분석 구현 - 탐색적 데이터 분석, 통계적 추론, 다양한 분석기법
- 결과 도출 및 피드백 - 인과적 결론 도출, 시뮬레이션 검증
5. 통계학 기초 (매우 중요)
기술통계학 vs 추론통계학
| 구분 | 기술통계학 (Descriptive) | 추론통계학 (Inferential) |
|---|---|---|
| 목적 | 수집된 데이터를 설명 | 수집된 데이터 기반으로 추론 |
| 방법 | 숫자 요약, 그래프 | 모집단 추정, 가설 검정 |
자료의 종류
| 분류 | 설명 |
|---|---|
| 정성적 자료 | 비수치적 (성별, 상/중/하) |
| 정량적 자료 | 수치적 (키, 몸무게, 성적) |
자료의 요약 (핵심 개념)
| 지표 | 설명 |
|---|---|
| (산술)평균 (Mean) | 모든 자료를 더해서 개수로 나눈 값. 극단적 값에 크게 영향 |
| 중앙값 (Median) | 크기 순 나열 시 가운데 값. 서열자료에 사용 |
| 최빈값 (Mode) | 빈도수가 가장 많은 자료. 명목자료의 대푯값 |
| 편차 | 개별 자료 - 평균. 평균에서 떨어진 정도 |
| 분산 | 편차 제곱의 합 / 변량의 개수 |
| 표준편차 | 분산의 제곱근 (√분산) |
| 4분위수 | 데이터를 4등분하는 Q1, Q2(=중앙값), Q3 |
데이터의 종류 (특성에 따른 구분)
- 범주형 데이터: 명목형(성별, 혈액형), 순서형(순서 관계 존재)
- 수치형 데이터: 이산형(정수값, 출산횟수), 연속형(실수값, 신장, 체중)
독립변수 vs 종속변수 (중요)
| 독립변수 | 종속변수 |
|---|---|
| 설명변수 (Explanatory) | 반응변수 (Response) |
| 예측변수 (Predictor) | 결과변수 (Outcome) |
| 위험인자 (Risk factor) | 표적변수 (Target) |
| 종속변수에 영향을 주는 변수 | 독립변수의 변화에 따라 변하는 변수 |
통계학 기본 개념과 파이썬 기초
1. 확률의 개념 (매우 중요)
- 확률: 특정 결과가 일어날만한 정도
- 추론: 표본을 통해 모집단의 특성을 과정하는 것
확률 법칙
- 덧셈 법칙: P(A ∪ B) = P(A) + P(B) - P(A ∩ B)
- 배반사건: 두 사건이 동시에 발생할 수 없는 사건 → P(A ∩ B) = 0
- 조건부 확률: P(A|B) = P(A ∩ B) / P(B), 단 P(B) >= 0
| 독립사건 | 종속사건 |
|---|---|
| 초기 사건이 다음 사건에 영향 X | 초기 사건이 다음 사건에 영향 O |
| P(A ∩ B) = P(A) · P(B) | P(A ∩ B) = P(A) · P(B |
2. 순열과 조합
| 구분 | 순열 (Permutation) | 조합 (Combination) |
|---|---|---|
| 순서 | 고려함 | 고려하지 않음 |
| 동일판단 | {a,b} ≠ {b,a} | {a,b} = {b,a} |
| 계산 | nPr = nCr × r! | nCr = n! / (r!(n-r)!) |
3. 확률변수와 확률분포 (핵심)
-
확률변수: 일정한 확률을 가지고 발생하는 사건에 값을 부여한 변수
- 이산확률변수: 특정 수치만으로 나타낼 수 있는 확률변수
- 연속확률변수: 범위 내에서 연속적 값을 취하는 확률변수
-
확률분포: 확률변수가 특정 값을 취할 확률을 제시하는 분포
-
확률밀도함수:
- 모든 x에 대하여 f(x) >= 0
- 전체 적분 = 1
- P(a < X < b) = ∫ₐᵇ f(x)dx
정규분포 & 표준정규분포
- 정규분포: 좌우대칭의 종모양, 가우스분포
- 표준화: Z = (X - μ) / σ
- 다른 분포 비교 가능, 특정 현상에 대한 확률 예측
이산확률분포의 종류
| 분포 | 설명 |
|---|---|
| 베르누이 분포 | 베르누이 시행(성공/실패) 1회 수행 시의 확률분포 |
| 이항 분포 | 베르누이 시행 n번 반복 시 성공 횟수의 확률분포 |
| 초기하 분포 | N개 중 m개 성공, n개 비복원추출 시 성공 개수 |
| 포아송 분포 | 단위 시간/공간에서 성공 횟수에 대한 분포 |
4. 통계적 추론 (시험 핵심)
- 추론통계학: 표본에서 모집단의 모수를 추정
- 추정: 표본평균, 표본분산, 표본비율로 모집단 모수 분석
신뢰구간
- P(X̄ - z_(α/2) · σ/√n ≤ μ ≤ X̄ + z_(α/2) · σ/√n) = 1 - α
- 신뢰도 높을수록 → 신뢰구간 넓어짐 → 정보의 가치 줄어듦
- 95% 신뢰수준: α = 0.05, 양쪽 각각 0.025
가설 검정 (매우 중요)
- 귀무가설: 효과가 없다 (기존 주장)
- 대립가설: 효과가 있다 (새로운 주장)
- p-value: 귀무가설이 사실이라는 가정에서 현재와 같거나 더 극단적인 자료가 얻어질 확률
| 판단 | 조건 |
|---|---|
| 귀무가설 기각 | p-value < α |
| 귀무가설 채택 | p-value > α |
5. 통계적 모델에 따른 분류
| 모수적 방법 | 비모수적 방법 |
|---|---|
| 특정 분포(정규분포 등)를 전제 | 분포 가정 없음 |
| 표본이 충분할 때 | 표본수 적거나 정보 없을 때 |
6. 대표적 통계분석 방법 요약 (시험 핵심)
| 방법 | 요점 |
|---|---|
| 빈도분석 | 데이터가 빈도, 집단간 빈도차 검증 |
| 평균분석 (t-test) | 데이터가 점수, 두 집단간 평균점수차 검증 |
| 변량분석 (ANOVA) | 데이터가 점수, 세 집단 이상 평균점수차 검증, 가장 많이 사용 |
| 상관분석 | 두 변수간 상관 정도 분석, 상관계수 -1~1 |
| 회귀분석 | 독립변수가 종속변수에 미치는 인과관계 분석, 결정계수(R²) |
7. 통계 분석 프로세스 요약
- 기술통계로 표본 특성 분석
- 확률과 확률분포 이해
- 표본수 결정 및 표본추출
- 추정 (표본 → 모수)
- 가설검정
- 통계분석방법 적용
데이터와 데이터베이스
1. 데이터의 계층 (중요)
| 개념 | 설명 |
|---|---|
| 데이터 세트 | 데이터 객체들의 집합. 파일 또는 DB에 해당 |
| 데이터 객체 | 관찰 대상인 특정 실체 (레코드, 행, 벡터, 패턴) |
| 데이터 속성 | 관찰 대상의 유효한 특징 (열, 변수, 특징, 차원) |
2. 데이터 품질 (시험 출제 가능)
데이터 품질을 떨어뜨리는 요인
- 결측치 (Missing Values): 데이터가 비어 있는 경우 (NULL, NA)
- 노이즈 (Noise): 데이터에 오류
- 불일치 (Inconsistency): 데이터의 정합성이 없는 경우
데이터 품질 지표 (매우 중요)
| 지표 | 설명 |
|---|---|
| 완전성 | 필수 속성은 반드시 값이 채워져 있어야 함 |
| 유효성 | 업무규칙을 준수하여 의미 있는 값 |
| 유일성 | 동일 데이터는 중복 없이 하나로 관리 |
| 정합성 | 관련 테이블/속성 간 데이터 값이 모순되지 않아야 함 |
| 일치성 | 연계 받은 정보를 임의 삭제/수정 없이 활용 |
| 적시성 | 업무적으로 적시에 제공되어 활용 가능 |
3. 데이터 전처리 과정 (핵심)
| 기법 | 설명 |
|---|---|
| 데이터 정제 (Cleansing) | 결측치 채우기, 모순 데이터 수정 |
| 데이터 통합 (Integration) | 여러 출처의 데이터 결합 |
| 데이터 축소 (Reduction) | 샘플링, 차원 축소, 데이터 압축 |
| 데이터 변환 (Transformation) | 정규화, 그룹화 등 적절한 형태로 변환 |
4. 결측치 처리 기법 (시험 핵심)
- 해당 투플 무시 - 가장 쉬움, 너무 많으면 데이터 특성 저해
- 수작업으로 채우기 - 근거 약하고 시간 소모
- 특정 값(0)으로 채우기 - 결과 왜곡 가능
- 속성의 평균값으로 채우기 - 많이 사용, 왜곡 위험
- 같은 클래스의 평균값으로 채우기 - 4번보다 나은 방식
- 회귀분석/베이지안/의사결정트리로 예측 - 가장 정교하지만 복잡
5. ETT (Extraction, Transformation, Transportation) (중요)
| 단계 | 내용 |
|---|---|
| 추출 (Extraction) | 원본에서 데이터 웨어하우스에 저장할 데이터 추출 |
| 가공 (Transformation) | 데이터 정제, 열/레코드 수준의 가공 |
| 전송/저장 (Transportation) | 선택된 데이터를 DW에 전송, 인덱스 작성 |
6. 데이터 웨어하우스 / 데이터 마트 / 데이터 레이크
| 개념 | 설명 |
|---|---|
| 데이터 웨어하우스 (DW) | 기업 각 단위 데이터를 공통 형식으로 변환하여 일원적으로 관리하는 DB |
| 데이터 마트 (DM) | 소규모 단일주제의 DW, 특정 부서의 의사결정 지원 |
| 데이터 레이크 | 가공되지 않은 다양한 종류의 데이터(Raw Data)를 한 곳에 모아둔 저장소 |
데이터베이스
1. 파이썬 데이터 구조 (시험 출제 가능)
| 자료형 | 저장 모델 | 변경가능성 | 접근방법 |
|---|---|---|---|
| int, float, complex (수치형) | Literal | Immutable | Direct |
| str (문자열) | Literal | Immutable | Sequence |
| tuple (튜플) | Container | Immutable | Sequence |
| list (리스트) | Container | Mutable | Sequence |
| dict (딕셔너리) | Container | Mutable | Mapping |
| set (집합) | Container | Mutable | Set |
주요 자료형 비교
| 리스트 | 튜플 | 딕셔너리 | 집합 |
|---|---|---|---|
| [ ]로 둘러쌈 | ( )로 둘러쌈 | {Key:Value } | set([]) |
| 값 생성/삭제/수정 가능 | 값 변경 불가 | Key로 Value 접근 | 중복 불허, 순서 없음 |
2. JSON (JavaScript Object Notation)
- 경량 데이터 교환 형식
- 사람과 기계 모두 이해하기 쉬움
- XML을 대체하여 데이터 전송에 많이 사용
- 특정 언어에 종속되지 않음
- 형식:
{String key : String Value}
3. 관계형 데이터베이스 (매우 중요)
용어 비교
| E.F.Codd 용어 | File 시스템 용어 | 자주 사용되는 용어 |
|---|---|---|
| 릴레이션 (Relation) | 파일 (File) | 테이블 (Table) |
| 속성 (Attribute) | 필드 (Field) | 열 (Column) |
| 튜플 (Tuple) | 레코드 (Record) | 행 (Row) |
키의 종류 (시험 핵심)
| 키 | 설명 |
|---|---|
| 후보키 (Candidate Key) | 각 튜플을 구별하는 기준이 되는 컬럼 집합 |
| 기본키 (Primary Key) | 튜플 식별 기준으로 사용할 키 |
| 대체키 (Alternate Key) | 기본키로 선택되지 않은 나머지 후보키 |
| 외래키 (Foreign Key) | 관련 테이블 간 데이터 일관성 보장 수단 |
4. 스키마 (Schema) 3계층 (중요)
| 계층 | 관점 | 설명 |
|---|---|---|
| 외부 스키마 | 사용자 관점 | 각 사용자가 보는 데이터의 논리적 구조 |
| 개념 스키마 | 조직 전체 관점 | 개체 간 관계, 접근권한, 보안, 무결성 규칙 |
| 내부 스키마 | 저장 장치 관점 | 물리적 저장 구조, 인덱스, 저장 데이터 항목 특성 |
5. 데이터베이스 관리시스템 (DBMS) (중요)
- 파일 시스템의 데이터 종속성/중복성 문제 해결을 위해 제안
DBMS 장단점
| 장점 | 단점 |
|---|---|
| 데이터 중복 통제 | 비용이 많이 듦 |
| 데이터 독립성 확보 | 백업/회복 방법 복잡 |
| 동시 공유 가능 | 중앙 집중 관리 취약점 |
| 보안/무결성 향상 |
6. SQL의 세 가지 종류 (시험 핵심)
| 종류 | 설명 | 명령어 |
|---|---|---|
| DDL (데이터 정의 언어) | 개체를 만들고 관리 | CREATE, ALTER, DROP |
| DML (데이터 처리 언어) | CRUD 작업 | INSERT, UPDATE, DELETE, SELECT |
| DCL (데이터 제어 언어) | 보안, 무결성, 트랜잭션 | GRANT, BEGIN, COMMIT, ROLLBACK |
데이터 분석과 관리
1. 대용량 데이터 관리기법 - 하둡 (Hadoop) (매우 중요)
- 정의: 여러 컴퓨터를 통해 대용량 데이터를 분산 저장 및 분산 처리하기 위한 오픈 소스 프레임워크
주요 구성요소
| 구성요소 | 설명 |
|---|---|
| HDFS (Hadoop Distributed File System) | 범용 하드웨어 클러스터에서 실행되는 분산 파일시스템 |
| MapReduce | Map/Reduce 방식으로 대용량 데이터를 분산 병렬처리하는 프레임워크 |
HDFS 구성요소
| 구성요소 | 설명 |
|---|---|
| Name Node | 파일시스템 Metadata 관리, 블록 배치정보 관리 |
| Data Node | 실제 데이터를 저장 유지, 노드 간 데이터 복제로 신뢰성 유지 |
| Secondary Name Node | Name Node 백업, 지속적 copy |
- HDFS 파일 복제: 내부 랙 2개 노드 + 다른 랙 1개 노드에 복제
하둡 에코시스템 주요 구성요소
| 구성요소 | 설명 |
|---|---|
| Pig | 데이터 흐름 언어와 실행환경 |
| Hive | 분산 데이터 웨어하우스, SQL 기반 쿼리 |
| HBase | 분산 컬럼 지향 DB, HDFS 사용 |
| ZooKeeper | 고가용성 조정 서비스, 분산 락 제공 |
| Ambari | 관리(Management) 도구 |
| HCatalog | 테이블 및 스키마 관리 |
2. HIVE (중요)
- 하둡 에코시스템에서 데이터 웨어하우징용 솔루션
- SQL on Hadoop으로 불림
- HiveQL 쿼리로 데이터 조회
- 내부적으로 Hadoop에 데이터 저장
HIVE 구성요소
| 구성요소 | 설명 |
|---|---|
| UI | 사용자 인터페이스 |
| Driver | 쿼리 입력, JDBC/ODBC API 제공 |
| Compiler | 메타스토어 참고, 쿼리 분석, 실행계획 생성 |
| Metastore | DB, 테이블, 파티션 정보 저장 |
| Execution Engine | 실행 계획 실행 |
3. 빅데이터 분석 기법
| 기법 | 설명 |
|---|---|
| 텍스트 마이닝 | NLP 기반 정보 추출, 문서 분류/군집/요약 |
| 소셜 오피니언 마이닝 | 긍정/부정/중립 선호도 판별, 평판분석 |
| 소셜 네트워크 분석 | 연결구조/강도 기반 영향력 측정, Hub 사용자 발굴 |
| 군집 분석 | 비슷한 특성의 Group 발굴 |
4. 확률분포 (매우 중요)
확률변수의 구분
| 이산확률변수 | 연속확률변수 |
|---|---|
| 정수와 같이 명확한 값 | 실수를 변수값으로 함 |
| 가질 수 있는 값의 수가 한정 | 값의 개수를 셀 수 없음 |
정규분포 (Normal Distribution) (핵심)
- 종모양, 좌우대칭
- 평균 = 중앙치 = 최빈치
- 모수: 평균(μ)과 분산(σ²)
누적분포함수 (CDF, Cumulative Distribution Function)
- F(x) = P(X ≤ x)
- 확률변수가 특정 값보다 작거나 같은 확률
중심극한정리 (Central Limit Theorem) (매우 중요)
- X ~ N(μ, σ²)이면, X̄ ~ N(μ, σ²/n)
- 표본의 크기 n이 충분히 클 때, 정규분포를 따르지 않는 모집단에서 나온 표본이라도 그 분포가 정규분포에 가까워짐
이항분포 (Binomial Distribution) (중요)
- n번의 독립시행에서 사건 A가 일어나는 횟수 X의 분포
- 확률질량함수: f(x) = nCx · p^x · (1-p)^(n-x)
- nCx = n! / (x! · (n-x)!)
- n=1이면 베르누이 분포
- p=0.5이면 대칭형 종모양, 중심점 = n/2
카이제곱분포 (Chi-squared Distribution) (중요)
- k개의 독립적인 표준정규 확률변수를 각각 제곱한 다음 합해서 얻는 분포
- k = 자유도
- 적합도 검정, 동질성 검정에 사용
- (+)값만 존재, 좌우 비대칭
포아송 분포 (Poisson Distribution) (중요)
- 단위 시간 안에 어떤 사건이 몇 번 발생할 것인지를 표현하는 이산 확률 분포
- f(x) = (e^(-λ) · λ^x) / x!
- λ = 평균 발생 횟수
- e = 2.71828…
- 이항분포에서 n이 대단히 크고 p가 대단히 작을 때 λ=np인 포아송 분포로 근사
데이터 분석 및 전처리
1. 맵리듀스 (MapReduce) (매우 중요)
개념
- 대용량 데이터를 분산 병렬 처리하는 프레임워크
- 데이터를 가져오지 않고 데이터가 있는 곳에서 처리
| 단계 | 설명 |
|---|---|
| Splitting | 대용량 파일을 적절한 크기로 분할 |
| Mapping | 키-값을 읽어 필터링/변환, Key-Value 형태로 묶기 |
| Shuffling | 맵 결과에서 중복 데이터 제거 |
| Reducing | 새로운 키 기준으로 그룹화 후 집계연산 수행 |
맵리듀스 구성
| 구성요소 | 설명 |
|---|---|
| 잡 트래커 (Job Tracker) | master, Task Tracker에 작업 할당, 스케줄링 |
| 태스크 트래커 (Task Tracker) | slave, 할당 받은 작업 처리 후 보고 |
맵리듀스 장단점
| 장점 | 단점 |
|---|---|
| 단순하고 사용 편리 | 고정된 단일 데이터 흐름 |
| 유연성 (특정 모델에 비의존) | 기존 DBMS보다 불편한 스키마/질의 |
| 저장 구조 독립성 | 단순한 스케줄링 |
| 높은 확장성 | 상대적으로 낮은 성능 |
| 데이터 복제 기반 내구성 | 개발도구 불편 |
2. 아파치 스파크 (Apache Spark) (매우 중요)
- 분석을 위한 프레임워크, 하둡 상에서나 단독으로 동작 가능
- 빠른 처리속도, 반복학습, 알고리즘 구현 용이
스파크 핵심 개념: RDD (Resilient Distributed Dataset)
- 읽기 전용의 분산 데이터셋 추상화 객체
- 여러 서버에 분산, 다수 파티션으로 관리
- 노드 장애 시 RDD 정보로 복구 가능 (내구성)
- DAG(Directed Acyclic Graph)로 작업 표현
RDD 명령어
| Transformation | Action |
|---|---|
| filter, read 등 | first, show, head 등 |
| 어떻게 바꾸는지에 대한 정보만 기록 | 실제 데이터 처리 실행 |
| 데이터셋은 읽기 전용, 새 RDD 생성 | Stage → Task 단위로 실행 |
Lineage
- RDD 생성 과정을 기록
- DAG 형태
- 메모리에서 데이터 유실 시 Lineage 기록에 따라 RDD 재생성 가능
의존성 (Dependency)
| 좁은 의존성 (Narrow) | 넓은 의존성 (Wide) |
|---|---|
| 하나의 파티션이 하나의 파티션에서만 사용 | 하나의 파티션이 여러 파티션에서 사용 |
| 효율적, 데이터 교환 불필요 | 비효율적, 셔플 발생 |
| map 같은 연산 | groupByKey, join |
하둡 vs 스파크 (시험 출제 가능)
| 구분 | 하둡 | 스파크 |
|---|---|---|
| 역할 | 분산형 데이터 인프라스트럭처 (저장+처리) | 데이터 프로세싱 툴 |
| 스토리지 | HDFS 포함 | 자체 파일 관리 시스템 없음 |
| 처리 방식 | 단계별 데이터 처리 (맵리듀스) | 전체 데이터셋을 한번에 다룸 |
| 장애 대응 | 매 운영 후 결과를 디스크에 기록 | RDD로 메모리에 분산, 탄력성 보장 |
스파크 구성요소
| 구성요소 | 설명 |
|---|---|
| SparkSQL | SQL 쿼리 처리 |
| Spark Streaming | 실시간 스트리밍 처리 (IoT, SNS 등) |
| MLlib | 기계학습 라이브러리 (PCA, SVD 등) |
| GraphX | 그래프 계산 라이브러리 |
3. 데이터 전처리 기법 (매우 중요)
- 전체 프로젝트 노력의 70% 소요
- 프로젝트 성패를 가늠하는 대단히 중요한 과정
전처리 분류 요약
| 분류 | 설명 |
|---|---|
| 데이터 여과 (Filtering) | 오류 발견, 보정, 삭제, 중복성 확인 |
| 데이터 변환 (Transformation) | 유형 변환, 정규화, 집합화, 요약 |
| 데이터 정제 (Cleansing) | 결측치 처리, 이상치 제거, 잡음 평활화 |
| 데이터 통합 (Integration) | 유사/연계 데이터 통합 |
| 데이터 축소 (Reduction) | 불필요 데이터 제거, 효율성 증대 |
데이터 변환 - Rescaling (중요)
- Min-Max Scaling: X_new = (X - X_min) / (X_max - X_min) (0~1 범위)
- 정규화 (Normalization): 평균 0, 분산 1이 되도록 선형 변환
scikit-learn 정규화 클래스
| 클래스 | 설명 |
|---|---|
| StandardScaler | 평균 0, 표준편차 1 |
| MinMaxScaler | 최대 1, 최소 0 |
| RobustScaler | 중앙값 0, IQR 1 |
| MaxAbsScaler | 절대값 최대 1 또는 -1 |
데이터 정제 - 잡음 처리
| 방법 | 설명 |
|---|---|
| 구간화 (Binning) | 구간별 대푯값(평균, Median)으로 대체 |
| 회귀값 적용 (Regression) | 추세 함수의 값 사용 |
| 군집화 (Clustering) | 클러스터 단위 묶기 후 outlier 제거 |
차원축소 기법 (중요)
| 방법 | 설명 |
|---|---|
| Feature Selection | 상관관계 분석으로 유용한 피처 선택 |
| Feature Derivation | 기존 피처로 새로운 피처 생산 |
| 군집화 | 비슷한 데이터 점들을 모아봄 |
PCA vs LDA (시험 핵심)
| PCA (주성분 분석) | LDA (선형 판별 분석) |
|---|---|
| 데이터의 최적 표현 견지 | 데이터의 최적 분류 견지 |
| 분산을 최대한 보존 | 클래스 간 분별 정보 최대 유지 |
| 비지도학습 | 지도학습 |
- PCA: 변수의 수를 줄이는 차원 감소 기법, 분산 최대 보존, 다중공선성 해결
범주형 변수 처리 - One-Hot Encoding
- 문자형 범주 데이터를 0/1 이진값으로 변환
- 소형/중형/대형 → 소형여부(0/1), 중형여부(0/1), 대형여부(0/1)
- 남자/여자처럼 2가지면 한 항목으로 0,1 표현 가능
데이터의 군집분석
1. 빅데이터 수집기술
| 수집기술 | 내용 |
|---|---|
| 스플렁크 (Splunk) | 실시간 데이터 인덱싱, 검색, 분석, 시각화 처리. ‘Google for Machine Log’ |
| 플럼 (Flume) | 로그 데이터 수집. Source → Channel → Sink 구조. 신뢰성/확장성 |
| 척와 (Chukwa) | 확장성 우수, 대용량 처리, 분산 로그 분석 |
| 스크라이브 (Scribe) | Facebook 개발, 대량 서버 실시간 로그 수집 |
Flume 주요 개념
| 구성요소 | 설명 |
|---|---|
| Event | Byte payload + set of string headers |
| Source | 이벤트 수집하여 채널로 전달 |
| Channel | Source와 Sink 간 이벤트 전달 통로 |
| Sink | Channel로부터 받은 이벤트 저장/전달, Failover 대응 |
Apache Sqoop
- Hadoop과 RDBMS 사이에 bulk data를 효율적으로 옮기는 도구
- Sqoop1: Client-side Install, CLI 제공
- Sqoop2: Server-side Install, Web/REST API 접속 가능, Oozie 연동 용이
수집 방법 분류
| 방법 | 설명 |
|---|---|
| 로그수집기 | 웹서버 로그, 트랜잭션 로그, DB 로그 수집 |
| 크롤링 | 웹로봇으로 외부 소셜/인터넷 자료 수집 |
| 센싱 | 각종 센서를 통한 데이터 수집 |
| RSS, Open API | 웹 2.0 기술로 프로그래밍 수집 |
2. 군집분석 (Clustering Analysis) (매우 중요)
- 정의: 관측 대상들을 유사성에 따라 그룹으로 나누어 분석하는 작업
- 비예측성 분석, 분석 초기 단계에서 데이터 특성 파악에 활용
- 텍스트마이닝(스팸메일 분류), 이미지처리(패턴인식) 등에 활용
군집분석의 두 가지 원리 (핵심)
- 군집 내 응집도 최대화 (같은 군집 내 유사성 최대)
- 군집 간 분리도 최대화 (다른 군집 간 거리 최대)
3. 군집 vs 분류 (시험 핵심)
| 구분 | 군집 (Clustering) | 분류 (Classification) |
|---|---|---|
| 학습 방식 | 비지도학습 (Unsupervised) | 지도학습 (Supervised) |
| Label | 사전에 알려져 있지 않음 | 사전에 알려져 있음 |
| 목적 | 데이터 자체의 특성 파악 | 새로운 데이터의 그룹 예측 |
| 방법 | 유사도에 가까운 것부터 합쳐감 | 기존 category 관계 파악 후 판별 |
4. 군집분석의 목적
- 데이터에 내재된 구조 이해
- 시장 세분화에 의한 마케팅 전략 수립
- 데이터 축소 - 군집 대표값만 기억
- 이상치 탐지 - 어떤 군집에도 속하지 않는 개체
5. 군집분석의 종류 (매우 중요)
계층적 군집 (Hierarchical Clustering)
| 유형 | 방향 | 설명 |
|---|---|---|
| 응집형 (Agglomerative) | Bottom-up | 가장 가까운 대상부터 결합 |
| 분리형 (Divisive) | Top-down | DIANA 방법 등 |
- 장점: 덴드로그램으로 군집 형성 과정 파악 가능
- 단점: 자료 크기가 크면 분석 어려움
- 군집 수를 사전에 정하지 않아도 됨
분할적 군집 (Partitional/Non-Hierarchical Clustering)
- 군집 수를 미리 정한 상태에서 중심에 가장 가까운 개체를 포함
- 장점: 많은 자료를 빠르고 쉽게 분류
- 단점: 군집 수를 미리 정해야 함, 초기값에 따라 결과 달라짐
- 대표 알고리즘: K-means
6. 연결법 (Linkage Method) (시험 핵심)
| 방법 | 설명 |
|---|---|
| 단일(최단) 연결법 (Single) | 거리의 최소값으로 측정, 고립된 군집 찾는데 중점 |
| 완전(최장) 연결법 (Complete) | 거리의 최대값으로 측정, 군집 내부 응집성에 중점 |
| 평균 연결법 (Average) | 모든 항목에 대한 거리 평균, 계산량 많을 수 있음 |
| 중심 연결법 (Centroid) | 두 군집의 중심 거리로 결합, 가중평균 사용 |
| Ward 연결법 | 군집 내 오차제곱합(ESS) 기초, 증가량이 가장 작아지는 방향으로 병합 |
- 단일연결법 단점: 두 군집이 몇 개 개체로 연결된 ‘고리현상’ 발생 시 부적절
7. K-means 알고리즘 (매우 중요)
- 주어진 데이터를 k개의 클러스터로 묶는 알고리즘
- 각 클러스터와 거리 차이의 분산을 최소화하는 방식으로 동작
- 자율학습(비지도학습), 레이블 없는 입력 데이터에 레이블을 부여
- EM 알고리즘과 비슷한 구조
K-means 수행 과정
- k개의 초기 중심점(centroid) 설정
- 각 데이터 포인트를 가장 가까운 중심점의 클러스터에 할당 (Expectation)
- 각 클러스터의 중심점을 재계산 (Maximization)
- 2-3단계를 반복
종료 조건
- E/M 스텝 반복 적용해도 결과가 바뀌지 않는 경우 (해가 수렴)
- 사용자가 정한 반복 수를 채운 경우
8. 계층적 군집화 적용 예시 (시험 출제 가능)
- 모든 개체 간 거리 행렬 계산
- 가장 가까운 쌍을 하나의 군집으로 엮음
- 덴드로그램에 높이 = 관측치간 거리로 기록
- 거리행렬 업데이트 (4가지 거리 계산 방법 중 하나 선택: Min/Max/Average/Centroid)
- 반복하여 모든 개체가 하나의 군집이 될 때까지 진행
- 덴드로그램에서 원하는 높이에서 끊으면 해당 수의 군집 도출
핵심 공식 요약
| 공식 | 수식 |
|---|---|
| 확률 덧셈법칙 | P(A ∪ B) = P(A) + P(B) - P(A ∩ B) |
| 조건부 확률 | P(A|B) = P(A ∩ B) / P(B) |
| 순열 | nPr = n! / (n-r)! |
| 조합 | nCr = n! / (r!(n-r)!) |
| 표준화 | Z = (X - μ) / σ |
| 분산 | σ² = Σ(X - X̄)² / n |
| 표준편차 | σ = √(분산) |
| 신뢰구간 | X̄ ± z_(α/2) · σ / √n |
| 이항분포 PMF | f(x) = nCx · p^x · (1-p)^(n-x) |
| 포아송분포 PMF | f(x) = (e^(-λ) · λ^x) / x! |
| 중심극한정리 | X̄ ~ N(μ, σ²/n) |
| Min-Max Scaling | X_new = (X - X_min) / (X_max - X_min) |
시험 대비 핵심 체크리스트
- 빅데이터 5V (Volume, Velocity, Variety, Veracity, Value) 각각의 의미
- 기술통계 vs 추론통계의 차이와 역할
- 확률법칙 (덧셈, 곱셈, 조건부확률, 독립/종속사건)
- 가설검정 절차 (귀무가설, 대립가설, p-value, α)
- 통계분석 방법 (빈도분석, t-test, ANOVA, 상관분석, 회귀분석) 구분
- 데이터 전처리 과정 (정제, 통합, 축소, 변환)과 결측치 처리 기법
- 데이터 품질 지표 (완전성, 유효성, 유일성, 정합성, 일치성, 적시성)
- ETT 프로세스 (추출-가공-전송)
- 데이터 웨어하우스 vs 데이터 마트 vs 데이터 레이크 구분
- 관계형 DB 용어 (릴레이션, 속성, 튜플, 기본키, 외래키)
- SQL 3종류 (DDL, DML, DCL)와 주요 명령어
- 스키마 3계층 (외부, 개념, 내부)
- 하둡 구조 (HDFS, MapReduce, Name/Data Node)
- 맵리듀스 과정 (Splitting → Mapping → Shuffling → Reducing)
- 스파크 개념 (RDD, Transformation/Action, Lineage, 의존성)
- 하둡 vs 스파크 차이점
- 확률분포 (정규, 이항, 카이제곱, 포아송)의 특성과 공식
- 중심극한정리의 의미
- 정규화/스케일링 방법 (StandardScaler, MinMaxScaler 등)
- PCA vs LDA 차이
- 군집분석 vs 분류 차이 (비지도 vs 지도, Label 유무)
- K-means 알고리즘 수행 과정 및 종료 조건
- 연결법 종류 (단일, 완전, 평균, 중심, Ward)와 각각의 특성
- 계층적 vs 분할적 군집 장단점 비교