有关群集和分类的详细信息

时间:2014-11-30 05:59:29

标签: python classification cluster-analysis data-mining

我正在做一项涉及聚类和分类的家庭作业,需要一些帮助,因为我被卡住了。

我有一个大约10000行的文件,每行有一个随机句子,如

  他喜欢计算机科学工作

     

之前他曾在医疗行业工作过      

她喜欢和孩子一起玩

     他拥有5年的计算机科学经验。

我需要在所有输入句子中构建一个多个集群,然后将每个句子放入一个集群中。

例如:

COMPUTER SCIENCE: he likes computer science jobs
COMPUTER SCIENCE: he has had 5 years experience in computer science field.
KIDS: she likes to play with kids
MEDICAL: he has worked in the medical industry before

现在集群不需要被称为计算机科学,儿童,医疗等,但他们将有数量的分配。

我做了什么:

  • 阅读文件并通过删除停止词,小写整句,删除计算和其他非字母的字母来清理每一行,使用PORTER来说明这些词语。

目前我有两件事:

  • ID为ID(0-10000)的DICT:CLEAN SENTENCE

  • WORD格式的DICT:所有10000个句子中每个干净的单词的COUNT,在从字符串中删除并清除后是唯一的。

下一步是什么?这是在我实施KNN或KMeans等时吗?

1 个答案:

答案 0 :(得分:1)

下一步应该是将上面清理过的句子聚集在一起,每个清理过的句子都是一个数据点。 您可以使用任何数据挖掘python库中的k-means来获取集群。

========群集=========

现在你如何决定k-means中的K(即簇的数量):1)通过绘制k-means的目标曲线,然后选择对应于膝盖的K,或2)使用贝叶斯信息标准,或3)适合您特定数据集的一些其他流行方法。如果您现在不想这样做,请在此处阅读How do I determine k when using k-means clustering?

由于这是一个家庭作业,我会说学习经验更重要,因此你应该尝试不止一个,以获得它的“感觉”。

在此过程结束时,您将拥有K个群集。

现在是分类部分。

========分类=========

将每个K群集视为一个类。 有很多方法可以将每个数据点(即清理的句子)分类为K类:  1.无论在k-means结尾处分配了每个数据点的集群,您都可以将此数据点视为具有该类。  2.将每个聚类质心作为每个类的代表点,并使用诸如余弦,k1-发散等的一些相似性度量来找到给定数据点与每个K个代表性类点之间的相似性。将数据点分配给其最近的类点,从而分配该类。

请注意,上面的(1)是最简单的。

========================================

还有其他各种聚类方法(球形k-means,凝聚等),这也会改变你的分类步骤。