1️⃣ Data Science Process
1-1. Business Understanding
- 비즈니스에 대한 이해가 기본적으로 필요함.
- prior knowledge
1-2. Data Understanding
- Prepare data
- Modeling
- data를 training data와 test data로 나눔
- Building Model using Algorithms: training data를 모델이 넣어서 학습시킴 → 학습된 함수가 도출됨
- Applying Model and performance evaluation: 유의미한 모델인디 test data(학습할 때 사용하지 않은 데이터여야함)로 검증함
- 검증은 정말 중요한 단계이므로, 모델학습에만 머물지 않고 꼭 검증을 하는 습관을 들일것
- Application: Deployment, 모델을 현실문제에 적용해봄, 모델을 배포함
- Knowledge and Actions: 활용
2️⃣ Data 관련 용어
✏️ Dataset: 정의된 구조로 모아져 있는 데이터 집합
✏️ Data Point(Observation): 데이터 세트에 속해 있는 하나의 관측치
✏️ Feature(Variable, Attributes, 입력변수, x): 데이터를 구성하는 하나의 특성(숫자형, 범주형 etc)
- p: 변수의 개수
- 따라서 보통 data matrix를 n X p matrix라 한다.
✏️ Label(Target, Response, 출력변수, y): 입력 변수들에 의해 예측, 분류되는 출력변수
3️⃣ 분류와 회귀
💡 분류
- 종속변수가 범주형일 때 사용하는 모델
- 클래스를 예측
💡 회귀
- 종속변수가 연속형일 때 사용하는 모델
- 구체적인 숫자를 예측
4️⃣ Data 준비과정 ⭐⭐⭐
💡 Data Exploration = EDA
- 데이터 모델링 전 데이터 변수 별 기본적인 특성들을 탐색하고, 데이터의 분포적인 특징을 이해해야한다.
💡 Missing Value
- 데이터를 수집하다보면 결측치가 있을 수 있고, 대부분의 상황에서 처리하지 않으면 오류가 발생하므로 보정이 필요하다.
💡 Data Types and Conversion
- 데이터 셋 안에 여러 종류의 데이터타입이 있을 수 있고, 이를 분석이 가능한 형태로 변환 후 사용해야함
- 숫자, 또는 벡터 형태로의 변환
👉 따라서 EDA → 데이터 정제 → 머신러닝 모델에 학습시키는 과정이 요구된다.
적절한 머신러닝 모델을 선택하는 과정에서 EDA와 정제의 과정이 중요하게 여겨진다. 즉, 이 두 과정의 결과를 따라 데이터의 특성을 반영하여 적절한 머신러닝 모델을 선택할 수 있다.
또한 이러한 과정들은 머신러닝 모델링 과정에서 60~70%정도 소요된다.
💡Normalization
- 데이터 변수들의 단위가 크게 다른 경우들이 있고, 이러한 것들이 모델 학습에 영향을 주는 경우가 있어 정규화한다. 즉 단위를 맞춰주는 것
- Z-Score(StandardScaler), Min-MaxScaler, RobustScaler
💡Outliers
- 관측치 중에서 다른 관측치와 크게 차이가 나느 관측치들이 있고, 이러한 관측치들은 모델링 전처리가 필요하다.
💡Feature Selection
- 많은 변수 중에서 모델링을 할 때 중요한 변수가 있고, 그렇지 않은 변수가 있어서 선택이 필요한 경우가 있다.
💡Data Sampling
- 모델을 검증하거나 이상 관측치를 찾는 모델링을 할 때 또는 앙상블 모델링을 할 때 가지고 있는 데이터를 일부분 추출하는 과정을 거치기도 한다.
5️⃣ Modeling
1. Model
- 모델은 입력변수와 출력변수 간의 관계를 정의해 줄 수 있는 추상적인 함수 구조
- Training data → Build model ↔ Evaluation( using Testing data) → Final Model
- Build model ↔ Evaluation 이 피드백 루트가 정말 중요함. 성능이 안좋게 나왔다면 다시 앞단계로 돌아가서 성능을 높일 수 있도록 Feature를 조정해 줄 필요가 있음.
2. Modeling 검증
💡Underfit
- 학습이 잘 안되어서 너무 심플하게 모델이 만들어짐
- prediction error to training data(Loss) → Training Error
💡Overfit
- 학습이 너무 과하게 되어 모델이 복잡하게 만들어진 경우
- prediction error to validation data(generalixation error) → Testing(Validation) Error
👉 어쨌든 training에 사용되지 않은 데이터를 갖고 검증한다.
👉 오차가 너무 크게 나왔다면, 모델이 너무 심플하게 만들어졌는지, 복잡하게 만들어졌는지 확인해봐야 한다.
👉 모형의 복잡도를 결정하고, 그에 따라서 validation error가 변화가 일어나고, validation error가 가장 작을 때 그때의 복잡도를 갖는 모델을 잘 선택해줘야 한다. 이는 하이퍼파라미터를 조정해서 닥업할 수 있다.
👉 holdout-validation, cross-validation을 사용해 검증할 수 있음.