Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from pandas import read_csv
- from math import exp
- from numpy.numarray import dot
- from math import sqrt, pow
- data = read_csv('data-logistic.csv', header=None)
- y = data[0]
- X = data.iloc[:, 1:]
- l = len(X)
- w = (0, 0)
- k = 0.1
- border = 1e-5
- C = 10
- print zip(X,y)
- #def fn(y, x, w, i)
- def update_weight(X, Y, w, i):
- return w[i] + k/l*sum([(Y[j]*X[j][i]*(1-1/(1+exp((-Y[j])*dot(X[j], w))))-k*C*w[i]) for j in xrange(len(Y))])
- def distance(w1, w2):
- return sqrt(pow(w2[0]-w1[0], 2) + pow(w2[1]-w1[1], 2))
- for j in xrange(10000):
- new_w = (update_weight(X, y, w, 0), update_weight(X, y, w, 1))
- dist = distance(w, new_w)
- if dist < border:
- break
- w = new_w
- print w
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement