練習(xí):繪制常見(jiàn)損失函數(shù)
損失函數(shù):Logistics損失(-1,1) SVM Hinge損失 0/1損失
首先我們來(lái)復(fù)習(xí)一下常見(jiàn)的損失函數(shù)
Logistics損失函數(shù)/sigmoid函數(shù)
指數(shù)損失函數(shù)(Adaboost) {#三、指數(shù)損失函數(shù)(Adaboost)}
$$exp\left ( -m \right )$$
Hinge損失函數(shù)(SVM) {#四色罚、Hinge損失函數(shù)(SVM)}
$$max\left ( 0,1-m \right )$$
0-1損失函數(shù)
#coding:utf-8
#/usr/bin/python
import numpy as np
import matplotlib as mpl
import matplotlib.pyplot as plt
if __name__ == '__main__':
mpl.rcParams['font.sans-serif'] = [u'SimHei']
mpl.rcParams['axes.unicode_minus'] = False # win正常顯示中文設(shè)置
x = np.linspace(-2, 3, 1001, dtype=float) #生成數(shù)據(jù)
# y_logistics = (1 + np.exp(-x))
y_logistics = np.log((1 + np.exp(-x))) / np.log(2) #為了圖片好看金抡,過(guò)(0,1)點(diǎn)
y_boost = np.exp(-x)
y_01 = x < 0
y_hinge = 1.0 - x
y_hinge[y_hinge < 0] = 0
plt.figure(figsize=(5,5),facecolor='w')
plt.plot(x,y_logistics,'r--',label='Logistics Loss',lw =2)
plt.plot(x,y_boost,'k-',label = 'Adaboost Loss',lw = 1)
plt.plot(x,y_01,'y-',label = '0/1 Loss',lw = 1)
plt.plot(x,y_hinge,'b-',label = 'Hinge Loss',lw = 1)
plt.grid()
plt.title('常見(jiàn)損失函數(shù)', fontsize=16)
plt.legend('lower upper')
plt.show()
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者