본문 바로가기
ML & DL/혼자 공부하는 머신러닝+딥러닝

데이터 전처리

by Glory_Choi 2022. 7. 21.
반응형

 

넘파이로 데이터를 준비하는 방법은 여러가지 방법이 있지만 오늘은 column_stack 함수를 통해서 데이터를 준비합니다.

 

 

우선 넘파이를 사용하기 위해서 넘파이를 임폴트 해줍니다.

 column_stack 함수는 리스트를 일렬로 세운 다음 나란히 옆으로 붙여줍니다. 예를 들어 [1, 2, 3]과 [4, 5, 6] 두 리스트를

붙여 보겠습니다.

 

 

fish_length와 fish_weight를 붙이기 위해서 column함수를 사용하겠습니다. 데이터가 잘 준비 되었습니다.

 

 

이제 타깃 데이터를 준비해야 하는데 타깃 데이터도 넘파이 패키지의 함수를 사용하면 쉽게 만들수 있습니다.

타깃 데이터를 만들기 위해서 사용할 함수는 np.ones()와 np.zeros()함수입니다. 이 두 함수는 각각 원하는 개수의 1과 

0을 채운 배열을 만들어 줍니다.

 

 

사이킷런으로 훈련 세트와 테스트 세트를 나누겠습니다.

 

 

사이킷런의 train_test_split 함수는 사이킷런의 model_selection 모듈 아래 있으며 전달되는 리스트나 배열을 비율에 맞게 훈련세트와 테스트 세트로 나누어 줍니다.

 

 

전에 설명한 k 최근접 이웃 알고리즘을 사용하여 훈련 세트를 훈련하고 모델을 평가합니다. 평가는 1로 좋습니다.

 

 

하지만 도미로 평가 되어야 하는 값이 빙어로 예측 되는것을  알수 있습니다.

이렇게 되는 이유는 x축의 범위는 좁은것에 비해 y축의 범위는 너무 크기 때문에 해당 샘플이 도미 샘플이 이웃으로 선택되지 않고 빙어 샘플이 최근접 이웃으로 선택 된것입니다.

이렇게 두 특성의 값이 놓인 범위가 다를 경우를 두 특성의 스케일이 다르다고도 말합니다.

k-최근접 이웃을 사용하려면 샘플 간의 거리에 영향을 많이 받으므로 제대로 사용하기 위해서는 특성값을 일정한 기준으로 맞춰야 합니다. 이런 작업을 데이터 전처리하고 합니다

 

가장 널리 사용하는 전처리 방법 중 하나는 표준 점수이고 이 표준 점수를 이용해서 전처리 해보겠습니다.

 

반응형