Chapter2. 머신러닝 흐름과 과적합

Byabya·2022년 3월 13일
0

2.1. 머신러닝의 흐름

1) 지도학습의 흐름

  • 머신러닝 3가지 종류(지도학습, 비지도학습, 강화학습)에서 가장 많이 적용되는 지도학습
  • 데이터 수집 - 데이터 클렌징 - ◈머신러닝 기법으로 데이터 학습 - 테스트 데이터로 성능 테스트 - 머신러닝 모델을 환경 속에서 구현

※ 일반적으로 데이터 수집 및 정리에 시간이 가장 오래 걸림

2) 데이터 학습

Ex1. 붓꽃 데이터셋(Iris Dataset) :
다양한 종류 중 2가지 붓꽃 setosa, veriscolor를 x축 -꽃받침의 길이, y축 - 꽃받침의 폭으로 하는 산포도를 그림.

  • 분류 과정 :
    컴퓨터는 스스로 올바른 선을 그었는지 계산하고 수정,
    아래의 2와 3의 과정을 반복한다.

    1. 적당한 선 긋기
    2. 그은 선이 적절한 위치에 있는지 계산하기
    3. 선 위치를 개선하여 수정하기
    4. 점을 적절히 분류할 수 있는 위치에 선을 그리면 종료
  • 컴퓨터 스스로 답을 찾아 데이터의 패턴으로 만든 기준 : (기준)모델

  • 지도학습은 (정답라벨) 데이터 중에서 패턴을 찾고, 분류하는 모델을 만든다.

2.2. 학습데이터 사용법

1) 훈련데이터와 테스트 데이터

  • 훈련 데이터 : 학습에 사용하는 데이터
  • 테스트 데이터 : 학습된 모델의 정밀도를 평가할 때 사용하는 데이터
※ 머신러닝 분야는 모델을 구축하고 알 수 없는 데이터를 예측하는 학문 체계
Ex1. MNIST (필기체 문자 이미지 데이터셋) :
모든 데이터셋(70,000)장 중 
훈련 데이터 (60,000장) - 학습모델 만듦 
테스트데이터(10,000)장 - 학습 모델 정확성 검증
그러나 대부분 전체 데이터의 20% 정도를 사용 

2) 홀드아웃 방법의 이론과 실현

  • 데이터의 분리 방법
  • 홀드아웃 방법 : 주어진 데이터셋을 훈련 데이터와 테스트 데이터 2가지로 분할하는 방법
  • scikit-learn 라이브러리를 활용한 홀드아웃 방법
X_train, X_test, y_train, y_test = train_test_split(X,y,test_size=XXX,
random_state = 0)
  • X : 데이터셋의 정답 라벨에 대응하는 특징이 배열로 되어 있는 데이터
  • y : 데이터셋의 정답 라벨이 배열로 되어있는 데이터
  • test_size= XXX : 전체 데이터에서 테스트 데이터로 지정하고 싶은 비율(0~1)
    ex) test_size = 0.2 // 0.2는 20%가 테스트 데이터, 80%가 훈련용 데이터
  • X_train은 훈련 데이터의 데이터셋(정답라벨 제외), X_test 테스트 데이터의 테스트 데이터셋(정답라벨 제외), y_train 훈련데이터의 정답라벨, y_test에는 테스트 데이터의 정답라벨이 저장
  • random_state = 0 테스트 시 선택되는 데이터 셋 고정

3) k-분할 교차검증의 이론

  • 모델 평가 검증 방법
  • 모델 평가 검증의 하나인 k-분할 교차검증
  • 비복원 추출을 이용하여 훈련 k개의 훈련데이터셋으로 분할, k-1개의 데이터는 학습 데이터셋으로 이용, 나머지 1개를 모델 테스트에 사용
  • k개의 모델과 모델에 대한 k개의 성능평가 (k회의 학습과 평가, k개의 성능 평가의 평균을 취해 평균 성능을 산출)
  • 테스트 데이터를 추출하는 모든 조합을 시험하여 안정되고 정확한 모델 평가 가능
  • 일반적으로 k는 5~10 정도 , 데이터셋이 클 경우 k값을 늘려 분할되는 값의 크기를 키움
    ex1) 리브원아웃(leave-one-out cross-validation_한개빼기 교차검증) 교차검증

2.3 과적합

  • 데이터 패턴에서 편중이 없는 데이터를 추가하면 데이터를 패턴별로 분류할 수 있지만 편중된 데이터를 제공할 경우 올바른 분류가 어려움.
  • 주어진 데이터에 과하게 적용되어 올바른 기준을 구축하지 못한것, 데이터를 과하게 학습한 상태를 과적합(overfitting_과대적합)으로 부름.

1) 과적합의 회피 (해결책)

  • 드롭 아웃 : 학습 시 무작위로 일부 뉴런을 없애는 방법
  • 정규화(regularization, normalization) : 편향된 데이터의 영향을 없애는 방법
  • 과적합 : 컴퓨터가 데이터를 과도하게 학습한 상태
  • 과소적합 : 데이터를 제대로 학습하지 못한 상태
  • 과적합을 일으키고 있는 모델은 '분산'이 크다고 표현
  • 과소적합을 일으키고 있는 모델은 '편향'이 크다고 표현

2.4 앙상블 학습

  • 앙상블 학습 : 여러 모델을 학습시킴으로써 데이터의 일반화를 획득하려는 시도
  • 1) 배깅 기법(Bagging) : 복수의 모델을 동시에 학습시켜 예측 결과의 평균을 취하는 것, 예측 결과의 일반화 시도
  • 2) 부스팅 기법(Boosting) : 모델의 예측 결과에 대한 모델을 만들어 일반화 성능을 높이는 기술
profile
@___noyesa

0개의 댓글