데이터를 다루는 법에 대해 알아보는 주차 !!
https://www.youtube.com/playlist?list=PLJN246lAkhQjoU0C4v8FgtbjOIXxSs_4Q
[완결] 혼자 공부하는 머신러닝+딥러닝
[혼자 공부하는 머신러닝+딥러닝] 강의 동영상 혼자 공부하는 머신러닝+딥러닝: https://tensorflow.blog/hg-mldl 깃허브: https://github.com/rickiepark/hg-mldl 유튜브: http://bit.ly/hg-mldl-youtube
www.youtube.com
4강. 훈련 세트와 테스트 세트 나누어 사용하기
이전 시간의 문제점 : 모델을 구현하기 위한 샘플 데이터와, 구현 후 정확성을 측정하는 데이터가 같은 데이터다 !!
➡️ 같은 데이터이기 때문에 당연히 정확도 100%
➡️ 훈련 세트와 테스트 세트를 나누어 사용해야 한다
💡 주의 사항 : 테스트 케이스들이 잘 섞일 수 있도록 해주어야 한다 ex) 도미와 빙어 데이터가 골고루 섞이게
⬅️ 잘못된 상황
- 훈련 세트에는 도미 데이터만 존재하고, 테스트 세트에는 빙어 데이터만 존재한다
- 도미와 빙어 데이터를 훈련 세트와 테스트 세트에 적절히 배분할 필요성
- input 과 target 이 함께 쌍을 이루어 이동하게 해야 한다
- 인덱스를 섞어 분류하기 !
1. 인덱스 랜덤 셔플
2. 인덱스 기준 배열 슬라이싱
- 산점도에서 훈련 세트와 테스트 세트에 도미와 빙어 데이터가 골고루 섞여 있는 것을 확인할 수 있다
- 파란색 : 훈련 데이터
- 주황색 : 테스트 데이터
💡 두 번째 머신러닝 프로그램
# 모델 구현 (훈련 세트)
kn = kn.fit(train_input, train_target)
# 정확성 측정 (테스트 세트)
kn.score(test_input, test_target)
5강. 정교한 결과 도출을 위한 데이터 전처리 알아보기
📍 시나리오
길이 25cm, 무게 150g 인 물고기인 나!
나는 도미일까 빙어일까? 🐟
1. Numpy, Sklearn 으로 데이터 준비하기 (훈련 세트 & 테스트 세트)
- 넘파이로 물고기의 길이와 무게 데이터 리스트 합치기 : column_stack
- 사이킷런으로 훈련 세트, 테스트 세트 데이터 나누기
- stratify : 분류 시 샘플링 편향이 생기지 않도록 타깃 배열을 전달하여 타깃값이 골고루 섞이도록 함
- random_state : 랜덤 시드 선택 (실전에서는 사용되지 않음)
- 전달하는 배열을 2개로 나누어줌
2. 문제점 발견 : 기존 산점도 표시로는 도미같아 보이는데 결과는 왜 빙어로 나올까?
- kn.kneighbors([[25, 150]]) : 어떤 샘플 데이터를 보고 있는지 거리 계산하는 함수
- 노란색 : 현재 추론하는 생선 데이터
- 초록색 : 추론을 위해 보고 있는 샘플 데이터
➡️ x 축과 y 축의 스케일이 달라서 산점도를 눈으로 봤을 때랑 실제 값이랑 차이가 난다 !
3. 데이터 전처리 : 표준 점수로 바꾸기
- 표준 점수 (z 점수) = (샘플 데이터 - 평균) / 표준 편차
- mean : 평균
- std : 표준 편차
➡️ 훈련 세트의 평균과 표준 편차로 predict 하는 값 변경
➡️ 훈련 세트의 평균과 표준 편차로 테스트 세트 데이터 변환
📌 항상 데이터 변환은 훈련 세트가 기준 !!
🐟 나는 도미였다 !
'AI' 카테고리의 다른 글
[AI 도전기 8일차] 분류 모델에서 확률 구하기 : 로지스틱 회귀와 확률적 경사 하강법 (0) | 2024.04.03 |
---|---|
[AI 도전기 7일차] 회귀 알고리즘과 모델 규제에 대해 알아보자 ! (0) | 2024.04.02 |
[AI 도전기 5일차] 간단한 머신 러닝 예제 공부하기 (0) | 2024.03.31 |
[AI 도전기 4일차] Google Colab 시작하기 (0) | 2024.03.30 |
[AI 도전기 3일차] 인공지능, 머신러닝, 딥러닝 상관관계 (1) | 2024.03.29 |