LOSS 函数
loss函数一般分为两个部分:误差项和正则化项。
其中误差项一般有一下几种:
- 0-1损失
- Hinge(SVM)
- Log (逻辑回归,交叉熵)
- Square loss (线性回归)
- exponential loss (boosting)
1、0-1损失
记录错误分类的次数。
2、hinge loss
常用语最大间隔分类。
为原始的输出,而不是预测的类别标签。为期望的类别标签。
def hinge(pred_label, actual_label):
if 1-pred_label*actual_label > 0:
return 1-pred_label*actual_label
return 0
3、Log loss
, 则,loss函数定义为:
极大化最大似然函数:
这也是最小化交叉熵。
熵表示信息的不确定性,熵越大,表示信息的不确定性程度越大。熵的定义:
def cross_entropy(pred_label, actual_label):
res = 0
for i in range(len(pred_label)):
res += actual_label[i] logpred_label + (1-actual_label[i] log(1-pred_label[i]))
return -res
4、square loss
预测值与实际值差值的平方和:
均方差(L2)是度量预测值与实际值差的平方的均值。只考虑到误差的大小,而没有考虑到方向。
def rmse(pred_label, actual_label):
e = pred_label-actual_label
e_s = d**2
mse = e_s.mean()
rmse = np.sqrt(mse)
return rmse
平均绝对误差(L1)是度量预测值与实际值之间绝对差之和的平均值。对异常鲁邦。
def rmse(pred_label, actual_label):
e = pred_label-actual_label
e_a = np.absolute(d)
mae = e_s.mean()
return mae
5、exponential loss
指数误差一般用在boosting中。
网友评论