【发布时间】:2016-08-16 03:22:35
【问题描述】:
我有一个句子数据集,这些句子已经用层次结构中的标签进行了注释。层次结构是音乐流派的选择。它是一棵树,而不是 DAG - 每个节点都有一个父节点和一个父节点。这里以摘录为例:
root = music
parent = latin
child = afro-cuban
child = salsa
child = brazilian
child = axe
parent = non-latin
child = classical
...
以句子Mozart is the best 为例,从收集的注释中,大多数人同意该句子的类标签或基本事实是classical。从层次结构中,我们知道classical也是non-latin音乐的一种形式,是music的一种形式。而i prefer salsa 可能已被注释为latin。
在分类方面,扁平化层次结构(我已经做过)直观地并不能解决问题,因为我们完全忽略了类层次结构。在使用 Weka 和选择分类器时,它也会产生低结果,因为我们面临着多类分类问题。
我的问题是,我阅读了关于如何实现分层分类的非常模糊的文献和在线文章。我想使用 Weka 和 Python。但我只是想澄清在这种情况下如何执行分层分类。所以我的问题是:
1) 解决这个问题的最佳建议是什么?实施自上而下的方法是最佳选择吗?如果这样做,如何避免在每个级别上分类错误的问题?即它可以在级别 1 上预测 latin,在级别 2 上预测 classical。那么二进制分类器呢?我愿意接受建议。
2) 训练和测试数据是如何产生的?
3) 如何评估分类性能?特别是采用自上而下的方法,因为我们将对每个单独的级别进行评估。
【问题讨论】:
-
预测level3还不够吗?因为,如果你知道某个东西是“
classical”,那么它就隐含地持有 level2=non-latin和 level1 =music。
标签: machine-learning classification weka decision-tree hierarchical