Tensorflow - Python (2) Perceptron, Weight, Bias

보스턴 집 값 예측

  • 각각의 행 : town
  • 열 : 해당 town에 영향을 미치는 변수
  • medv : 집값의 중간값
    • 첫번째 행의 medv 24 : 해당 town의 주택 값의 중간값이 24
    • 이 값이 클 수록 비싼 주택이 많은 지역이 됩니다.
  • crim : 범죄율
  • Chas : 강변 (가까우면 1 아니면 0)
  • RM : 평균 방수
  • AGE : 노후주택 비율
  • TAX : 재산세 세율
  • PTRATIO : 학생/교사 비율
  • LSTAT : 하위계층 비율

y = w1x1 + w2x2 + w3x3 + … + b
아래 코드에서 Dense() layer는 위 수식을 만들어 냅니다.
컴퓨터는 학습하는 과정에서 입력데이터를 보고 위 수식의 w와 b를 찾아냅니다.
위 수식 == 인공 신경망에서 뉴런 == Persceptron == 퍼셉트론
x : 독립변수
y : 종속변수
Weight 가중치
Bias 편향

  • 딥러닝데이터를 가지고 스스로 학습한다는 것은 신기하다
  • 아하! 수식을 만들어놓고 종속변수의 값을 가장 근접하게 만들도록 가중치를 찾는 것이구나!

소스 코드

  • 모델 학습 방법
    • 평균 제곱 오차(Mean Squared Error : MSE)
###########################
# 라이브러리 사용
import tensorflow as tf
import pandas as pd
 
###########################
# 1.과거의 데이터를 준비합니다.
파일경로 = 'https://raw.githubusercontent.com/blackdew/tensorflow1/master/csv/boston.csv'
보스턴 = pd.read_csv(파일경로)
print(보스턴.columns)
보스턴.head()
 
# 독립변수, 종속변수 분리 
독립 = 보스턴[['crim', 'zn', 'indus', 'chas', 'nox', 'rm', 'age', 'dis', 'rad', 'tax',
            'ptratio', 'b', 'lstat']]
종속 = 보스턴[['medv']]
print(독립.shape, 종속.shape)
 
###########################
# 2. 모델의 구조를 만듭니다
X = tf.keras.layers.Input(shape=[13])  # 독립변수 개수
Y = tf.keras.layers.Dense(1)(X)  # 종속변수 개수
model = tf.keras.models.Model(X, Y)
model.compile(loss='mse')
 
###########################
# 3.데이터로 모델을 학습(FIT)합니다.
model.fit(독립, 종속, epochs=1000, verbose=0)
model.fit(독립, 종속, epochs=10)
 
###########################
# 4. 모델을 이용합니다
print(model.predict(독립[5:10])) #python : **슬라이싱**  독립변수의 5번째부터 10번째까지 예측
# 종속변수 확인
print(종속[5:10])
 
###########################
# 모델의 수식 확인
print(model.get_weights()) # bias 값을 print된 결과에서 array에서 볼 수 있음

강의 출처 : 생활코딩