聚类还是分类?
Posted
技术标签:
【中文标题】聚类还是分类?【英文标题】:Clustering or classification? 【发布时间】:2012-07-30 15:27:27 【问题描述】:我在对我获得的数据集应用分类或聚类的决定之间陷入困境。我想得越多,我就越困惑。这就是我所面临的。
我有新闻文件(大约 3000 份,并且还在不断增加),其中包含有关公司、投资、股票、经济、季度收入等的新闻。我的目标是对新闻进行排序,以便我知道哪些新闻对应哪些新闻公司。例如,对于新闻项目“Apple 推出新的 iphone”,我需要将 Apple 公司与它关联起来。特定的新闻项目/文档仅包含“标题”和“描述”,因此我必须分析文本以找出该新闻所指的公司。也可以是多家公司。
为了解决这个问题,我求助于 Mahout。
我从集群开始。我希望将“Apple”、“Google”、“Intel”等作为集群中的首要术语,从那里我会知道集群中的新闻与其集群标签相对应,但情况有点不同。我得到了“投资”、“股票”、“通信”、“绿色能源”、“终端”、“股票”、“街道”、“奥林匹克”和许多其他术语作为最重要的术语(这对于聚类算法是有意义的' 寻找常用术语)。虽然有一些“Apple”集群,但与之相关的新闻项目很少。我认为集群可能不是针对这类问题,因为许多公司新闻都进入了更一般的集群(投资、利润)而不是特定的公司集群(Apple)。
我开始阅读需要训练数据的分类,这个名称也很有说服力,因为我实际上想将我的新闻项目“分类”为“公司名称”。当我继续阅读时,我的印象是名称分类有点欺骗性,与分类相比,该技术更多地用于预测目的。我遇到的另一个困惑是如何为新闻文档准备训练数据?假设我有一个我感兴趣的公司列表。我编写了一个程序来为分类器生成训练数据。该程序将查看新闻标题或描述是否包含公司名称“Apple”,然后它是关于苹果的新闻报道。这是我准备训练数据的方式吗?(当然,我读到训练数据实际上是一组预测变量和目标变量)。如果是这样,那我为什么要首先使用 mahout 分类?我应该放弃 mahout,而是使用我为训练数据编写的这个小程序(实际上是进行分类)
您可以看到我对如何解决此问题感到困惑。另一个让我担心的事情是,如果它可以让一个系统变得如此智能,如果新闻说“iphone 销量创历史新高”而不使用“Apple”这个词,那么系统可以将其归类为与苹果相关的新闻吗?
提前感谢您为我指明正确的方向。
【问题讨论】:
【参考方案1】:首先,您不需要 Mahout。 3000 份文件几乎没有。当您达到一百万时,请重新访问 Mahout。我已经在一台计算机上处理了 100.000 张图像,因此您现在真的可以跳过 Mahout 的开销。
你正在尝试做的事情听起来像分类。因为你有预定义的类。
聚类算法是无监督的。它将(除非您过度拟合参数)可能会将 Apple 分为“iPad/iPhone”和“Macbook”。或者另一方面,它可能会合并 Apple 和 Google,因为它们相关(比 Apple 和 Ford 更密切)。
是的,您需要能够反映您要衡量的结构的训练数据。还有其他结构(例如,iPhone 与 Macbook 不同,谷歌、Facebook 和苹果比 Kellogs、福特和苹果更相似)。如果您需要公司级别的结构,则需要此详细级别的训练数据。
【讨论】:
【参考方案2】:从邮件列表中复制我的回复:
分类器是监督学习算法,因此您需要提供 一堆正面和负面类别的例子。在你的例子中, 给一堆文章贴上“关于苹果”的标签就好了, 然后使用从 TF-IDF 派生的特征向量作为输入,这些 标签,训练一个分类器,它可以判断一篇文章何时是“关于 苹果”。
我认为自动生成 根据简单的规则通过标注训练集,即 如果标题中有“Apple”,则关于 Apple。好吧,如果你这样做,那么 训练分类器没有意义。你可以做一个微不足道的 分类器在测试集上达到 100% 的准确率 检查标题中是否有“Apple”!是的,你是对的,这个收益 你什么都没有。
显然你想从分类器中学到一些更微妙的东西,所以 一篇题为“苹果汁显示可降低痴呆风险”的文章 不归类为关于公司。你真的需要喂它 手工分类的文件。
这是个坏消息,但是,你当然可以训练 N 个分类器 以这种方式处理 N 个主题。
分类器将项目归入或不归类。它们不一样 预测输入的连续值的回归技术。 它们相关但不同。
聚类具有无人监督的优势。你不需要 标签。但是,不能保证生成的集群匹配 根据您对文章主题的概念。你可能会看到一个集群有很多 苹果文章,一些关于 iPod,还有一些关于三星 和一般的笔记本电脑。我认为这不是您的最佳工具 问题。
【讨论】:
以上是关于聚类还是分类?的主要内容,如果未能解决你的问题,请参考以下文章