줘이리의 인생적기

[tensorflow 14] 보스턴 주택 가격 예측 네트워크01 본문

공부/tensorflow

[tensorflow 14] 보스턴 주택 가격 예측 네트워크01

줘이리 2021. 4. 23. 22:00
728x90

딥러닝에서 유명한 예제죠.

 

보스턴 주택 가격 예측 네트워크를 만들어보겠습니다.

 

보스턴 주택 가격 데이터셋은 keras와 tf.keras에 기본적으로 내장되어 있습니다.


먼저 훈련 데이터, 검증 데이터, 테스트 데이터에 대해 알아봅시다.

 

훈련(train) 데이터는 학습 과정에서 사용되는 데이터입니다. 

 

검증(validation) 데이터는 학습이 잘 되고 있는지 검증하는 용도로 사용되는 데이터입니다.

 

테스트(test) 데이터는 학습 결과를 평가하기 위한 데이터입니다.

 


다음은 보스턴 주택 가격 데이터셋에 대하여 알아보겠습니다.

 

1978년 미국 보스턴 지역의 주택 가격이며, 506개 지역의 주택 가격 중앙값을 1,000달러 단위로 나타냈습니다.

 

범죄율, 주택당 방의 수, 고속도로 접근성, 학생/교사 비율 등 13가지 데이터를 이용합니다.

 

 

내장되어 있는 데이터셋이 몇 개인지, 어떤 식으로 구성되어 있는지 확인해보겠습니다.

 

from tensorflow.keras.datasets import boston_housing

(train_X, train_Y), (test_X, test_Y) = boston_housing.load_data()

print("train 데이터 셋 갯수 : ", len(train_X))
print("test 데이터 셋 갯수 : ", len(test_X))

print(train_X[0])
print(train_Y[0])

print(test_X[0])
print(test_Y[0])

train 데이터셋의 개수는 404개, test 데이터셋의 갯수는 102개입니다.

 

각 데이터셋 첫 번째 데이터의 X값은 위에 말씀드렸던 13가지의 정보들의 값을 담고 있습니다.

 

Y값은 그 집의 집 값(1,000달러 단위)입니다.

 

 

여기서 주의 해야할 점은 데이터들의 단위 입니다. 데이터들의 단위가 모두 다르기 때문에 데이터 전처리 과정인 정규화(Standardization)를 먼저 진행하겠습니다.

 


각 데이터에서 평균값을 뺀 후 표준편차로 나누어주는 정규화를 진행합니다.

 

from tensorflow.keras.datasets import boston_housing

(train_X, train_Y), (test_X, test_Y) = boston_housing.load_data()

#X 값 Standardization
X_mean = train_X.mean(axis=0)
X_std = train_X.std(axis=0)
train_X = train_X - X_mean
train_X = train_X / X_std
test_X = test_X - X_mean
test_X = test_X / X_std

#Y 값 Standardization
Y_mean = train_Y.mean(axis=0)
Y_std = train_Y.std(axis=0)
train_Y = train_Y - Y_mean
train_Y = train_Y / Y_std
test_Y = test_Y - Y_mean
test_Y = test_Y / Y_std

print(train_X[0])
print(train_Y[0])

print(test_X[0])
print(test_Y[0])

 

 

 

데이터들이 정규분포에 잘 들어간 것 같네요