02. KNN, 훈련세트와 테스트세트

akanana·2023년 1월 6일
0

개인공부

목록 보기
14/30
post-thumbnail
post-custom-banner

훈련세트, 테스트세트

앞의 장에서 무게와 길이를 특성이라고 하였다.
해당 특성을 통해 모델을 훈련시키고 테스트를 진행하였다.
이때 훈련을 시키는 샘플과 테스트를 진행하는 샘플의 데이터는 달라야한다.
이를 우리는 훈련 세트테스트 세트라고 한다.

데이터 준비하기

from sklearn.model_selection import train_test_split

fish_data = np.column_stack((length,weight))
fish_target = np.concatenate((np.ones(35),np.zeros(14)))

train_input, test_input, train_target, test_target = \
    train_test_split(fish_data, fish_target)
print(train_input)

데이터를 위와같이 train_test_split을 통해 줄 수 있다.

train-test_split

sklearn.model_selection.train_test_split(*arrays, test_size=None,
train_size=None, random_state=None, shuffle=True, stratify=None)[source]

위 메소드를 통해 두 개의 배열을 훈련세트와 테스트세트로 분류 할 수 있다.

test_size

테스트세트의 사이즈를 결정한다

train_size

훈련세트의 사이즈를 결정한다

random_state

shuffleseed값을 결정한다

shuffle

True일시, 분할 전 데이터를 섞어준다.

stratify

해당 배열을 참조하여 분류가 균등한 비율로 이루어지도록 한다.
위에서는 훈련세트테스트세트의 비율을 맞추기위해 stratify=fish_target을 이용 할 수 있다.

데이터 출력

import matplotlib.pyplot as plt

plt.scatter(train_input[:,0], train_input[:,1])
plt.scatter(test_input[:,0], test_input[:,1])
plt.xlabel('length')
plt.ylabel('weight')
plt.show()

위처럼 테스트세트훈련세트가 나뉘어짐을 확인 가능하다.

post-custom-banner

0개의 댓글