如何在python中重新训练机器学习模型,直到得到所需的outcom

2024-04-28 07:53:13 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用非负矩阵分解(NMF)主题模型为客户反馈建立一个主题模型。在

创建主题簇,如下所示:

[(0, [u'reserved block', u'reserved block available', u'reserved block week', u'need reserved block']), (1, [u'hour block', u'package hour block', u'bring hour block', u'bring hour']), (2, [u'hard block', u'driver hard block', u'driver hard', u'gps horrible']), (3, [u'delivery block', u'hard delivery block', u'hard delivery', u'delivery block available']), (4, [u'block available', u'reserved block available', u'make block', u'make block available'])

但是,主题0&4和主题2&3几乎相同。我想知道如何重新训练模型,使其将主题0&4;主题2&3作为一个主题,将两个主题中的关键字合并起来(根据关键字的顺序设置权重,常见的关键字也应给予更多权重)。在


Tags: 模型主题makedriver矩阵关键字blockavailable
1条回答
网友
1楼 · 发布于 2024-04-28 07:53:13

一般来说,如果您的NMF或LDA或其他类似算法的输出给您一组有重叠的主题,那么第一个建议很简单-减少主题的数量。通过这样做,自然会迫使算法将相似的主题合并在一起。我建议你试试看结果。在

如果你还想手动搅乱算法培训的结果,并手动将几个主题合并在一起,我将尝试从阅读有关您正在使用的特定算法(NMF)的文档开始,并检查哪些属性定义了特定主题(属性称为组件_u)以及定义主题的单词。然后您可以只更新现有的NMF实例来调整其组件。虽然这将是一项相当困难的任务。在

更新

另一种方法是获取文档到主题和单词到主题矩阵(技术上是算法的输出)并手动更新它们。检查文章:

https://medium.com/towards-data-science/improving-the-interpretation-of-topic-models-87fd2ee3847d

一般来说,作为NMF的结果,你应该得到2个矩阵。其中一个将显示每个文档对每个主题的隶属度。另一个词对每一个话题都很重要。在

合并两个主题时,您希望:

1)将文档中主题的列合并到主题矩阵。例如,如果在这个矩阵中有一行显示了一个文档,该文档的主题1的成员资格为50%,主题2的成员资格为10%,那么您可能应该获得60%的合并主题成员资格

2)合并单词到主题矩阵中的主题行。这就是它变得非常重要的地方。据我所知,你不能简单地把单词对特定主题的权重加起来(所有的权重加起来应该是同一个数字),但你可以试着这样做,看看会发生什么。在

相关问题 更多 >