[Deep Learning] Regression Analysis

김희진·2021λ…„ 4μ›” 1일
0

DeepLearning

λͺ©λ‘ 보기
9/12
post-thumbnail

πŸ“– μΌ€λΌμŠ€ μ°½μ‹œμžμ—κ²Œ λ°°μš°λŠ” λ”₯λŸ¬λ‹ (ν”„λž‘μ†Œμ™€ μˆ„λ ˆ, λ°•ν•΄μ„ , κΈΈλ²—) μ°Έκ³ 

νšŒκ·€λŠ” 연속적인 값을 μ˜ˆμΈ‘ν•˜λŠ” 것이닀.

λ³΄μŠ€ν„΄ 주택 가격 데이터셋은 1970λ…„ μ€‘λ°˜ λ³΄μŠ€ν„΄ μ™Έκ³½ μ§€μ—­μ˜ λ²”μ£„μœ¨, μ§€λ°©μ„Έμœ¨ 등을 ν¬ν•¨ν•œ λ°μ΄ν„°μ…‹μœΌλ‘œ 총 506개의 λ°μ΄ν„°ν¬μΈνŠΈλ₯Ό κ°€μ§€κ³  μžˆλ‹€.

🏑 데이터 뢈러였기

from keras.datasets import boston_housing

(train_data, train_targets), (X_test, y_test) = boston_housing.load_data()

🏑 데이터 μ „μ²˜λ¦¬

각 νŠΉμ„±λ“€μ€ μŠ€μΌ€μΌμ΄ μ„œλ‘œ λ‹€λ₯΄λ‹€. 0 ~ 1 μ‚¬μ΄μ˜ λΉ„μœ¨μ„ λ‚˜νƒ€λ‚΄λŠ” νŠΉμ„±λ„ 있고 1 ~ 12 μ‚¬μ΄μ˜ 값을 κ°–κ±°λ‚˜ 1 ~ 100 μ‚¬μ΄μ˜ 값을 κ°–λŠ” νŠΉμ„±λ„ μžˆλ‹€. μ΄λ ‡κ²Œ μŠ€μΌ€μΌμ΄ λ‹€λ₯΄λ©΄ 경사 ν•˜κ°•λ²•μ˜ κ²½λ‘œκ°€ μŠ€μΌ€μΌμ΄ 큰 νŠΉμ„±μ— 영ν–₯을 많이 λ°›κΈ° λ•Œλ¬Έμ— ν•™μŠ΅μ„ 더 μ–΄λ ΅κ²Œ λ§Œλ“ λ‹€. λ”°λΌμ„œ νŠΉμ„±μ„ μ •κ·œν™”ν•΄μ£Όμ–΄μ•Ό ν•œλ‹€. μ΄λ²ˆμ—λŠ” ν‘œμ€€ν™”λ₯Ό 톡해 νŠΉμ„±μ„ μ •κ·œν™” ν•  것이닀.

Standardization, ν‘œμ€€ν™”λŠ” μž…λ ₯ 데이터에 μžˆλŠ” 각 νŠΉμ„±μ— λŒ€ν•΄ νŠΉμ„±μ˜ 평균을 λΉΌκ³  ν‘œμ€€ 편차둜 λ‚˜λˆ„λŠ” 것이닀.

mean = train_data.mean(axis = 0)
std = train_data.std(axis = 0)

train_data = train_data - mean
train_data = train_data / std

X_test = X_test - mean
X_test = X_test / std
from sklearn.model_selection import train_test_split
X_train, X_valid, y_train, y_valid = train_test_split(train_data, 
						      train_targets,
                              			      test_size = 0.2,
                                              	      random_state = 2045)

🏑 λͺ¨λΈλ§

from keras import models
from keras import layers

boston = models.Sequential(name = 'Regression')
boston.add(layers.Dense(64, activation = 'relu', input_shape = (13,)))
boston.add(layers.Dense(64, activation = 'relu'))
boston.add(layers.Dense(1))

boston.compile(loss = 'mse', optimizer = 'rmsprop', metrics = ['mae'])

λ§ˆμ§€λ§‰ 측은 ν•˜λ‚˜μ˜ μœ λ‹›μ„ κ°–κ³  ν™œμ„±ν™” ν•¨μˆ˜κ°€ μ—†λ‹€. ν•˜λ‚˜μ˜ 연속적인 값을 μ˜ˆμΈ‘ν•˜λŠ” 슀칼라 νšŒκ·€λ₯Ό μœ„ν•œ ꡬ성이닀.

mseλŠ” 평균 제곱 였차둜 νšŒκ·€ λ¬Έμ œμ—μ„œ 널리 μ‚¬μš©λ˜λŠ” μ†μ‹€ν•¨μˆ˜μ΄λ‹€. ν›ˆλ ¨ν•˜λŠ” λ™μ•ˆ λͺ¨λ‹ˆν„°λ§μ„ μœ„ν•΄ mae, 평균 μ ˆλŒ€ 였차λ₯Ό μΈ‘μ •ν•œλ‹€.

history = boston.fit(X_train, y_train,
		     epochs = 500,
             	     batch_size = 1,
                     validation_data = (X_valid, y_valid))
test_mse_score, test_mae_score = boston.evaluate(X_test, y_test)

0개의 λŒ“κΈ€

κ΄€λ ¨ μ±„μš© 정보

Powered by GraphCDN, the GraphQL CDN