컴공생의 다이어리
선형 회귀 인공지능 구현해보기 본문
다음과 같이 하루 노동 시간과 하루 매출에 대한 표가 주어졌을 때, 하루 노동 시간이 8시간일 때의 하루 매출을 예측해보자!
하루 노동 시간 | 하루 매출 |
1 | 25,000 |
2 | 55,000 |
3 | 75,000 |
4 | 110,000 |
5 | 128,000 |
6 | 155,000 |
7 | 180,000 |
구현 코드
import tensorflow.compat.v1 as tf
tf.disable_v2_behavior()
xData = [1,2,3,4,5,6,7]
yData = [25000,55000,75000,110000,128000,155000,180000]
W = tf.Variable(tf.random_uniform([1],-100,100)) # W : 가설의 기울기,weight의 줄임말로 가중치라는 뜻을 가지기도 함
b = tf.Variable(tf.random_uniform([1],-100,100)) # b : bias의 줄임말
# placeholder라는 하나의 틀
X = tf.placeholder(tf.float32)
Y = tf.placeholder(tf.float32)
# H : 가설식
H = W*X+b
# cost : 비용함수 => (이상치-실제값)의 제곱의 평균
cost=tf.reduce_mean(tf.square(H-Y))
# a : 경사하강 알고리즘에서 얼마나 점프할지에 대한 정의
a = tf.Variable(0.01)
optimizer = tf.train.GradientDescentOptimizer(a)
# 비용함수를 가장 적게 만드는 방향으로 학습하도록 함
train = optimizer.minimize(cost)
# 변수 초기화
init = tf.global_variables_initializer()
# 세션
sess = tf.Session()
sess.run(init)
# 실제로 학습 진행
for i in range(5001):
sess.run(train,feed_dict={X:xData, Y:yData})
if i % 500 == 0:
print(i, sess.run(cost,feed_dict = {X:xData, Y:yData}), sess.run(W), sess.run(b))
#하루 노동 시간이 8일 때의 하루 매출 예측 값
print(sess.run(H, feed_dict = {X:[8]}))
따라서 하루 노동 시간이 8시간일 때의 하루 매출은 206,571.39로 예측되었다.
728x90
'데이터 분석 & 머신러닝' 카테고리의 다른 글
텐서플로우(Tensorflow) 변수와 상수 (0) | 2021.01.14 |
---|---|
텐서플로우(Tensorflow)란? (0) | 2021.01.14 |
비용 함수(Cost Function) (0) | 2021.01.13 |
k-mean 클러스터링 (0) | 2021.01.12 |
선형 회귀(Linear Regression) (0) | 2021.01.10 |
Comments