| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 数据结构与算法 -> python逻辑回归(logistic regression LR) 底层代码实现 BGD梯度下降算法 softmax多分类 -> 正文阅读 |
|
[数据结构与算法]python逻辑回归(logistic regression LR) 底层代码实现 BGD梯度下降算法 softmax多分类 |
逻辑回归前面用sigmoid函数实现了基本逻辑回归的二分类,感兴趣的童鞋点击###python逻辑回归(logistic regression LR) 底层代码实现 BGD梯度下降算法 二分类#####了解sigmoid二分类逻辑回归 >> 目录前言逻辑回归模型(Logistic Regression Model)是机器学习领域著名的分类模型。其常用于解决二分类(Binary Classification)问题。 但是在现实工作/学习/项目中,我们要解决的问题是经常多分类(Multiclass Classification)问题。 因此,需要对普通的基于sigmoid函数的逻辑回归模型进行拓展。本文介绍了 2 种拓展逻辑回归使其成为多分类模型的方法。 一、多0-1分类器多0-1分类器是根据类别数建立多个0-1二分类器,主要有两种思路:One v One(OVO)和One v Rest(OVR)。 1.OVOOne-Vs-One 是一种相对稳健的扩展方法。对于多分类问题,假设类别数为C,让不同类别两两组合训练二分类模型,这样总共产生 C C 2 C_{C}^{2} CC2?组合,即 C C 2 C_{C}^{2} CC2?个分类器。 举例说明:如下图所示,假设待分类数为3,则应训练3个二分类器①(绿色椭圆)、②(红色椭圆)、③(蓝色椭圆)。对于图中new point,分别使用这三个分类器预测其类别,分类器①结果为蓝色类,分类器②结果为蓝色类,分类器③结果为红色类或绿色类(此结果不重要),所以三个分类器的分类结果为2蓝一红(或绿),此预测过程就像投票一样,得票数最多的为最终结果,所以红色点应属于蓝色类。 2.OVROne v Rest(或者叫 One-Vs-All)转变的思路就如同方法名称描述的那样,选择其中一个类别为正类(Positive),使其他所有类别为负类(Negative)。 n 种类型的样本进行分类时,分别取一种样本作为一类,将剩余的所有类型的样本看做另一类,这样就形成了 n 个二分类问题,使用逻辑回归算法对 n 个数据集训练出 n 个模型,将待预测的样本传入这 n 个模型中,所得概率最高的那个模型对应的样本类型即认为是该预测样本的类型。 3 OvO vs OvR:OvO 用时较多,但其分类结果更准确,因为每一次二分类时都用真实的类型进行比较,没有混淆其它的类别。 二、softmax多分类softmax函数softmax函数可以将多分类的输出值转化为范围在[0,1]之间,和为1的概率分布。
s
o
f
t
m
a
x
(
Z
i
)
=
e
Z
i
∑
j
=
1
C
e
Z
j
softmax\left( \mathrm{Z}_{\mathrm{i}} \right) =\frac{\mathrm{e}^{\mathrm{Z}_{\mathrm{i}}}}{\sum_{\mathrm{j}=1}^{\mathrm{C}}{\mathrm{e}^{\mathrm{Z}_{\mathrm{j}}}}}
softmax(Zi?)=∑j=1C?eZj?eZi?? 预测函数预测函数选出数据经分类器后输出概率值的最大值所属类别,表达式如下: 损失函数这里不对损失函数及其导数的关系式进行推导,感兴趣的童鞋可以去这里学习公式推导过程。 参数 θ \theta θ对损失函数的导数关系根据资料, ? J ? Z j = ( p j ? y j ) \frac{\partial J}{\partial Z_j}=\left( p_j-y_j \right) ?Zj??J?=(pj??yj?) 根据求导的链式法则,
?
J
?
θ
=
?
J
?
Z
?
?
Z
?
θ
\frac{\partial J}{\partial \theta}=\frac{\partial J}{\partial Z}\cdot \frac{\partial Z}{\partial \theta}
?θ?J?=?Z?J???θ?Z? softmax多分类逻辑回归底层代码实现及可视化这里不对OVO和OVR方法进行编程,其代码原理较简单,只对SOFTMAX方法对应的逻辑回归进行编程及可视化。
这里展示类别数为2,3,4,5时模型的结果:
参考1.3 种方法实现逻辑回归多分类 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 17:23:09- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |