我想通过建立一个模型去识别图片里的物体的颜色(2种)、形状(3种)。就是同时做两个分类的问题。这里颜色和形状能不能组合成作为一个标签,把两个分类问题做成一个,独热编码怎么写,我在想能不能这样?比如:
正方形 001
圆形 010
三角形 100
红色 01
蓝色 10
红色(01)的正方形(001) 能不能直接独热成 : 01001 ?
2个回答
你这样拼接不是onehot,而是和以前一样,前两位表示红蓝,后三位是形状。你这里一共6种组合,所以onehot应该是6位,000001代表红色正方形。
SofaSofa数据科学社区DS面试题库 DS面经你这样做肯定不会错,无非就是好不好,和两个分类问题相比,合成一个是不是更合理。我会考虑几点
- 样本量是否充足。假设你有n个样本,标签是两种,颜色a种,形状b种,那么两个分类问题时,是a类n样本问题和b类n样本问题,合成一个之后,就是(a*b)类n样本问题,每个类别对应的样本数量就一定会降低了,不仅影响训练,也影响验证。但是如果数据量很大,那合成一个没什么问题。
- 两个标签的相关性。如果两个标签是无关的,那么做两个分类预测,把两个模型的预测结果乘起来就可以了。如果两个标签是统计相关的,那么合成一个可能会更好,因为预测出来的结果更符合原数据的联合分布。
- 到底哪个效果好,可以通过cross-validation验证一下。