建模之常见损失函数(Keras, Sklearn, R)
发布日期:2022-02-14 23:02:55
浏览次数:27
分类:技术文章
本文共 5157 字,大约阅读时间需要 17 分钟。
序号 | 概况 | 表达式 | 场景 | |||
---|---|---|---|---|---|---|
1 | 交叉熵 | H ( p , q ) = ∑ x ( p ( x ) × log ( 1 q ( x ) ) ) = ∫ x P ( x ) × log ( Q ( x ) ) d x H(p, q)=\sum_x(p(x) \times \text{log}(\frac{1}{q(x)})) = \int_x P(x) \times \text{log}(Q(x))\mathrm{d}x H(p,q)=∑x(p(x)×log(q(x)1))=∫xP(x)×log(Q(x))dx − log ( p ( y ∣ y ^ ) ) = − ( y × log ( p ^ ) + ( 1 − y ) × log ( 1 − p ^ ) ) -\text{log}(p(y\mid\hat{y})) = -(y \times \text{log}(\hat{p}) + (1 - y) \times \text{log}(1 - \hat{p})) −log(p(y∣y^))=−(y×log(p^)+(1−y)×log(1−p^)) | 分类 | sklearn.metrics.log_loss | keras.losses.BinaryCrossentropy(class) keras.losses.binary_crossentropy(function)binary_crossentropy | LogLoss |
2 | 多分类:one-hot | 同上 | keras.losses.CategoricalCrossentropy(class)keras.losses.categorical_crossentropy(function)categorical_crossentropy | MultiLogLoss | ||
3 | 同上 | keras.losses.SparseCategoricalCrossentropy(class)keras.losses.sparse_categorical_crossentropy(function)sparse_categorical_crossentropy | ||||
4 | keras: loss = y ^ − y × log ( y ^ ) \text{loss} = \hat{y} - y \times \text{log}(\hat{y}) loss=y^−y×log(y^)Sklearn: loss = 2 × ( y × log ( y y ^ ) + y ^ − y ) ‾ \text{loss} = \overline{2 \times (y \times \text{log}(\frac{y}{\hat{y}}) + \hat{y} - y)} loss=2×(y×log(y^y)+y^−y)。注意0的替换 | 回归 | sklearn.metrics.mean_poisson_deviance | keras.losses.Poisson(class)keras.losses.poisson(funtion)poisson | Poisson_LogLoss | |
5 | loss = ∑ ( y × log ( y y ^ ) ) \text{loss} = \sum(y \times \text{log}(\frac{y}{\hat{y}})) loss=∑(y×log(y^y))。按列求和(axis=1),再均值 | keras.losses.KLDivergence(class)keras.losses.kl_divergence(function)kl_divergence | ||||
6 | mse | loss = ( y ^ − y ) 2 ‾ \text{loss} = \overline{(\hat{y} - y)^2} loss=(y^−y)2 | 回归 | sklearn.metrics.mean_squared_error | keras.losses.MeanSquaredErrorkeras.losses.mean_squared_errormean_squared_errorkeras.losses.MSEkeras.losses.mse | MSE,RMSE |
7 | mae | loss = ∣ y ^ − y ∣ ‾ \text{loss} = \overline{\mid\hat{y} - y\mid} loss=∣y^−y∣ | 回归 | sklearn.metrics.mean_absolute_error | keras.losses.MeanAbsoluteErrorkeras.losses.mean_absolute_errormean_absolute_errorkeras.losses.MAEkeras.losses.mae | MAE |
8 | mape | loss = ∣ y ^ − y ∣ y ‾ \text{loss} = \overline{\frac{\mid\hat{y} - y\mid}{y}} loss=y∣y^−y∣ | 时间序列 | keras.losses.MeanAbsolutePercentageErrorkeras.losses.mean_absolute_percentage_errormean_absolute_percentage_errorkeras.losses.MAPEkeras.losses.mape | MAPE | |
9 | msle | loss = ( log ( y + 1 ) − log ( y ^ + 1 ) ) 2 ‾ \text{loss} = \overline{(\text{log}(y + 1) - \text{log}(\hat{y} + 1))^2} loss=(log(y+1)−log(y^+1))2 | 回归 | sklearn.metrics.mean_squared_log_error | keras.losses.MeanSquaredLogarithmicErrorkeras.losses.mean_squared_logarithmic_errormean_squared_logarithmic_errorkeras.losses.MSLEkeras.losses.msle | RMSLE |
10 | 公式: A ⋅ B = ∥ A ∥ × ∥ B ∥ × cos ( θ ) A \cdot B = \parallel A \parallel \times \parallel B \parallel \times \cos(\theta) A⋅B=∥A∥×∥B∥×cos(θ)sklearn:标准公式keras: − ∑ ( l2norm ( y ^ ) ∗ l2norm ( y ) ) -\sum(\text{l2norm}(\hat{y}) * \text{l2norm}(y)) −∑(l2norm(y^)∗l2norm(y)) | sklearn.metrics.pairwise.cosine_similarity | keras.losses.CosineSimilaritykeras.losses.cosine_similaritycosine_similarity | |||
11 | ∣ e r r ∣ ≤ δ : : 0.5 ∗ e r r 2 ( mse ) \mid err \mid \le \delta::0.5 * err ^2(\text{mse}) ∣err∣≤δ::0.5∗err2(mse) ∣ e r r ∣ > δ : 0.5 ∗ δ 2 + δ ∗ ( ∣ e r r ∣ − δ ) \mid err \mid \gt \delta:0.5 * \delta^2 + \delta * (\mid err \mid - \delta) ∣err∣>δ:0.5∗δ2+δ∗(∣err∣−δ)说明:上式是针对每个err,若err是个矩阵,则对每个err计算后再平均 | keras.losses.Huber(delta=1.0)keras.losses.huberhuber_loss | ||||
12 | 双曲余弦对数损失 | log ( e y ^ − y + e − 1 × ( y ^ − y ) 2 ) ‾ \overline{\text{log}(\frac{e^{\hat{y} - y} + e^{-1 \times (\hat{y} - y)}}{2})} log(2ey^−y+e−1×(y^−y)) | keras.losses.LogCoshkeras.losses.log_coshlog_cosh | |||
13 | maximum ( 1 − 1 − y ^ × y , 0 ) ‾ \overline{\text{maximum}(1 - 1 - \hat{y} \times y, 0)} maximum(1−1−y^×y,0)。说明:此 y ^ \hat{y} y^为 [ − 1 , 1 ] [-1, 1] [−1,1] | 分类,最大间隔 | sklearn.metrics.hinge_loss | keras.losses.Hingekeras.losses.hingehinge | ||
14 | ( maximum ( 1 − 1 − y ^ × y , 0 ) ) 2 ‾ \overline{(\text{maximum}(1 - 1 - \hat{y} \times y, 0))^2} (maximum(1−1−y^×y,0))2。说明:此 y ^ \hat{y} y^为 [ − 1 , 1 ] [-1, 1] [−1,1] | 最大间隔 | keras.losses.SquaredHingekeras.losses.squared_hingesquared_hinge | |||
15 | maximum ( max ( ( 1 − y ) × y ^ ) − ∑ ( y × y ^ ) + 1 , 0 ) ‾ \overline{\text{maximum}(\text{max}((1 - y) \times \hat{y}) - \sum(y \times \hat{y}) + 1, 0)} maximum(max((1−y)×y^)−∑(y×y^)+1,0) | 最大间隔 | keras.losses.CategoricalHingekeras.losses.categorical_hingecategorical_hinge | |||
16 | Hamming loss | 同0-1分类的True | 分类 | sklearn.metrics.hamming_loss | ||
17 | 0-1分类 | normalize=True:返回分类失败的个数normalize=False:返回分类失败的占比 | 分类 | sklearn.metrics.zero_one_loss(normalize=True) | ZeroOneLoss | |
18 | 2 × ( log y ^ y + y y ^ − 1 ) ‾ \overline{2 \times (\text{log}{\frac{\hat{y}}{y}} + \frac{y}{\hat{y}} - 1)} 2×(logyy^+y^y−1)。注意0的替换 | 回归 | sklearn.metrics.mean_gamma_deviance | |||
19 | p=0:msep=1:poisson(见上面)p=2:gamma(见上面)p=other: 2 × ( m a x ( y , 0 ) 2 − p ( 1 − p ) × ( 2 − p ) − y × y ^ 1 − p 1 − p + y ^ 2 − p 2 − p ) ‾ \overline{2 \times (\frac{max(y, 0)^{2 - p}}{(1 - p) \times (2 - p)} - \frac{y \times \hat{y}^{1 - p}}{1 - p} + \frac{\hat{y}^{2 - p}}{2 - p})} 2×((1−p)×(2−p)max(y,0)2−p−1−py×y^1−p+2−py^2−p) | 回归 | sklearn.metrics.mean_tweedie_deviance(power=p) | |||
20 | 分类排名 | 分类排名 | sklearn.metrics.label_ranking_loss |
转载地址:https://blog.csdn.net/fish2009122/article/details/108020996 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
做的很好,不错不错
[***.243.131.199]2024年04月14日 14时55分48秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
如何使用Python的进度条?
2019-04-27
如何利用情感词典做中文文本的情感分析?
2019-04-27
【青少年编程】【Scratch】06 侦测模块
2019-04-27
【直播】李祖贤:集成学习答疑直播之八-- 集成知识点回顾与补充
2019-04-27
Datawhale组队学习周报(第013周)
2019-04-27
如何设置matplotlib中x,y坐标轴的位置?
2019-04-27
【第15周复盘】B站是个学习的网站
2019-04-27
黄家懿:河北高校邀请赛 -- 二手车交易价格预测决赛答辩
2019-04-27
如何利用pyecharts绘制酷炫的桑基图?
2019-04-27
王朝阳:河北高校邀请赛 -- 二手车交易价格预测决赛答辩
2019-04-27
Scratch等级考试(二级)模拟题
2019-04-27
如何在Jupyter Lab中显示pyecharts的图形?
2019-04-27
什么是Python之禅?
2019-04-27
【青少年编程】【Scratch】01 运动模块
2019-04-27
json的序列化与反序列化
2019-04-27
【第16周复盘】学习的飞轮
2019-04-27
如何利用pyecharts绘制炫酷的关系网络图?
2019-04-27
NCEPU:线下组队学习周报(007)
2019-04-27
【青少年编程】【二级】寻找宝石
2019-04-27
【组队学习】【26期】Linux教程
2019-04-27