신경망 구성 어디가 잘못된걸까요?

조회수 525회

from sklearn import svm,metrics
from sklearn.model_selection import train_test_split
import matplotlib.pyplot as plt
import pandas as pd
import tensorflow as tf
import numpy as np

data = pd.read_csv('기상.csv')

tbl = data.drop('CREATE_DT', axis=1)

a = ['최고기온', '일교차', '습도:관측', '강수량']

x_data = np.array(tbl[a])

y_data = np.array(tbl['출수량']).reshape(660, 1)

X = tf.placeholder(tf.float32, shape=[None, 4])
Y = tf.placeholder(tf.float32, shape=[None, 1])


W1 = tf.Variable(tf.random_uniform([4, 4], -1., 1.))

b1 = tf.Variable(tf.zeros([4]))

L1 = tf.nn.relu(tf.add(tf.matmul(X, W1), b1))

W2 = tf.Variable(tf.random_normal([4, 5]))
b2 = tf.Variable(tf.zeros([5]))
L2 = tf.nn.relu(tf.add(tf.matmul(L1, W2), b2))

W3 = tf.Variable(tf.random_normal([5, 6]))
b3 = tf.Variable(tf.zeros([6]))
L3 = tf.nn.relu(tf.add(tf.matmul(L2, W3), b3))

W4 = tf.Variable(tf.random_normal([6, 4]))
b4 = tf.Variable(tf.zeros([4]))
L4 = tf.nn.relu(tf.add(tf.matmul(L3, W4), b4))

W5 = tf.Variable(tf.random_normal([4, 3]))
b5 = tf.Variable(tf.zeros([3]))
L5 = tf.nn.relu(tf.add(tf.matmul(L4, W5), b5))

W6 = tf.Variable(tf.random_normal([3, 1]))
b6 = tf.Variable(tf.zeros([1]))
model = tf.add(tf.matmul(L5, W6), b6)




cost = tf.reduce_mean(
    tf.nn.softmax_cross_entropy_with_logits_v2(labels=Y, logits=model))

optimizer = tf.train.AdamOptimizer(learning_rate=0.01)
train_op = optimizer.minimize(cost)

init = tf.global_variables_initializer()
sess = tf.Session()
sess.run(init)

for step in range(1000):
    sess.run(train_op, feed_dict={X: x_data, Y: y_data})

    if (step + 1) % 10 == 0:
        print(step + 1, sess.run(cost, feed_dict={X: x_data, Y: y_data}))

prediction = tf.argmax(model, 1)
target = tf.argmax(Y, 1)
print('예측값:', sess.run(prediction, feed_dict={X: x_data}))
print('실제값:', sess.run(target, feed_dict={Y: y_data}))
is_correct = tf.equal(prediction, target)
accuracy = tf.reduce_mean(tf.cast(is_correct, tf.float32))
print('정확도: %.2f' % sess.run(accuracy * 100, feed_dict={X: x_data, Y: y_data}))
sess.close()


데이터 일부 : 이미지

이제막 신경망에 대해서 알게된 학생입니다. 현재 신경망을 사용해 날씨 상태에 따른 점수를 학습하고 테스트해보고자합니다. 하지만 해당 코드를 돌렸을시 결과에 대한 값은 모두 0으로 처리되어 정확도가 100이 나와버리는 상황이 발생합니다.

혹시 어떤 해결방안이 있는지 알 수 있을까요? 이미지

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)