From 85e2269cbcfcfedef86a573e32efcb021c399c91 Mon Sep 17 00:00:00 2001 From: rushivarun Date: Tue, 20 Feb 2018 20:15:33 +0530 Subject: [PATCH 1/2] got stuck with the algorithm --- users/rushi/logistic_regression.py | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 users/rushi/logistic_regression.py diff --git a/users/rushi/logistic_regression.py b/users/rushi/logistic_regression.py new file mode 100644 index 0000000..b948865 --- /dev/null +++ b/users/rushi/logistic_regression.py @@ -0,0 +1,28 @@ +from numpy import * + +#training set +x = np.array([45,23,31,21,20,21,24,22,31,41,26,21,33,38,16,27,28,45,17,45]) +y = np.array([1,1,0,1,1,1,0,0,0,0,0,1,0,0,1,1,0,1,1,1]) + +# ages of people under 50 yesrs having cancer +# 1 = yes; 0 = nope + +learn = 0.00001 + +def sigmoid(): + sig = 1 / (1 + np.exp(-(z))) + return sig + +def trainer (): + intercept1 = 0 + intercept2 = 0 + grad1 = 0 + grad2 = 0 + for i in range(len(y)): + for j in range(len(x)): + grad1 = (grad1 + (sigmoid(intercept1 + intercept2*x[j]) - y[i])) + grad2 = (grad2 + (sigmoid(intercept1 + intercept2*x[j]) - y[i])*x[j]) + + + + From b73964678acdf78c026bd3dbc4d7c8947af00d78 Mon Sep 17 00:00:00 2001 From: rushivarun Date: Mon, 26 Feb 2018 21:11:14 +0530 Subject: [PATCH 2/2] logistic_regression --- users/rushi/logistic_regression.py | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/users/rushi/logistic_regression.py b/users/rushi/logistic_regression.py index b948865..42c5c6f 100644 --- a/users/rushi/logistic_regression.py +++ b/users/rushi/logistic_regression.py @@ -1,19 +1,19 @@ -from numpy import * +import numpy as np #training set -x = np.array([45,23,31,21,20,21,24,22,31,41,26,21,33,38,16,27,28,45,17,45]) -y = np.array([1,1,0,1,1,1,0,0,0,0,0,1,0,0,1,1,0,1,1,1]) +x = np.array([45,23,31,21,20,21,24,22,31,41,26,21,33,38,16,27,28,45,17,45,45,37,21,22,43,21,28,26]) +y = np.array([1,1,0,1,1,1,0,0,0,0,0,1,0,0,1,1,0,1,1,1,1,0,0,1,0,1,0,0,1]) # ages of people under 50 yesrs having cancer # 1 = yes; 0 = nope learn = 0.00001 -def sigmoid(): +def sigmoid(z): sig = 1 / (1 + np.exp(-(z))) return sig -def trainer (): +def trainer (x,y,age): intercept1 = 0 intercept2 = 0 grad1 = 0 @@ -22,6 +22,15 @@ def trainer (): for j in range(len(x)): grad1 = (grad1 + (sigmoid(intercept1 + intercept2*x[j]) - y[i])) grad2 = (grad2 + (sigmoid(intercept1 + intercept2*x[j]) - y[i])*x[j]) + intercept1 = intercept1 - (learn * grad1) + intercept2 = intercept2 - (learn*grad2) + return sigmoid(intercept1 + intercept2*age) + +ages = int(input()) +print(trainer(x,y,ages)) + + +