Example of Logistic regression with python code

0 votes
Can you give me an example of logistic regression in python?
May 13 in Machine Learning by Hitesh
223 views

1 answer to this question.

0 votes

Have a look at this:

import csv 
import numpy as np 
import matplotlib.pyplot as plt 
def loadCSV(filename): 
''' 
function to load dataset 
'''
with open(filename,"r") as csvfile: 
lines = csv.reader(csvfile) 
dataset = list(lines) 
for i in range(len(dataset)): 
dataset[i] = [float(x) for x in dataset[i]]  
return np.array(dataset) 
def normalize(X): 
''' 
function to normalize feature matrix, X 
'''
mins = np.min(X, axis = 0) 
maxs = np.max(X, axis = 0) 
rng = maxs - mins 
norm_X = 1 - ((maxs - X)/rng) 
return norm_X 
def logistic_func(beta, X): 
''' 
logistic(sigmoid) function 
'''
return 1.0/(1 + np.exp(-np.dot(X, beta.T))) 
def log_gradient(beta, X, y): 
''' 
logistic gradient function 
'''
first_calc = logistic_func(beta, X) - y.reshape(X.shape[0], -1) 
final_calc = np.dot(first_calc.T, X) 
return final_calc 
def cost_func(beta, X, y): 
''' 
cost function, J 
'''
log_func_v = logistic_func(beta, X) 
y = np.squeeze(y) 
step1 = y * np.log(log_func_v) 
step2 = (1 - y) * np.log(1 - log_func_v) 
final = -step1 - step2 
return np.mean(final) 
def grad_desc(X, y, beta, lr=.01, converge_change=.001): 
''' 
gradient descent function 
'''
cost = cost_func(beta, X, y) 
change_cost = 1
num_iter = 1
while(change_cost > converge_change): 
old_cost = cost 
beta = beta - (lr * log_gradient(beta, X, y)) 
cost = cost_func(beta, X, y) 
change_cost = old_cost - cost 
num_iter += 1
return beta, num_iter 
def pred_values(beta, X): 
''' 
function to predict labels 
'''
pred_prob = logistic_func(beta, X) 
pred_value = np.where(pred_prob >= .5, 1, 0) 
return np.squeeze(pred_value) 
def plot_reg(X, y, beta): 
''' 
function to plot decision boundary 
'''
# labelled observations 
x_0 = X[np.where(y == 0.0)] 
x_1 = X[np.where(y == 1.0)] 
# plotting points with diff color for diff label 
plt.scatter([x_0[:, 1]], [x_0[:, 2]], c='b', label='y = 0') 
plt.scatter([x_1[:, 1]], [x_1[:, 2]], c='r', label='y = 1') 
# plotting decision boundary 
x1 = np.arange(0, 1, 0.1) 
x2 = -(beta[0,0] + beta[0,1]*x1)/beta[0,2] 
plt.plot(x1, x2, c='k', label='reg line') 
plt.xlabel('x1') 
plt.ylabel('x2') 
plt.legend() 
plt.show() 
if __name__ == "__main__": 
# load the dataset 
dataset = loadCSV('dataset1.csv') 
# normalizing feature matrix 
X = normalize(dataset[:, :-1]) 
# stacking columns wth all ones in feature matrix 
X = np.hstack((np.matrix(np.ones(X.shape[0])).T, X)) 
# response vector 
y = dataset[:, -1] 
# initial beta values 
beta = np.matrix(np.zeros(X.shape[1])) 
# beta values after running gradient descent 
beta, num_iter = grad_desc(X, y, beta) 
# estimated beta values and number of iterations 
print("Estimated regression coefficients:", beta) 
print("No. of iterations:", num_iter) 
# predicted labels 
y_pred = pred_values(beta, X) 
# number of correctly predicted labels 
print("Correctly predicted labels:", np.sum(y == y_pred)) 
# plotting regression line 
plot_reg(X, y, beta) 
answered May 13 by Jinu

Related Questions In Machine Learning

0 votes
1 answer
0 votes
1 answer

Example to run KNN algorithm using python

Have a look at this one: from sklearn.datasets ...READ MORE

answered May 8 in Machine Learning by Harvy
114 views
0 votes
1 answer
0 votes
0 answers
0 votes
2 answers

What is supervised learning?

Supervised learning is the machine learning task ...READ MORE

answered Sep 3 in Data Analytics by anonymous
• 28,320 points
34 views
0 votes
0 answers

What is semi-supervised machine learning?

What is semi-supervised machine learning? READ MORE

May 8 in Machine Learning by Ganesh
24 views
0 votes
1 answer
0 votes
1 answer

Different types of Logistic Regression

There are three main types of logistic ...READ MORE

answered May 13 in Machine Learning by Nikhil
417 views