(二)逻辑回归的扩展——多线性分类Softmax Regression算法模型(附代码)

前言

在上一篇逻辑回归(https://blog.csdn.net/u014571489/article/details/83387681)中已经讲到了为什么有sigmoid激活函数、极大似然估计法和梯度下降法等。

当逻辑回归问题被扩展到多线性分类问题时,第一步要解决的还是计算概率的问题,即该点属于每个类别的概率是多少,选择概率最大的类为该点所在的类。然后根据概率计算公式构建目标函数,然后用梯度下降法进行求解即可。

概率函数

下面就是Softmax Regression的概率函数,类似于逻辑回归中的sigmoid函数:

其中\theta _{j}^{T}就是一组权重系数,要分多少类就有多少组系数,构建一个目标函数求这几组系数就OK了。

目标函数

将每个点属于每个类比的概率取对数,然后累加就得到了最后的目标函数。

其中在目标函数中引入了指示函数:

I(x)=\left \{ _{_{1,x=false}}^{0,x=true} \right.

I\left \{ y^{\left ( i \right )}=j \right.\left\right \}表示的是当y^{\left ( i \right )}属于第j类时,I\left \{ y^{\left ( i \right )}=j \right.\left\right \}=1,否则I\left \{ y^{\left ( i \right )}=j \right.\left\right \}=0.

梯度下降法求导

Python3源代码:

源代码中对训练和测试的函数进行了封装,能够对数据进行训练,然后随机生成数据进行预测。

下载地址:https://download.csdn.net/download/u014571489/10762002

参考文章:https://www.cnblogs.com/bzjia-blog/p/3366780.html

猜你喜欢

转载自blog.csdn.net/u014571489/article/details/83620195