2

我需要对商品进行分类。你知道什么价格比较引擎。无监督分类 - 获得特征向量

我们已经获得了特征向量。他们不是最好的,但很不错。我最后一步是在不知道有多少个集群的情况下对它们进行分类。所以像k-means这样的算法将不起作用,因为它们需要多少类。

所以这里是一组特征向量。他们在这里(作为例子),但我需要一个算法,不依赖于任何顺序。

################################################# 
47 - ddr2;asus;1066;g41;am;p5qpl;775; 
48 - g41;p5qpl;asus;am;ddr2;vga;anakart; 
49 - intel;anakart;ddr2;1066;p5qpl;asus;am; 
50 - p5qpl;ddr2;asus;am;g41;vga;anakart; 
51 - ddr2;asus;1066;g41;am;p5qpl;775; 
52 - g41;p5qpl;1066;am;ddr2;asus;anakart; 
53 - p5qpl;ddr2;1066;am;g41;asus;sata; 
54 - g41;p5qpl;1066;am;asus;ddr2;sata; 
################################################### 
55 - engtx480;asus;384bit;2di;gddr5;vga;16x; 
56 - 2di;karti;384bit;asus;engtx480;ekran;pci; 
57 - asus;engtx480;2di;vga;gddr5;384bit;16x; 
58 - 2di;karti;engtx480;384bit;asus;gddr5;1536mb; 
59 - engtx480;asus;384bit;2di;gddr5;vga;16x; 
60 - engtx480;asus;384bit;2di;gddr5;vga;16x; 
#################################################### 
61 - ray;blu;ihbs112;siyah;bulk;dvd;sata; 
62 - ihbs112;ray;blu;on;lite;yazici;kutusuz; 
63 - ihbs112;blu;ray;lite;on;siyah;bulk; 
64 - blu;ihbs112;ray;lite;on;siyah;yazici; 
65 - liteon;ihbs112;bd;yazma;hizi;12x;max; 
66 - ihbs112;ray;blu;on;lite;bulk;dvd; 
67 - etau108;dvd;siyah;lite;on;rw;ihbs112; 
68 - ihbs112;liteon;bd;yazma;hizi;12x;max; 
69 - ihbs112;ray;blu;lite;on;siyah;bulk; 
##################################################### 

当人类看起来很容易使用这些特征向量对产品进行分类。但我需要通过算法来实现它。而且我还需要用一种算法实现它,该算法不需要任何先验信息就可以使用特征向量。

从上述特征向量集中,47-54是一个集群,55-60是另一个集群,61-69是另一个集群(每个集群意味着现实生活中的商业产品)。所以该算法需要使用这些特征向量正确分类。

该算法不能依赖于特征向量的行顺序或将有多少类。我们什么都不知道,只有特征向量。

等待你对此分类问题的建议。谢谢。

回答

2

Adaptive Resonance Theory是你的问题的简短答案。与KMeans不同,您不需要事先设置群集数量。输入是一组特征向量,可以是二进制(ART 1算法)或连续(ART -2A,ARTMAP等),输出是集群中文档的分类。

+0

正在检查。谢谢。 – MonsterMMORPG 2012-04-05 20:49:07

+0

另请查看http://drdobbs.com/architecture-and-design/184405174,了解ART 1 BUT对于二进制输入的简单实现。你会感受到它是如何工作的。 – Yavar 2012-04-05 20:51:43

+0

是的,我正在寻找一个例子。立即检查二进制版本。 – MonsterMMORPG 2012-04-05 20:54:22

0

我可以确定需要解决的3个主要问题。

1)从您提供的示例中,似乎所有矢量的维数都是7.如果不是这种情况,可以使用PCA将维数(未知但有界)减少到固定值尺寸。这可以确保您可以使用聚类算法而不需要大量修改。

2)为了克服不知道簇大小的事实,可以使用DBSCAN。它需要两个参数:最小簇大小和邻域大小。

3)您需要一个具有步骤1)的维度的表示空间,群集算法可以在该维度上操作。为此,您必须考虑从这些样本构建特征向量的方法。从你展示的例子看来,训练矢量似乎是而不是任意填充的符号性。在我看来,尽管你说你可能会使用启发式。但是,如果这不可能,只需选择数字表示作为特征值。