https://opentutorials.org/course/4570/28976
두번째 딥러닝 - 보스턴 집값 예측 - 생활코딩
수업소개 보스턴 집값을 예측하는 딥러닝 모델을 텐서플로우를 이용하여 만들어 보고, 모델을 구성하는 퍼셉트론에 대해 이해합니다. 강의 수식과 퍼셉트론 실습 소스코드 colab | backend.
opentutorials.org
10강 보스턴 집값 예측
Boston Housing Price
1978년도 미국 보스턴 주, 506개의 타운들의 집값 데이터
각각의 행 하나는 타운 하나, 열은 각 타운의 특성들을 의미
종속변수
MEDV: 해당 타운에 있는 주택들 가격의 중앙값(종속변수)
전체 집단의 수치와 비교하여 상이하게 높거나 낮아서 평균의 대표성을 무너뜨리는 이상한 값을 이상치라고 한다. 이러한 이상치로 인해 평균값이 대표성을 띠지 못하는 경우에 대안으로 사용하는 값이 중앙값
독립변수
CRIM: 범죄율
CHAS: 지역이 찰스강 근처에 있는지 여부를 나타냄(0=근처아님, 1=근처)
1~13번째 까지의 열은 14변째 열인 집값(종속변수)에 영향을 미치는 독립변수.
이 독립변수들이 어떻게 종속변수에 영향을 미치는지를 나타내는 공식이 왼쪽의 공식
--> "머신러닝을 통해 얻을 수 있는 것."
11강 수식과 퍼셉트론
모델의 구조를 만드는 코드
X = tf.keras.layers.Input(shape=[13]) #독립변수의 개수 = 13
13개의 입력을 받는 입력층을 구성
Y = tf.keras.layers.Dense(1)(X) #종속변수의 개수 = 1
13개의 입력으로부터 1개의 출력을 만드는 구조를 만드는 것 -> 수식을 만드는 것
model = tf.keras.models.Model(X, Y)
model.compile(loss='mse')
컴퓨터는 학습과정에서 입력되는 데이터를 보고 이 수식의 w들과 b를 찾는 것
w = 가중치(weight), b = 편향(bias)
퍼셉트론
우리가 만든 모델은 뉴런 하나로 이루어져 있음 : 뉴런? ->모형과 수식 == 퍼셉트론
12강 보스턴 집값 예측(실습)
###########################
# 라이브러리 사용
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]) #독립변수 개수=13
Y = tf.keras.layers.Dense(1)(X) #종속변수 개수=1
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])) #독립변수의 개수가 500개로 너무 많으니 5번째부터 9번째까지의 총 5개의 독립변수 사용
# 종속변수 확인
print(종속[5:10]) #정답 확인
###########################
# 모델의 수식 확인
print(model.get_weights()) #w값 13개, 가중치값 1개 출력
- 회귀에서 100%로 정답을 맞추는 건 불가능. 차이를 최소한으로 줄이는 것이 목적
- 로컬에 있는 데이터를 읽어올 때는 colab의 폴더에 로컬 파일을 업로드한 후 경로를 복사하여 붙여넣으면 됨.
'스터디📖 > ML, DL' 카테고리의 다른 글
Tensorflow (python) - 14, 15, 16, 17강 세번째 딥러닝 - 아이리스 품종 분류 (0) | 2021.09.01 |
---|---|
Tensorflow (python) - 13강 학습의 실제 (0) | 2021.08.27 |
Tensorflow (python) - 7, 8, 9강 첫번째 딥러닝 - 레모네이드 판매 예측 (0) | 2021.08.24 |
Tensorflow (python) - 5, 6강 표를 다루는 도구 '판다스' (0) | 2021.08.23 |
Tensorflow (python) - 1, 2, 3, 4강 (0) | 2021.08.21 |