对于逻辑回归的总结

人们都说逻辑回归是一种很简单的分类器,笔者也看过不少关于逻辑回归的文章以及教程之类的,可是如果你让把独立地把这个逻辑回归过程完整地复述一遍,还是会有很多细节不太明了。在这里以问答形式作一个总结,错误的地方请指正。

一 能用简单的话讲讲什么是逻辑回归吗?
逻辑回归就是将线性模型的输出值经过Sigmoid函数处理,将输出值定位在(0,1)之间,用于二分类的任务。它不仅能够预测出类别,还能得到属于某个类别的概率预测。

二 逻辑回归的代价函数以及导数是什么?
这里写图片描述
这里写图片描述
用极大似然法来估计参数,即属于某正确类别的概率越大越好。初学者看到一大堆公式可能就会害怕, 这里我用通俗易懂的语言来解释一下:前面已经说过这是个二分类问题,假设有0类和1类,逻辑回归输出值为P, 可以看作是属于1类的概率。如果真实标签为1, 那么P就是我们需要最大化的概率,如果真实标签为0,那么(1-P)才是我们需要最大化的概率。我们将这些训练数据属于正确样本的概率相乘起来,然后极大化这个式子。不过概率值是小数,这么多个小数相乘容易赵成浮点数下溢,一般用取对数似然。取对数之后,我们便可以对损失函数求导,并用梯度下降法来求参数值啦。(sigmoid函数有个很好的性质:sigmoid’ = sigmoid*(1-sigmoid))

三 为啥代价函数不能用均方误差函数来做呢?
将Sigmoid函数代入代价函数后发现是个非凸函数,计算太麻烦

四 逻辑回归有什么优缺点?
形式简单,可解释性好
难以拟合复杂的数据

五 逻辑回归的决策边界应该怎么表示?
根据推算可知,线性方程的上方和下方就是两个类。
这里写图片描述
这里写图片描述
当我们将线性方程改为多项式项的时候,决策边界就是不规则的:
绘制方法很简单,给不同类别的点取不同的颜色,出现的就是决策边界。
这里写图片描述

六 逻辑回归的正则化表示?
这里写图片描述

七 怎么用scikit-learn来实现逻辑回归?

import numpy as np
import malplotlib.pyplot as plt

np.random.seed(666)
x = np.random.normal(0,1,size=(200,2))
y = np.array(x[:,0]**2+x[:,1]<1.5, dtype='int')
for _ in range(20):#add noise
    y[np.random.randint(200)]=1
plt.scatter(x[y==0,0],x[y==0,1])
plt.scatter(x[y==1,0],x[y==1,1])
plt.show()

这里写图片描述

随机分成测试组和训练组:

from sklearn.model_selection import train_test_split
x_train, x_test,y_train,y_test = train_test_split(x,y,random_state=666)

开始逻辑回归:

from sklearn.linear_model import LogisticRegression
log_reg = LogisticRegression()
log_reg.fit(x_train,y_train)

最后附上笔记
这里写图片描述
这里写图片描述
这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值