文章目录
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代表预测值。
如果感觉抽象,下面用一组例子算一下:
假设我们输入一张狗的图片,标签与预测值如下:
# | 猫 | 狗 | 兔子 |
---|---|---|---|
Label | 0 | 1 | 0 |
Pred | 0.2 | 0.7 | 0.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))。