상세 컨텐츠

본문 제목

[KMOOC-실습으로배우는머신러닝]2. Machine Learning Pipeline

멋사 AISCOOL 7기 Python/INPUT

by dundunee 2022. 11. 21. 17:14

본문

1️⃣ Data Science Process

1-1. Business Understanding

  • 비즈니스에 대한 이해가 기본적으로 필요함.
  • prior knowledge

1-2. Data Understanding

  • 데이터 자체에 대한 이해가 필요하다
  1. Prepare data
  2. Modeling
    • data를 training data와 test data로 나눔
    • Building Model using Algorithms: training data를 모델이 넣어서 학습시킴 → 학습된 함수가 도출됨
    • Applying Model and performance evaluation: 유의미한 모델인디 test data(학습할 때 사용하지 않은 데이터여야함)로 검증함
      • 검증은 정말 중요한 단계이므로, 모델학습에만 머물지 않고 꼭 검증을 하는 습관을 들일것
  3. Application: Deployment, 모델을 현실문제에 적용해봄, 모델을 배포함
  4. Knowledge and Actions: 활용

 

2️⃣ Data 관련 용어

✏️ Dataset: 정의된 구조로 모아져 있는 데이터 집합

✏️ Data Point(Observation): 데이터 세트에 속해 있는 하나의 관측치

  • n: 관측치의 개수

✏️ 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을 사용해 검증할 수 있음.

관련글 더보기