Python实现Softmax回归函数的两种方法详解
本文介绍Softmax回归函数在Python中的两种实现方式。Softmax通过指数变换对分类得分进行归一化,使较大值的贡献更显著。第一种方法通过手动循环计算实现,第二种利用NumPy库进行向量化操作,代码更简洁高效。
Softmax回归函数主要用于将分类模型的原始输出转化为概率分布。与简单的比例归一化不同,它采用指数变换(对数变换的逆运算)进行归一化处理。这种机制使得数值较大的原始得分在最终概率中占据更高的权重,从而实现了大值收益更多的效果。
Softmax公式

Softmax实现方法1
import numpy as np
def softmax(x):
"""Compute softmax values for each sets of scores in x."""
pass # TODO: Compute and return softmax(x)
x = np.array(x)
x = np.exp(x)
x.astype('float32')
if x.ndim == 1:
sumcol = sum(x)
for i in range(x.size):
x[i] = x[i]/float(sumcol)
if x.ndim > 1:
sumcol = x.sum(axis = 0)
for row in x:
for i in range(row.size):
row[i] = row[i]/float(sumcol[i])
return x
#测试结果
scores = [3.0,1.0, 0.2]
print softmax(scores)
其计算结果如下:
[ 0.8360188 0.11314284 0.05083836]
Softmax实现方法2
import numpy as np def softmax(x): return np.exp(x)/np.sum(np.exp(x),axis=0) #测试结果 scores = [3.0,1.0, 0.2] print softmax(scores)
以上这篇Python下的Softmax回归函数的实现方法(推荐)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持本站。
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









