机器学习-逻辑斯特回归及其手写实现梯度下降

一. 逻辑斯特回归简介

本章介绍的另一种模型:模型斯特回归(logistic regression)。

它实质上是一个线性分类器。在之前介绍的线性分类器中,h(x)=Θ*x+Θ0,如果h(x)>0,则样本x属于正类,否定x属于负类。直观上的认识,如何h(x)越大,我们更加确信样本属于正类,相应的,h(x)越小,我们更加确信样本属于负类,而h(x)在0之间徘徊,很难确信属于某一类。为了与概率统计知识想结合,可以将h(x)这种“值"上的特性映射到[0,1]之间,logistic 函数(又成sigmoid)函数,就是一个非常优越的选择,logistic 函数定义如下:
在这里插入图片描述
函数图像为:
在这里插入图片描述
本章的主题是介绍手写梯度下降,原理就不想述,想了解的点传送门

二. Python 代码手写实现

1. 解析数据集,分割特征和label
在这里插入图片描述
数据集加载的是sklearn.datasets中鸢尾花(iris)的数据集,用它来测试LR的分类能力。
在这里插入图片描述
通过输出可以看到,该数据集总共有100条样本,每个样本有4个特征,label只有0和1,属于一个二分类问题。在数据处理中,使用了一个常见的random.shuffle()函数来打乱数据集,再将训练集与预测集按照4:1的比例分开,用作后面的测试。
2. 定义损失函数和梯度下降函数在这里插入图片描述
第一个函数为sigmoid激活函数。
第二个为交叉熵损失函数,分类一般使用的为这个损失函数
第三个为训练函数,包含了梯度下降更新算法–权值w和偏差b的更新
3. 根据特征数量初始化构建权重W和bias-B,进而用梯度下降函数进行训练

在这里插入图片描述
可以从损失值画出来的图像看到,损失值有明显的下降,收敛性较好。
4. 测试集效果
在这里插入图片描述

作为基础的机器学习知识,必须要掌握具体的实现过程。在面试和笔试中都会有所涉及。
代码传送门 >>>>>>

发布了29 篇原创文章 · 获赞 120 · 访问量 6万+

猜你喜欢

转载自blog.csdn.net/qq_21578849/article/details/89789591