机器学习中的Softmax函数

来源:互联网 发布:剑3成女捏脸数据 编辑:程序博客网 时间:2024/05/21 09:01

在使用Logistic做线性回归时,如果我们遇到多分类的问题,我们可以考虑使用Softmax函数进行筛选

函数公式如下:

softmax(yi)=expyijexpyj

原理是对logistic回归所取得的评分(Score)逐个求对数,然后除以所有评分的对数的总和,可以理解为取评分最高的一个分类。而且Softmax所求得所有分类的概论加起来刚刚好等于1(参加附图,x轴为最有可能分类的评分,蓝色线为评分等于x的概率,黄色线是评分为x*0.5的概率,绿色线是x*0.2的概率)。

Softmax在三个分类时的结果

我们可以使用Python实现Softmax,而且只需要一行

import bumpy as npdef softmax(x):    return np.exp(x)/np.sum(np.exp(x),axis=0)

通过softmax函数,我们就可以使用线性回归进行机器学习的多分类

P.S.可以使用以下代码,复现上图的结果

import matplotlib.pyplot as pltx = np.arange(-2, 4 , 0.1)scores = np.vstack([x, 0.4 * x , 0.2 * x])plt.plot(x, softmax(scores).T, linewidth=2)plt.show()

本文同步发表在我的个人网站: 机器学习中的Softmax函数

原创粉丝点击