2.1. 머신러닝의 흐름
1) 지도학습의 흐름
- 머신러닝 3가지 종류(지도학습, 비지도학습, 강화학습)에서 가장 많이 적용되는 지도학습
- 데이터 수집 - 데이터 클렌징 - ◈머신러닝 기법으로 데이터 학습 - 테스트 데이터로 성능 테스트 - 머신러닝 모델을 환경 속에서 구현
※ 일반적으로 데이터 수집 및 정리에 시간이 가장 오래 걸림
2) 데이터 학습
Ex1. 붓꽃 데이터셋(Iris Dataset) :
다양한 종류 중 2가지 붓꽃 setosa, veriscolor를 x축 -꽃받침의 길이, y축 - 꽃받침의 폭으로 하는 산포도를 그림.
- 지도학습은 (정답라벨) 데이터 중에서 패턴을 찾고, 분류하는 모델을 만든다.
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) : 모델의 예측 결과에 대한 모델을 만들어 일반화 성능을 높이는 기술