머신러닝 야학 정리
-
1978년도 미국 보스턴 주 506개 타운들의 집값을 알려주는 표
-
각각의 행 하나는 타운 하나를 의미, 열은 각 타운의 특성들을 의미
-
제일 중요한 열은 14번째 'MEDV' → 해당 타운에 있는 주택들 가격의 중앙값을 나타낸다.
중앙값 → 다섯채의 집이 있다고 가정했을때 주택들을 가격을 기준으로 순서대로 정렬한 다음에 그중에서 가장 가운데에 있는 값이 중앙값이다.
중앙값과 비슷하게 사용되는 것 → 평균값
중앙값, 평균값 ⇒ 집단을 대표하기 위해 사용되는 값
- 평균의 대표성을 무너뜨리는 값 → 이상치
EX) 평균 연봉 - 높은 연봉을 받는 사람들의 연봉이 평균에 영향을 미쳐 괴리가 커지게됨
→ 평균값이 대표성을 띄지 못해 대안으로 사용되는 것이 '중앙값'
-
MEDV - 해당 지역 주택값 사이에 가장 가운데에 있는 값⇒값이 클수록 비싼 주택이 많은 지역
-
CRIM - 범죄율
-
CHAS - 그 지역이 찰스강 근처에 있는지 여부를 나타냄( 가까우면 1, 아니라면 0 )
-
RM - 평균 방의 갯수
-
LSTAT - 하위 계층 비율
⇒ 1열부터 13열까지는 14열에 영향을 미치는 '독립변수', 14열 집값은 '종속변수'
# 1. 과거의 데이터 준비
보스턴 = pd.read_csv('boston.csv')
독립 = 보스턴[['crim','zn','indus','chas','nox','rm',
'age','dis','rad','tax','ptration','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')
⇒ 13개의 입력으로부터 1개의 출력을 만들어내는 구조를 만드는 것
⇒ 1개의 퍼센트론으로 이루어진 구조
- 위 모형의 이름 - 퍼셉트론 (Perceptron)
- W1, W2... 들의 이름 - 가중치(Weight)
- b의 이름 - 편향 (bias)
즉, 두번째 줄의 Dense 레이어는 이 수식을 만드는 것.
⇒ 컴퓨터는 학습과정에서 입력되는 데이터를 보고 이 수식의 W들과 b를 찾는 것
⇒ 2개의 출력, 수식 2개를 만들어야 함.
⇒ 퍼센트론 두개가 병렬로 연결됨
# 3. 데이터로 모델을 학습(FIT)
model.fir(독립, 종속, epochs=1000)
# 4. 모델을 이용
print("Predictions: ", model.predict(독립[0:5])
+ 실습
# 라이브러리 사용
import tensorflow as tf
import pandas as pd
# 1. 과거의 데이터를 준비
file_path = 'https://raw.githubusercontent.com/blackdew/tensorflow1/master/csv/boston.csv'
boston = pd.read_csv(file_path)
print(boston.columns)
boston.head()
# 독립변수, 종속 변수 분리
독립 = boston[['crim', 'zn', 'indus', 'chas', 'nox', 'rm', 'age', 'dis', 'rad', 'tax',
'ptratio', 'b', 'lstat']]
종속 = boston[['medv']]
print(독립.shape, 종속.shape)
(506, 13) (506, 1)
# 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=10)
# 4. 모델을 이용
# 5부터 10번째까지 사용
model.predict(독립[5:10])
# [0:5] => 슬라이싱
종속[5:10]
# 모델의 수식 확인
model.get_weights()
집값 = -0.09253382 * x1 + 0.05048407 * x2 + -0.03323708 * x3 + 2.7112598 * x4 +
1.010369 * x5 + 5.3556046 * x6 + -0.01135556 * x7 + -0.9961182 * x8 +
0.18329626 * x9 + -0.01083524 * x10 + -0.43319786 * x11 + 0.01336813 * x12 +
-0.46219617 * x13 + 4.378936
github : https://github.com/dlwltn98/tensorflow_study
'머신러닝 > Tensorflow 기초' 카테고리의 다른 글
3. 아이리스 품종 분류 (0) | 2021.01.19 |
---|---|
+ 딥러닝 학습의 원리 (0) | 2021.01.15 |
1. 레모네이드 판매 예측 (1) | 2021.01.13 |
실습환경 (0) | 2021.01.13 |
Tensorflow 기초 (python) (0) | 2021.01.13 |