Skip to content

Commit

Permalink
add content about data sampling
Browse files Browse the repository at this point in the history
  • Loading branch information
camila-buzzni committed Apr 18, 2024
1 parent d06628c commit 519fa89
Show file tree
Hide file tree
Showing 2 changed files with 117 additions and 12 deletions.
86 changes: 74 additions & 12 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,8 @@

## Table of Contents

### [Data Sampling](./data-sampling/README.md)

### [Data Management](./data-management/README.md)

- ML개발을 하다보면 Raw data를 조금씩 변경시켜 가면서 즉, feature engineering을 해보면서
Expand Down Expand Up @@ -67,22 +69,82 @@

### [MLOps Pipeline Monitoring](./pipeline-monitoring/README.md)

## Total MLOps pipeline
# MLOps Pipeline

데이터 흐름, 모델 학습, 서빙, 모니터링 등의 전체적인 아키텍쳐.

### in text,

> 위에서 아래로의 흐름으로 흘러가는 pipeline이라고 생각하고, 그 순서대로 적었습니다.
1. 데이터 취득 및 전처리
Related Engineering: [Data Management](#data-management)
### 1. 학습 데이터 준비

데이터의 유형

- 정형 데이터
- 표 형태로 구조화된 데이터
- 데이터베이스, CSV 파일 과 같은 데이터 소스에서 얻음
- 비정형 데이터
- 제한적인 구조를 가지지 않는 데이터
- 텍스트, 오디오, 이미지, 비디오, 예를 들어 트위터의 트윗 역시 비정형 데이터임. (특정 구조를 따르지 않기 때문에)
- 반정형 데이터
- 구조적이지만 명확하게는 정의되지 않는 데이터
- XML, JSON, HTML 등
- 실시간 데이터

- 이미 저장된 것이 아니라 실시간으로 데이터가 수집되고 분석해야 하는 데이터

- 스트리밍 데이터
- 금융 거래에서 주식 거래 및 금융 거래 데이터는 실시간으로 처리되어야 하며 시장 조건에 따라 신속한 결정을 내려하기 때문에 실시간 데이터이다.
- IoT 데이터
- IoT 센서 데이터에서 환경 데이터를 센싱해서 실시간으로 분석해서 환경 상태를 모니터링 해야 하는 경우, 이 환경 데이터는 실시간 데이터이다.

데이터 저장소

- DBMS
- 정형 데이터 를 효율적으로 저장, 관리, 검색하기에 용이
- PostgreSQL, MySQL..
- NoSQL Database
- 반정형, 비정형 데이터를 저장하고 관리하기 용이
- MongoDB, Cassandra, Redis...
- Data Warehouse
- Data Lake

Related Engineering:

- [Data Sampling](#data-sampling)
- [Labeling](#labeling)
- [Class Imbalance](#class-imbalance)

### 2. Feature Engineering

데이터 품질 관리

- 데이터 품질이란 데이터가 정확하고 신회할 수 있는지임
- 데이터 프로파일링, 데이터 클리닝, 중복 제거, 이상치 감지 등 데이터 표준화 같은 기술과 도구를 사용해서 품질을 검사

데이터 보안

- 데이터를 무단 엑세스, 변조, 유출 또는 파괴로부터 보호하는 것을 의미
- 데이터 유출로 인한 법적 문제로 고려 필요

Related Engineering:

- [Data Cleansing]
- [Feature Selection]
- [Feature Reduction]
- [Data Augmentation]
- [Data Scaling & Encoding]
- [Data Management](#data-management)

### 3. 모델 학습 및 최적화

Related Engineering:

- [Model Training]

2. 모델 학습
Related Engineering: [Model Training]
4. 모델 평가
Related Engineering:

3. 모델 평가
Related Engineering: [Model Validation](#model-validation)
- [Model Validation](#model-validation)

3-1. Model Validation

Expand All @@ -96,12 +158,12 @@

- 서비스 UX 측면의 동작을 반영한 실제 시나리오 모델 결과를 테스트

4. 모델 offline(학습시키면서 내부적으로 확인하는) 모니터링
5. 모델 offline(학습시키면서 내부적으로 확인하는) 모니터링
Related Engineering: [Model monitoring](#)

5. 모델 배포
6. 모델 배포

6. 모델 online(실제 서비스가 나가있는 상태에서의) 모니터링
7. 모델 online(실제 서비스가 나가있는 상태에서의) 모니터링

### in pipeline draw,

Expand Down
43 changes: 43 additions & 0 deletions data-sampling/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
# Data Sampling

## Data Sampling이란

- 큰 데이터 집합에서 작은 부분 집합을 추출하는 프로세스
- 통계 및 데이터 분석 분야에서 사용되는 일반적인 기술로, 데이터의 일부분을 조사하고 전체 데이터 집합에 대한 결론을 도출하는데 활용한다.
- 큰 데이터 집합을 다 볼 수는 없을 때가 있다. 이 중에 Data Sampling을 통해 작은 집합을 추출할 수 있다면, 이 집합으로 전체 데이터가 이렇겠구나 라는 통찰력을 얻을 수 있고, 계산 저장 등 공간을 줄이는데에도 도움이 된다.

## Data Sampling의 목적

위에 정의에서도 살짝 언급되었지만, 그래서ㅐ Data Sampilng을 하는 이유는

- 자원 및 시간 절약: 전체 데이터 집합을 처리하거나 분석하는 데 걸리는 시간과 자원을 절약. 대규모 데이터 집합에서 무작위로 추출된 샘플은 대부분의 데이터를 다루지 않아도 결과를 얻을 수 있음
- 데이터 테스트: 더 많은 데이터를 수집하기 전에 시스템 및
알고리즘을 테스트 가능

## Data Sampling의 종류

1. Random Sampling

- 무작위로 데이터 집합에서 샘플을 선택하는 방법
- 랜덤하기 때문에 편향이 적음

2. Stratified Sampling

- 데이터를 계층적으로 분류한 뒤, 그 계층에서 샘플을 추출
- 계측의 특성을 반영해서 추출하고 싶을때 사용

3. Cluster Sampling

- 데이터를 여러 그룹 또는 cluster로 나누고, 몇 개의 cluster를 무작위로 선택한 후 선택된 cluster 내의 모든 데이터를 포함하는 방법.
- 데이터가 고루 분포되지 않은 경우에 유용

4. weight Sampling

- 데이터 포인트에 가중치를 할당하고 이러한 가중치를 기반으로 샘플을 추출하는 방법
- 데이터 포인트에 할당된 가중치는 해당 데이터 포인트의 중요성을 나타내며, 중요한 데이터는 더 자주 선택될 가능성이 높음
- 불균형 데이터 분포를 가진경우 잘 활용됨

5. Importance Sampling

- 확률 분포에 기반한 통계 샘플링 기법.
- 베이지안 추론, 몬테 카를로 시뮬레이션, 결합 확률 분포의 추정 등

1 comment on commit 519fa89

@github-actions
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

MODEL METRICS

Training variance explained: 33.0%
Test variance explained: 32.0%

Data viz

feature_importance
residuals

Please sign in to comment.