绘制文本分类的决策边界

Posted

技术标签:

【中文标题】绘制文本分类的决策边界【英文标题】:Plot decision boundary for text classification 【发布时间】:2017-03-31 01:48:39 【问题描述】:

我正在寻找展示如何为文本分类绘制决策边界的示例。我知道 sklearn 文档中的一些示例,但是如何将它们应用于文本数据?

我什至不确定,要绘制什么。可以为此绘制决策边界吗?

我正在考虑以某种方式使用 CountVectorizer 的结果,然后将其转换为 np.array。

网上有什么好的例子吗?

【问题讨论】:

为非文本分类问题绘制决策边界并没有太大区别。归根结底,那些sklearn 算法正在使用特征矩阵(无论是来自CountVectorizer 还是普通的numpy 数组)。然而,高维文本数据可能会使这种绘图变得困难,因此可能需要某种形式的 SVD。 但是我用什么做轴?词的频率? 想想this 的例子。两个向量如何绘制在与分类问题相关的轴上?回答您的问题:在文本分类问题中您将有 许多 个轴,因为您的特征矩阵非常庞大,这就是 SVD 很重要的原因。 啊啊,好吧,我想我明白了。我想错了。现在我只需要让 SVD 工作;)谢谢! 【参考方案1】:

这里的难点在于文本分类是一个高维问题,其维度等于词汇量的大小。在 2d 中绘制它需要首先应用降维技术,例如 pca 或 t-sne,然后在这个新表示上训练学习算法。尽管如此,我怀疑你的情节会有多丰富。

您可以使用仅用 2-3 个单词的玩具示例来可视化分隔类别的线 (2d) 或曲面 (3d),但这将是一个玩具示例。

【讨论】:

感谢您的回复。是否有任何其他类型的图对文本分类有意义以可视化分类器的工作原理?或者可能是其他类型的情节? 您可以使用分类器决策边界来找出对于分类问题具有最大权重的单词。例如,在以文本分类为框架的情感分类问题(正面/负面)中,您会期望像“awesome/amazing/terrible”这样的词具有较高的权重。 一个无耻的插件:要检查权重并在示例中可视化它们,您可以使用 eli5 库。它处于 pre-alpha 阶段; master 分支的文档(目前非常不完整):eli5.readthedocs.io/en/latest/overview.html#basic-usage @geompalik 谢谢你的想法!

以上是关于绘制文本分类的决策边界的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Python 中绘制逻辑回归的决策边界?

如何在 libsvm 中绘制 4 维虹膜数据的决策边界?

绘制 SVC 拉普拉斯核的决策边界时出错

将决策树训练分类器的模型输出保存为 Spark Scala 平台中的文本文件

python:如何在sklearn中使用逻辑回归系数构建决策边界

NLP实战系列朴素贝叶斯文本分类实战