Skip to content

Commit

Permalink
Able to predict
Browse files Browse the repository at this point in the history
  • Loading branch information
ivanj26 committed Sep 29, 2019
1 parent 73df8f8 commit faf12a0
Show file tree
Hide file tree
Showing 6 changed files with 67 additions and 24 deletions.
15 changes: 15 additions & 0 deletions test/data_weather.csv
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
outlook,temperature,humidity,windy,play
sunny,85,85,FALSE,no
sunny,80,90,TRUE,no
overcast,83,86,FALSE,yes
rainy,70,96,FALSE,yes
rainy,68,80,FALSE,yes
rainy,65,70,TRUE,no
overcast,64,65,TRUE,yes
sunny,72,95,FALSE,no
sunny,69,70,FALSE,yes
rainy,75,80,FALSE,yes
sunny,75,70,TRUE,yes
overcast,72,90,TRUE,yes
overcast,81,75,FALSE,yes
rainy,71,91,TRUE,no
Binary file added test/data_weather.xlsx
Binary file not shown.
48 changes: 34 additions & 14 deletions testmodel.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,32 @@
from model.util.layer import Layer
from model.util.node import Node
from model.util.activation_fun import sigmoid

import matplotlib.pyplot as plt
from util.preprocess import preprocess
import numpy as np

x = [[0.1, 0.9]]
y = [[0.9]]
epochs = 1000
epochs = 100

# X, y = preprocess('./test/data_weather.csv')

model = Sequential([
Layer(2),
Layer(2),
Layer(2),
Layer(2),
Layer(1),
])

model.compile()
model.fit(
x,
y,
epochs=epochs,
batch_size=2
)

# n11 = Node(sigmoid, [-0.2, 0.1], 0.1)
# n12 = Node(sigmoid, [-0.1, 0.3], 0.1)
Expand All @@ -25,23 +45,23 @@
# ])

# versi weights random
model = Sequential([
Layer(2),
Layer(1),
])
# model = Sequential([
# Layer(2),
# Layer(1),
# ])

model.compile()
model.fit(
x,
y,
epochs=epochs,
batch_size=1
)
# model.compile()
# model.fit(
# x,
# y,
# epochs=epochs,
# batch_size=1
# )

# plotting cost (error)
times = [i for i in range(epochs)]
times = [i for i in range(len(model.optimizer.error_list))]

plt.plot(times, model.optimizer.error_list)
plt.show()

print('\n\noutput predict {}: {}'.format(x[0], model.predict(x)))
print('\n\noutput predict {}: {}'.format(x[0], model.predict([x[0]])))
Empty file added util/__init__.py
Empty file.
17 changes: 17 additions & 0 deletions util/preprocess.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
from sklearn.preprocessing import LabelEncoder
from util.read_file import read_file

def preprocess(path):
X, y = read_file(path)

encoder = LabelEncoder()

X[:, 0], X[:, 3] = encoder.fit_transform(X[:, 0]), encoder.fit_transform(X[:, 3])
y = encoder.fit_transform(y)

X = X.tolist()
y = y.tolist()

y = [[e] for e in y]

return X, y
11 changes: 1 addition & 10 deletions util/read_file.py
Original file line number Diff line number Diff line change
@@ -1,15 +1,6 @@
import pandas as pd
from sklearn.preprocessing import LabelEncoder

encoder = LabelEncoder()

def read_file(path):
df_weather = pd.read_csv(path)
return df_weather.drop(['play'], axis=1).values, df_weather['play'].values

X, y = read_file('../test/data_weather.csv')
X[:, 0], X[:, 3] = encoder.fit_transform(X[:, 0]), encoder.fit_transform(X[:, 3])
y = encoder.fit_transform(y)

print(X)
print(y)
return df_weather.drop(['play'], axis=1).values, df_weather['play'].values

0 comments on commit faf12a0

Please sign in to comment.