我有一个句子的数据集,这些句子已经用层次结构中的标签进行了注释。层次结构是音乐流派的选择。它是一棵树,而不是一个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)如何评估分类性能?特别是采用自上而下的方法,因为我们将对每个单独的级别进行评估。
谢谢你的回答。我意识到培训和测试数据的目的,以及他们的工作和机器学习。我只是不明白你会如何以分层的方式去做。所以你建议从我的句子中提取特征?这只会在较小的空间中产生句子。这如何解决我的等级问题?问题是,一个班级属于多个级别。正如我所解释的,一个节点也可以被归类为它的父节点,因为在概念上,这也是正确的。如何做到这一点? – user47467
从句子中提取功能 - 是的,首先,这将删除你很多不必要的数据,其次是在你的例子中给出的句子,它将保留有意义的单词。 层次问题将在树中解决,而且也很直观。 例如,在一句话中:_“我更喜欢莎莎”_莎莎将是一个强大的功能,并且当它进入你的分类器时,它可能会表明一个强烈的信号,非洲古巴或拉丁或音乐,取决于什么是你的标签 你对哪一部分树完全感兴趣?顶层?第二个? – lazary
我对树木没有预先知识,所以如果你知道或者可以帮助我解决这个问题,那会很棒。我对整棵树感兴趣,我想这取决于句子的类标签。 – user47467