首页后端开发Pythonpython怎么实现逻辑回归的梯度下降法

python怎么实现逻辑回归的梯度下降法

时间2023-06-02 15:33:01发布访客分类Python浏览943
导读:python怎么实现逻辑回归的梯度下降法?这个简单,尽管Python的scikit-learn库提供了易于使用和高效的LogisticRegression类,但我们自己使用NumPy创建自己的实现,可以更好地理解逻辑回归算法。资料集我们将使...

python怎么实现逻辑回归的梯度下降法?

这个简单,尽管Python的scikit-learn库提供了易于使用和高效的LogisticRegression类,但我们自己使用NumPy创建自己的实现,可以更好地理解逻辑回归算法。

资料集

我们将使用Iris数据集,它包含3个类别,每个类别有50个实例,其中每个类别都表示一种鸢尾花植物。为简化目标,我们仅介绍前两个特征,而且我们简单使用其中两个分类,所以这是个二分类模型。

算法

给定一组输入X,我们希望将它们分配给两个可能的类别(0或1)之一。Logistic回归模型对每个输入属于特定类别的概率进行建模。

假设

一个函数接受输入并返回输出。为了生成概率,逻辑回归使用的函数为X的所有值提供0到1之间的输出。有许多满足此描述的函数,但是在这种情况下使用的是逻辑函数。在这里,我们将其称为sigmoid函数。

梯度下降

我们的目标是最小化损失函数,而我们必须达到的方法是通过增加/减少权重,即拟合权重。问题是,我们如何知道哪些参数应该更大,哪些参数应该更小?答案是相对于每个权重的损失函数的导数。它告诉我们如果修改参数,loss将如何变化。

然后,我们通过将它们减去导数乘以学习率来更新权重。

我们应该重复几次此步骤,直到获得最佳解决方案。

预测

通过调用sigmoid函数,我们可以得出某些输入x属于类别1的概率。让我们假设所有概率≥0.5 =类别1,所有概率0 =类别0,应根据我们正在处理的业务问题来定义此阈值。

那现在我们把代码全部放在一起。

评估

以上代码如果我们以较小的学习率和更多的迭代来训练实现,我们将发现跟sklearn其中逻辑回归的权重大致相等。所以我们把上面的代码整合一下,就可以得到我们想要的逻辑回归算法,包括梯度下降法。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: python怎么实现逻辑回归的梯度下降法
本文地址: https://pptw.com/jishu/58388.html
python如何将负数写进列表 如何在Python的列表中添加变量

游客 回复需填写必要信息