曹耘豪的博客

Keras 分类与回归

  1. 定义与区别
  2. 分类
  3. 回归
  4. 二者的区别

定义与区别

分类是根据数据已知的标签,对未来的数据进行标签,标签的种类是已知的。

回归同样,不过标签的种类不是固定的,所以通常使用数值。

分类

在keras里通常使用to_categorical()函数来对标签进行初始化。

比如现在有4种价格(1、2、3、4, 元),使用上述函数后,4个类别分别是:

1
2
3
4
(1, 0, 0, 0)
(0, 1, 0, 0)
(0, 0, 1, 0)
(0, 0, 0, 1)

假如一个商品的原始标签是1元,那么现在它的标签就是 (1, 0, 0, 0),这样降低了标签间的联系,提高学习的效率。

建立模型时,通常最后一层使用 Dense 层(全连接层),它的 units 等于类别数(这里是4),这样会返回一个等于类别数的 tuple

性能评估Metrices选择: accuracy

在预测一个商品价格的时候,我们会得到一个 tuple,例如 (0.1, 0.2, 0.4, 0.3),因为我们在类别转换的时候使用的是1,所以这个 tuple 即反应了对应类别的概率,一般我们自定义规则判断这个数据的标签,如果简单一点取最高值,那么可以断定这个商品的标签(价格)是3元。

回归

回归的过程和分类是类似的,不同的是我们直接将标签输入模型进行训练,比如我们直接将1、2、3、4输入,不作处理(或者处理为数值)。

建立模型时,通常最后一层使用 Dense 层(全连接层),它的 units 等于1(因为我们输入的标签只有一个),这样会返回一个数值。

性能评估Metrices选择: mae

在预测一个商品价格的时候,我们会得到一个数值,例如 2.63,那么可以断定这个数据的价格是2.63元。

二者的区别

从二者的过程可以看出,在keras里,分类也是回归的一种,只是分类通过回归输出 tuple,我们再通过 tuple 进行分类,而回归则是直接预测。

   /