Logistic Regression
目的:判断留学申请是否成功
step1:read data
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
import os
path='data'+os.sep+'LogiReg_data.txt'
pdData=pd.read_csv(path,header=None,names=['exam1','exam2','admitted'])
pdData.head()
step2: create sigmoid
def sigmoid(z):
return 1/(1+np.exp(-z))
step3: create model
def model(X,theta):
return sigmoid(np.dot(X,theta.T))
# theta 参数,dot 矩阵的乘法
step4:处理数据
pdData.insert(0,'one',1) #在第一列位置插入1行名为one数据为1的数据
orig_data=pdData.as_matrix() #将data 转化为 matrix 矩阵
cols=orig_data.shape[1] #数据有多少列
x=orig_data[:,0:cols-1] #每行的最后一个数不取值
y=orig_data[:,cols-1:cols] #获取每行的最后一个数
theta=np.zeros([1,3]) # 没有具体的值,只是起到占位的作用
step5:cost 损失函数
def cost(x,y,theta):
left=np.multiply(-y,np.log(model(x,theta)))
right=np.multiply(1-y,np.log(1-model(x,theta)))
return np.sum(left-right