逻辑回归-2.逻辑回归方程及实现

逻辑回归方程

之前得出逻辑回归的损失函数:
\[ J(\theta) = -\frac{1}{m}\sum_{i=1}^{m}y^{(i)}log(\sigma (X _b^{(i)} \cdot \theta))+(1-y^{(i)})log(1-\sigma (X_b^{(i)} \cdot \theta)) \]


此方程没有数学解析解,只能使用梯度下降法的方法来找到最佳的$ \theta $值,使得损失函数最小。
梯度下降法的表达式(推导过程在这里不进行阐述):
\[ \frac{J(\theta)}{\theta_j} = \frac{1}{m}\sum_{i=1}^{m}(\sigma (X_b^{(i)} \cdot \theta)-y^{(i)})X_j^{(i)} \]

比较线性回归的梯度表达式及向量化后的表达式:
\[ \frac{J(\theta)}{\theta_j} = \frac{2}{m}\sum_{i=1}^{m}(X_b^{(i)} \cdot \theta-y^{(i)})X_j^{(i)} \]
\[ \Lambda J = \frac{2}{m}(X_b\theta -y)^T\cdot X_b = \frac{2}{m}X_b^T \cdot (X_b\theta -y) \]
不难得出逻辑回归向量化后的梯度表达式:
\[ \Lambda J = \frac{1}{m}X_b^T \cdot (\sigma (X_b\theta) -y) \]

算法实现

加载鸢尾花数据集

import numpy
from sklearn import datasets
from mylib import LogisticRegression
from matplotlib import pyplot

iris = datasets.load_iris()
X = iris.data
y = iris.target

# 取y值为0和1的数据,为了数据可视化,特征只取两个
X = X[y<2,:2]
y = y[y<2]

绘制数据集

pyplot.scatter(X[y==0,0],X[y==0,1],color='red')
pyplot.scatter(X[y==1,0],X[y==1,1],color='blue')
pyplot.show()

1465169-20190823165156631-177997871.png

用封装好的逻辑回归,查看准确率:

from mylib.model_selection import train_test_split

x_train,x_test,y_train,y_test = train_test_split(X,y,seed =666)

logic_reg = LogisticRegression.LogisticRegression()
logic_reg.fit(x_train,y_train)
logic_reg.score(x_test,y_test)

1465169-20190823165225572-1891276929.png
可以看出,预测准确率100%

转载于:https://www.cnblogs.com/shuai-long/p/11401133.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值