【监督学习:线性回归和分类】3.分类
逻辑回归
分类问题
假设预测的变量y是离散的值,需要使用逻辑回归(Logistic Regression,LR)的算法,实际上它是一种分类算法。
二元分类
二元分类问题是指y只有两个离散值的情况,例如:
- 垃圾邮件分类:y=1表示是垃圾邮件,y=0表示不是垃圾邮件
- 癌症检测:y=1表示患有癌症,y=0表示没有癌症
假说表示
对于二元分类问题,我们可以使用线性回归的假说表示:
但是,这样的假说表示有一个问题,就是的值可能大于1或者小于0,而我们需要的是0到1之间的值,因为我们的y只有0和1两个值。
为了解决上面的问题,我们需要一个函数,这个函数的值域是0到1之间的,这样我们就可以把的值限制在0到1之间,这个函数就是Sigmoid函数:
Sigmoid函数的图像如下:
我们把代入Sigmoid函数,得到:
的值域是0到1之间的,把看成是一个概率值,例如,表示有70%的概率是垃圾邮件,有30%的概率不是垃圾邮件。
决策边界
二元分类的决策边界
对于图中的二元分类问题,设
当参数取值为时,决策边界为:
此时,决策边界是一条直线。
多元分类的决策边界
根据训练集的不同,决策边界可能是一条直线,也可能是一条曲线,例如:
也可能是其他多项式函数。
代价函数
逻辑回归的参数
逻辑回归的参数是,我们需要找到最优的,使得尽可能的接近y。
代价函数的选择
如果我们使用线性回归的代价函数,即平方误差代价函数,得到的代价函数是非凸函数,这样的话,我们使用梯度下降法得到的结果可能是局部最优解,而不是全局最优解。
为了解决上面的问题,我们需要选择一个新的代价函数,使得代价函数是凸函数。
定义逻辑回归的代价函数为:
其中,对函数的定义为:
或者合并写作
在这个代价函数中,当y=1时,如果越接近1,函数的值越小;当y=0时,如果越接近0,函数的值越小。
梯度下降法
代价函数合并写作:
为使用梯度下降法,我们需要求出代价函数的偏导数:推导过程如下:
不断迭代,直到收敛,得到最优的。
正则化问题
过拟合
过拟合是指模型在训练集上表现良好,但是在测试集上表现不好的情况。以线性回归为例,如果我们使用高阶多项式函数来拟合数据,就会出现过拟合的情况。
在多项式拟合中,的次数越高,拟合效果越好,但是相应的预测能力就可能变差。
解决过拟合的方法
解决过拟合的方法有:
- 增加训练集的数量
- 减少特征的数量
- 正则化
正则化
正则化是解决过拟合的一种方法,减少特征的数量防止过拟合的方法是一种特殊的正则化。即将对应参数的值设为0;
正则化是指在代价函数中增加一项,使得参数的值尽量小,当参数降低到一定程度时,可以视为这个参数对结果的影响可以忽略不计,这样就可以减少特征的数量,防止过拟合。
代价函数
为了防止参数的值过大,我们需要对代价函数进行修改,对参数添加一个很大的倍数,当参数变大后,代价函数会随之变大,这样就可以防止参数过大。
代价函数的正则化形式为:
其中,是正则化参数,用来控制正则化的程度,越大,正则化的程度越大。
的选择
的选择需要根据实际情况来确定,一般来说,我们可以从一个较小的值开始,然后不断增大,直到达到我们的要求。
- 如果太大,会导致模型欠拟合,因为模型的参数都很小,不能很好的拟合数据。
- 如果太小,会导致模型过拟合,因为模型的参数都很大,会导致模型过于复杂,不能很好的拟合数据。
梯度下降法
线性回归的梯度下降法带入新的代价函数,得到:
逻辑回归的梯度下降法带入新的代价函数,得到:
本文作者:asdio
本文链接:https://www.cnblogs.com/agitm/p/17726263.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 使用C#创建一个MCP客户端
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 按钮权限的设计及实现