앞서 배운 것은 샘플링 편향을 막고자 numpy index를 통한 랜덤한 순서로 배치시켜 훈련세트와 테스트 세트를 나누어 훈련했다.
해당 모델에서 타겟 기준의 중간 지점에 있는 데이터들은 이웃의 거리와 상관 없이 단순 인덱스만 보고 예측을 하기 시작했다.
그래서 인접한 이웃들의 거리를 고려하여 가장 가까운 이웃을 판별하는 방법을 알아보자.
<fish_length, fish_weight> 는 🔗http://bit.ly/bream_smelt 를 참고했다.
(..중략..)
💡 ramdom_state 매개변수를 통해 random seed 지정하여 세트를 나누었다.
💡 stratify 매개변수를 통해 세트 비율을 클래스 비율에 맞게 나누었다. (샘플링 편향 일부 해소 효과)
k-최근접 이웃 알고리즘을 통한 훈련
정답 샘플(도미) 넣고 예측값 확인
샘플 값으로만 보면 정답 샘플이므로 1.0 이 나와야하는데 빙어로 인식함
샘플과 이웃 데이터 확인
도미데이터에 더 가까운데 빙어로 인식함
이웃 샘플까지의 거리 확인
🌝 x축 범위와 y축 범위의 기준을 맞춰주자.
Point ① ❗
특성의 값의 범위가 다른 것을스케일이 다르다
라고 포현한다. 스케일의 기준을 일정한 값으로 맞추기 위한 작업을데이터 전처리
라고 한다.
z값
또는 z점수
라고 한다.Point ② ❗
표준점수를 활용하는 방식도데이터 전처리
의 방법중 하나이다.
훈련 세트의 평균과 표준편차 계산하기
표준 점수 구하기
🔎 표준 점수 = (원본데이터 - 평균) / 표준편차
Point ③ ❗
넘파이는 train_input에 있는 모든 행에서 위의 계산을 수행하는 똑똑한..라이브러리이다!! 해당 기능을브로드캐스팅(broadcasting)
이라고 한다.
당연히, 훈련 세트는 표준점수로 변환하였지만 샘플 데이터는 변환하지 않았으므로 아예 샘플은 표준점수 공식이 반영되지 않는 raw 데이터이다.
전처리 데이터의 표준 점수 기준으로 샘플 데이터 변환하기
테스트 세트도 훈련 세트와 동일한 기준으로 표준 점수 계산하기
정답 샘플(도미) 넣고 예측값 확인하기
학습된 모델 확인하기
- 이 방식은 스케일 조정 방식의 하나로 특성값을 0에서 표준편차의 몇 배수만큼 떨어져 있는지로 변환한 값입니다. 이 값을 무엇이라 부르나요?
① 기본 점수
② 원점수
③ 표준점수
④ 사분위수
답: ③ 표준점수
- 테스트 세트의 스케일을 조정하려고 합니다. 다음 중 어떤 데이터의 통계 값을 사용해야 하나요?
① 훈련세트
② 테스트 세트
③ 전체 데이터
답: ① 훈련세트