티스토리 뷰

머신러닝(Machine Learning)

  • 명시적인 프로그래밍 없이 데이터를 이용해서 예측 또는 분류를 수행하는 알고리즘을 구현하는 기법
  • 한국말로 기계학습이라고도 부름

1. 머신러닝(Machine Learning)이 필요한 이유

  • 머신러닝 방법론을 이용할 경우, 인간이 정확히 하나하나 로직을 지정해주기 어려운 복잡한 문제를 데이터에 기반한 학습을 통해서 해결할 수 있다.
    ex. 어떤 사용자에게 어떤 광고를 보여주는 것이 최적의 광고 배분 전략일까?
  • 머신러닝 알고리즘을 사용할 때 가장 중요한 부분은 머신러닝 모델이 잘 학습할 수 있도록 적절한 특징(Feature)을 설정해주는 것이다.

 

2. 예측 모델(Prediction Model)의 필요성

  • 데이터 분석을 통한 정교한 예측 모델(Prediction Model)을 갖고 있을 경우, 중요한 비즈니스적 의사결정을 안정적이고 계획적으로 수행할 수 있다.
  • 예제 1) 다음달에 휴대폰 판매량은 얼마나 될까? → 생산 계획 및 재고관리 전략을 수립할 수 있따.
  • 예제 2) 광고비를 100만원 더 집행하면 얼마나 많은 유저를 추가적으로 획득할 수 있을까? → 목표로 하는 유저 획득 수에 따른 광고비 집행 전략을 세울 수 있다.

 

3. 지도 학습(Supervised Learning)

  • 머신러닝 모델은 일반적으로 지도 학습(Supervised Learning)이라는 방법론을 사용한다.
  • 지도 학습 방법론을 사용하기 위해서는 트레이닝 데이터의 구성이 (인풋 데이터, 데이터에 대한 정답) 쌍으로 구성되어 있어야만 한다. 즉, 지도 학습은 정답을 보여주면서 학습시키는 머신러닝 방법론이다.
  • 이때 보통 인풋 데이터를 x, 데이터에 대한 정답을 y라고 부른다.
  • 즉, 데이터는 (x,y) 쌍으로 구성된다.
  • 예를 들어, 우리가 키를 기반으로 몸무게를 예측하는 모델을 만드는 경우를 생각해보면 트레이닝 데이터는 여러 사람에게서 수집한 키와 몸무게 데이터가 된다.

3-1. Training Data, Test Data

  • (x,y)로 구성된 데이터를 학습용 데이터(Training Data)라고 부른다. 머신러닝 모델을 사용하는 경우 다음의 2가지 과정을 거친다.
    1. 학습용 데이터로 머신러닝 모델을 학습시킨다.
    2. 학습된 머신러닝 모델의 성능을 트레이닝 데이터에 포함되어 있지 않고 따로 빼놓은 테스트 데이터(Test Data) 로 측정한다.
  • Training Data, Test Data나누기 (split)
    • 따라서 머신러닝 모델을 학습시키기 위해서 전체 데이터의 일부를 Training Data, 일부는 Test Data로 나눠서 사용한다.
    • 일반적으로 데이터의 80% 정도는 트레이닝 데이터, 20% 정도는 테스트 데이터로 나눠서 사용한다.
    • 예를 들어 1000명의 (키, 몸무게) 데이터가 있다면 800명분의 데이터는 트레이닝 데이터, 200명분의 데이터는 테스트 데이터로 나눠서 사용한다.

3-2. Validation Data(검증용 데이터)

  • 전체 데이터를 트레이닝(training) 데이터, 검증용(validation) 데이터, 테스트(test) 데이터로 나누기도 한다.
  • 검증용 데이터는 트레이닝 과정에서 학습에 사용하지는 않지만 중간중간 테스트하는데 사용해서 학습하고 있는 모델이 오버피팅에 빠지지 않았는지 체크하는데 사용된다.
  • 즉, 직관적으로 설명하면 검증용 데이터는 트레이닝 과정 중간에 사용하는 테스트 데이터로 볼 수 있다.
  •  
    Your Dataset
    train test
    train validation test

3-3. Overfitting, Underfitting

  • 아래 그림은 학습 과정에서 트레이닝 에러와 검증 에러를 출력한 그래프이다.
  • 처음에는 트레이닝 에러와 검증 에러가 모두 작아지지만 일정 횟수 이상 반복할 경우 트레이닝 에러는 작아지지만 검증 에러는 커지는 오버피팅(Overfitting)에 빠지게 된다.
  • 따라서, 트레이닝 에러는 작아지지만 검증 에러는 커지는 지점에서 업데이트를 중지하면 최적의 파라미터를 얻을 수 있다.
  • 오버피팅(Overfitting)은 학습 과정에서 머신러닝 알고리즘의 파라미터가 트레이닝 데이터에 과도하게 최적화되어 트레이닝 데이터에 대해서는 잘 동작하지만 새로운 데이터인 테스트 데이터에 대해서는 잘 동작하지 못하는 현상을 말한다. 오버피팅은 모델의 표현력이 지나치게 강력할 경우 발생하기 쉽다.
  • 언더피팅(Underfitting)은 오버피팅의 반대 상황으로 모델의 표현력이 부족해서 트레이닝 데이터도 제대로 예측하지 못하는 상황을 말한다.
  • 오버피팅을 방지하기 위한 기법들을 정규화(Regularization) 기법이라고 부른다.

'파이썬 > 머신러닝' 카테고리의 다른 글

머신러닝  (0) 2021.07.02
결정 트리(Decision Tree)와 랜덤 포레스트(Random Forest)  (0) 2021.06.08
scikit-learn & 머신러닝 기초  (0) 2021.06.08
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/10   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
글 보관함