TensorFlow2.0入门到进阶2.2 —— one-hot编码与常用损失函数

1、one-hot编码

1.1 为什么要编码

对于离散特征,在未编码的时候我们通常会用1,2,3…n 来分别表示n种类型,比如国家:[“中国”,"美国,“法国”],我们通常会用1,2,3来表示,不使用one-hot编码,其表示分别是x_1 = (1), x_2 = (2), x_3 = (3)。两个类别之间的距离是,(x_1, x_2) = 1, d(x_2, x_3) = 1, d(x_1, x_3) =3-1= 2。那么x_1和x_3工作之间就比其他类别之间的距离大吗?

显然这样的表示,计算出来的特征的距离是不合理。那如果使用one-hot编码,则得到x_1 = (1, 0, 0), x_2 = (0, 1, 0), x_3 = (0, 0, 1),那么两个工作之间的距离就都是sqrt(2).即每两个工作之间的距离是一样的,显得更合理。

1.2 one-hot编码

One-Hot编码,又称为一位有效编码,主要是采用N位状态寄存器来对N个状态进行编码,每个状态都由他独立的寄存器位,并且在任意时候只有一位有效。

One-Hot编码是分类变量作为二进制向量的表示。这首先要求将分类值映射到整数值。然后,每个整数值被表示为二进制向量,除了整数的索引之外,它都是零值,它被标记为1。

1.3 one-hot编码过程详解

例子如下:

性别特征:[“男”,“女”]

祖国特征:[“中国”,"美国,“法国”]

运动特征:[“足球”,“篮球”,“羽毛球”,“乒乓球”]

性别特征:[“男”,“女”],按照N位状态寄存器来对N个状态进行编码的原理,咱们处理后应该是这样的(这里只有两个特征,所以N=2):

男 => 10

女 => 01

祖国特征:[“中国”,"美国,“法国”](这里N=3):

中国 => 100

美国 => 010

法国 => 001

运动特征:[“足球”,“篮球”,“羽毛球”,“乒乓球”](这里N=4):

足球 => 1000

篮球 => 0100

羽毛球 => 0010

乒乓球 => 0001

所以,当一个样本为[“男”,“中国”,“乒乓球”]的时候,完整的特征数字化的结果为:

[1,0,1,0,0,0,0,0,1]

在这里插入图片描述

1.4 one-hot编码程序实现

from sklearn import preprocessing  
   
enc = preprocessing.OneHotEncoder()  
enc.fit([[0,0,3],[1,1,0],[0,2,1],[1,0,2]])  #这里一共有4个数据,3种特征,如上1.3中举例
   
array = enc.transform([[0,1,3]]).toarray()  #这里使用一个新的数据来测试
   
print(array) 

结果:

[[1. 0. 0. 1. 0. 0. 0. 0. 1.]]

2、损失函数

2.1分类问题

2.1.1 交叉熵

对于交叉熵损失函数(CrossEntropy Loss),相信大家都有所耳闻,但忽然间交叉熵、信息量、相对熵、信息增益…是不是感觉有点懵,好了,下面就详细介绍一下。

交叉熵是信息论中的一个重要概念,主要用于度量两个概率分布间的差异性,通俗来说,交叉熵越小,说明两组labels越相近,说明预测的准确性越高。公式如下所示:
在这里插入图片描述
其中y代表真实值分类(0,1 …),a代表预测值。
如果感觉抽象,下面用一组例子算一下:

假设我们输入一张狗的图片,标签与预测值如下:

#兔子
Label010
Pred0.20.70.1

本项目共有3种label,分别为猫、狗和兔子,该样本对于各个类别的prediction如上表最后一行所示,那么,交叉熵为损失函数为:
在这里插入图片描述
如果想具体研究,可参考文章:https://blog.csdn.net/b1055077005/article/details/100152102

2.1.2 均方误差损失(MSE)

顾名思义,先将真实的label和预测的评分值做平方差处理,均值平方差(Mean Squared Error,MSE),也称“均方误差”,在神经网络中主要是表达预测值和真实值之间的差异,在数理统计中,均方误差是指参数估计值与参数真值之差平方的预期值。公式为:
在这里插入图片描述

2.1.3 均方根误差(RMSE)

很多小伙伴在看论文的时候应该都看过吧这个指标吧,其实没什么高大上的,只是在MSE的基础上加一个根号罢了,公式如下:
在这里插入图片描述

2.2 回归问题

回归问题损失函数与分类问题大体相似,具体内容有些不同。

2.2.1 均方误差(MSE)

在这里插入图片描述

2.2.1 平均绝对值误差(也称L1损失)

平均绝对误差(MAE)是另一种用于回归模型的损失函数。MAE是目标值和预测值之差的绝对值之和。其只衡量了预测值误差的平均模长,而不考虑方向,取值范围也是从0到正无穷(如果考虑方向,则是残差/误差的总和——平均偏差(MBE))。
在这里插入图片描述

  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

努力改掉拖延症的小白

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值