Commit 85b39497 authored by Sushant Mahajan's avatar Sushant Mahajan

added prediction code, need to perform minimization

parent e13e9135
Pipeline #278 skipped
...@@ -5,12 +5,21 @@ import csv ...@@ -5,12 +5,21 @@ import csv
from random import random from random import random
from pprint import pprint as pp from pprint import pprint as pp
from math import log, exp from math import log, exp
from functools import reduce
import numpy as np import numpy as np
params = {"layers":[57, int(57/2), 1], "test":"TestX.csv", "train":"Train.csv"} params = {"layers":[57, int(57/2), 1], "test":"TestX.csv", "train":"Train.csv"}
def getData(srcF, isTrain=True, addBias=True): def doNormalize(X):
#do 0 mean 1 std normalization
x1 = np.array(X,dtype=float)
for i in range(len(X[0])):
col = x1[:,i]
mean,std = col.mean(),col.std()
std = std if std!=0.0 else 1.0
x1[:,i] = (x1[:,i]-mean)/std
return x1.tolist()
def getData(srcF, isTrain=True, addBias=True, normalize=True):
X,y=[],[] X,y=[],[]
with open(srcF) as src: with open(srcF) as src:
reader = csv.reader(src, delimiter=',') reader = csv.reader(src, delimiter=',')
...@@ -27,6 +36,9 @@ def getData(srcF, isTrain=True, addBias=True): ...@@ -27,6 +36,9 @@ def getData(srcF, isTrain=True, addBias=True):
if isTrain: if isTrain:
y.append(int(row[-1])) y.append(int(row[-1]))
if normalize:
X = doNormalize(X)
#print(X[0])
return (X,y) return (X,y)
def sigmoid(v): def sigmoid(v):
...@@ -88,9 +100,18 @@ def cost(li, lh, lo, weights, X, y, lamb): ...@@ -88,9 +100,18 @@ def cost(li, lh, lo, weights, X, y, lamb):
return J,grad return J,grad
def predict(x, w1, w2):
x=[1]+x #58x1
x = np.array(x)
h1 = sigmoid(np.dot(w1,x).tolist()) #28x58 * 58x1 = 28x1
h1 = [1]+h1
h2 = sigmoid(np.dot(w2,h1).tolist()) #1x29 * 29x1 = 1x1
return 1 if h2>0.5 else 0
if __name__ == "__main__": if __name__ == "__main__":
X,y = getData(params["train"]) X,y = getData(params["train"])
# tX,ty = getData(params["test"], isTrain=False) tX,ty = getData(params["test"], isTrain=False)
# print(len(X), len(X[0]), len(y), X[0]) # print(len(X), len(X[0]), len(y), X[0])
# print(len(tX), len(ty), tX[0]) # print(len(tX), len(ty), tX[0])
li,lh,lo = tuple(params["layers"]) li,lh,lo = tuple(params["layers"])
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment