Python下的Softmax迴歸函式的實現方法
阿新 • • 發佈:2019-02-09
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)