Keras 分类与回归
定义与区别
分类是根据数据已知的标签,对未来的数据进行标签,标签的种类是已知的。
回归同样,不过标签的种类不是固定的,所以通常使用数值。
分类
在keras里通常使用to_categorical()函数来对标签进行初始化。
比如现在有4种价格(1、2、3、4, 元),使用上述函数后,4个类别分别是:
1 | (1, 0, 0, 0) |
假如一个商品的原始标签是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 进行分类,而回归则是直接预测。