逻辑回归

1.逻辑回归模型

X 代表特征向量

g 代表逻辑函数(logistic function)是一个常用的逻辑函数为 S 形函数(Sigmoid function)

def sigmoid(z):
    return 1 / (1 + np.exp(-z))

代价函数


更新函数


边界函数

按照以上的公式,得到逻辑回归的边界函数,用来预测类别。

逻辑回归的具体方法和线性回归类似。不断迭代更新theta,得到较好的边界函数。

2.优化函数

通过优化函数,使代价函数cost达到最小,得到最好的拟合参数theta。

scipy.optimize.minimize

scipy.optimize.minimize(funx0args=()method=Nonejac=Nonehess=Nonehessp=Nonebounds=Noneconstraints=()tol=Nonecallback=Noneoptions=None)

import scipy.optimize as opt
res = opt.minimize(fun=cost, x0=theta, args=(X, y), method='Newton-CG', jac=gradient)

fun:目标函数被最小化。 必须采用f(x,* args)的形式。 

x:优化参数x是一维数组。

args:是完全指定函数所需的任何附加固定参数的元组。

method:优化的算法。CG:使用共轭梯度算法最小化一个或多个变量的标量函数。

jac: 可以是可调用的,返回目标的梯度。  Only for CG, BFGS, Newton-CG, L-BFGS-B, TNC, SLSQP, dogleg, trust-ncg, trust-krylov, trust-region-exact

final_theta = res.x

3.判定边界

即用一条直线来做为不同类别的边界划分,在直线上方,即Y值大于直线的值;在直线下方,即Y值小于直线的值。

方程为:H=theta0+theta1*X1+theta2*X2=0,即为边界直线,判定H>0或H<=0,分别为不同类别。

4.类别的预测

def predict(x, theta):
    prob = sigmoid(x @ theta)
    return (prob >= 0.5).astype(int)

根据学习得到的theta,并将X测试数据带入公式,得到Sigmoid函数值在0-1之间,以0.5为区分进行预测。

下图为sigmoid函数:


5.线性回归和逻辑回归的区别参考自其它博客,我觉得解释的很好。















  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值