02-1 지도 학습 vs 비지도 학습
지도 학습: 문제와 답(훈련 데이터)을 함께 주고 학습시키는 방법
- 훈련 데이터 = 입력(데이터) + 타겟(정답) ex) [[30(특성), 600(특성)], 1(도미)]
비지도 학습: 문제(입력 데이터)만 주고 학습시키는 방법
그렇다면 k-최근접 이웃 알고리즘은 어떤 학습인가?
= 지도 학습
훈련 세트와 테스트 세트
시험문제를 생각하면 편하다
시험에 책에 있는 연습문제가 그대로 나온다면 과연 그 학생의 능력을 평가할 수 있을까?
- No
머신러닝의 경우 준비한 데이터셋을 공부용 / 시험용으로 나누면 된다.
그걸 훈련 세트 테스트 세트라고 한다. (나누는 방법에 따라 모델의 정확도가 많이 차이가 나기도 한다.)
추가로 훈련 세트 / 테스트 세트를 터무니없이 나누면 Overfitting(과적합)이 발생한다
예를 들어, 준비된 데이터셋이 생선 데이터 100개인데 훈련에 98개를 쓰고 테스트 데이터로 2개를 쓴다고 가정하면
훈련 데이터를 맞추는 정확도는 엄청나게 높겠지만, 정작 실제 데이터가 들어온다면 정확한 답을 낼 수 없을 것이다.
Overfitting(과적합)은 훈련 데이터만 너무 잘 맞추는 경우를 말한다.
샘플링 편향
train set, test set 구분할 때 편향된 데이터가 들어가고 나누어지는 것
위의 데이터셋 기준으로는 train, test 양쪽에 빙어와 도미의 데이터가 골고루 들어가야 한다.
왜냐면 훈련할 때는 빙어데이터가 없었는데 갑자기 테스트할 때 빙어데이터 들어오면, 확통 공부 열심히 하고 확통 시험 치러 갔는데 국어 비문학 문제만 나온다면 낮은 점수가 나올 것이다.
그럼 지금 하고 있는 프로젝트에서는 kn.fit(train_input, train_target)
kn.score(test_input, test_target)으로 가야 한다. 훈련할 때 train_set, 평가할 때 test set
확인문제
1. ⓛ
2. ④
3. ②
02-2 데이터 전처리
넘파이로 많은 데이터를 정제해 주었다.
훈련, 테스트 세트 나눌 때 사이킷런을 사용했다.
출처: 혼공머신+딥러닝
데이터 전처리는 기준점의 오류에서부터 구해준다.
아래의 표에서 양쪽의 그래프가 같아 보이는가? 두 개는 x축을 조금 바꿨을 뿐인데 완전히 다른 그래프가 된다
세모를 판단할 때 왼쪽 그래프는 오른쪽 위에 있는 선과 이어져 보이고
오른쪽 그래프는 세모가 아래의 마름모들과 가까워 보인다.
이처럼 같은 데이터라도 전처리를 해주지 않으면 모델의 정확도에 영향을 끼칠 수 있다는 것이다.
전처리 후 표준점수를 구하 고난 뒤에 다시 모델을 학습시키고 테스트해 본다면 바뀔까?
바뀐다! 도미[1]로 잘 예측된다.
스케일이 다른 특성 처리
데이터를 표준 점수로 변환하고 데이터의 평균으로부터의 거리를 다시 잘 조절한 다음 학습을 시키면 = 전처리과정, 더욱 정확한 모델을 얻을 수 있다. 표준점수 = (특성 - 평균) / 표준편차 => 0에서 표준편차의 몇 배수만큼 떨어져 있는지로 변환한 값.
확인문제
1. ③
2. ⓛ
내가 작성한 코드(여기도 정리 잘 되어있다)
'AI > AID' 카테고리의 다른 글
[혼공 머신] 혼자 공부하는 머신러닝 정리하기 - Chapter 05 (1) | 2024.11.05 |
---|---|
[혼공 머신] 혼자 공부하는 머신러닝 정리하기 - Chapter 04 (5) | 2024.10.29 |
[혼공 머신] 혼자 공부하는 머신러닝 정리하기 - Chapter 03 (7) | 2024.10.04 |
[혼공 머신] 혼자 공부하는 머신러닝 정리하기 - Chapter 01 (7) | 2024.09.27 |
[혼공 머신] 혼자 공부하는 머신러닝 정리하기 - Chapter 00 (6) | 2024.09.27 |