본문 바로가기
개발노트/머신러닝

[머신러닝] 데이터 전처리 개념과 예제 #2

by 전지적진영시점 2023. 3. 12.
반응형

개발 환경

---------------------------------

OS : Mac

개발 툴 : colab 

개발 언어 : python

---------------------------------

 

지난 포스팅에 이어 데이터 전처리 예제를 다뤄보겠다.

<이전 포스팅, 데이터 전처리 개념과 예제 #1>

https://jpointofviewntoe.tistory.com/13

 

 

표준편차와 표준점수를 계산해보자

 

계산하는 방법은 데이터에서 평균을 빼고 표준편차를 나누어주면 된다.

 

np.mean() 함수는 평균을 계산하고 np.std() 함수는 표준편차를 계산한다.

 

특성마다 값의 스케일이 다를 경우엔 평균과 표준편차를 각 특성별로 계산해야한다.

이를 위해 axis = 0 으로 셋팅했다. 이렇게 하면 행을 따라 열의 통계값을 셋팅한다.

mean = np.mean(train_input, axis = 0)
std = np.std(train_input, axis = 0)
print(mean, std)

 

[출력 값]

 

각 특성별로 평균과 표준편차가 구해진 것을 볼 수 있다.

[ 27.58055556 457.94444444] [ 10.08843726 319.68346884]

 

 

 

 

그렇다면 matplotlib 라이브러리를 사용하여 산점도를 그려보겠다.

 

plt.scatter(train_scaled[:,0], train_scaled[:,1])
plt.scatter(new[0], new[1])

plt.xlabel('length')
plt.ylabel('weight')

plt.show()

 

[출력 결과]

 

x축과 y축의 범위가 -1.5~1.5 사이로 바뀌었다.

훈련 데이터의 두 특성이 비슷한 범위를 차지하고 있다. 이제 이 데이터 셋으로 다시 훈련 시켜보겠다.

 

[이 산점도의 노란점은 테스트 데이터입니다.]

 

[참고로 이전 데이터셋의 산점도]

 

 

전처리 데이터로 모델 훈련하기

 

fit 메서드를 사용하여 모델을 훈련시키겠다.

kn.fit(train_scaled, train_target)

 

테스트 세트의 스케일을 변환해보겠다.

주의 사항은 훈련을 마치고 테스트 세트로 평가할 때는 훈련 세트의 평균과 표준편차로 변환해야 한다.

 

test_scaled = (test_input - mean) / std

 

모델을 평가하겠다 .. 파이썬 초보자에겐 엄청난 작업이다.

 

kn.score(test_scaled, test_target)

 

완벽하게 떨어졌습니다.

 

 

https://link.coupang.com/a/Rzrh2

 

Apple 2023 맥북 프로 14 M2

COUPANG

www.coupang.com

 

 

"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."

 

 

https://www.buymeacoffee.com/jinyyyyleeG

 

cloi

Are you sure? Switching to a new level will terminate your current membership. You will no longer have access to this level or its rewards.

www.buymeacoffee.com

 

반응형

댓글