import tensorflow as tf
import numpy as np
from tensorflow.keras.layers import Dense
from tensorflow.keras.models import Sequential
import random
tf.random.set_seed(1)
np.random.seed(1)
file_read = open('main_new.csv',encoding='UTF-8')
line=file_read.readline()
output_d_list = []
input_d_list = []
counter = 0
while True:
line = file_read.readline()
if line =='':
break
comp = line.split(',')
c1 = float(comp[0]) #지점
# c2 = float(comp[1]) #일시
c3 = float(comp[2]) #기온
c4 = float(comp[3]) #강수량
if c4 ==0:
counter += 1
print(counter)
if counter > 50:
continue
c5 = float(comp[4]) #풍속
c6 = float(comp[5]) #습도
c7 = float(comp[6]) #이슬점온도
c8 = float(comp[7]) #현지기압
input_d = np.asarray([c1, c3, c5, c6, c7, c8])
input_d_list.append(input_d)
output = [0, 0]
if c4==0:
output = [0,1] # 비가 안옴 1
else:
output = [1,0] # 비가 오면 0
output_d_list.append(np.asarray(output))
X_train = np.asarray(input_d_list[:int(len(input_d_list) * 0.8)])
Y_train = np.asarray(output_d_list[:int(len(input_d_list) * 0.8)])
X_test = np.asarray(input_d_list[int(len(input_d_list) * 0.8):])
Y_test = np.asarray(output_d_list[int(len(input_d_list) * 0.8):])
model = Sequential([
Dense(7, activation=None),
Dense(30, activation='relu'),
Dense(30, activation='relu'),
Dense(2, activation=None)
])
model.compile(optimizer='adam',
loss='mse',
metrics=['accuracy'])
model.fit(X_train, Y_train, epochs=100, validation_split=0.2)
print('end training')
model.evaluate(X_test, Y_test, verbose=2)
for i in range(len(X_test)):
print(model.predict(np.asarray([X_test[i]])))
for i in range(len(X_test)):
if np.argmax(model.predict(np.asarray([X_test[i]]))) == np.argmax(Y_test[i]):
print('{} {}'.format(np.argmax(model.predict(np.asarray([X_test[i]]))),
np.argmax(Y_test[i])))