我有一个清单,代表的产品或多或少是一样的。例如,在下面的列表中,它们都是希捷硬盘驱动器。
对于人类来说,硬盘3和5是一样的。我们可以更进一步,假设产品1、3、4和5是相同的,并将产品2和6放入其他类别。
我们有一个庞大的产品清单,我想分类。有没有人知道什么是最好的算法来做这样的事情。有什么建议吗?
我想到了贝叶斯分类器,但我不确定它是否是最佳选择。任何帮助都将不胜感激!
谢谢。
发布于 2009-03-29 20:52:09
您至少需要两个组件:
首先,您需要进行“特征”提取,即获取项目并提取相关信息。例如,“新的和闪亮的”不像“500 is硬盘”和“希捷”那么重要。一个(非常)简单的方法将包括一个简单的启发式提取制造商,技术名称,如"USB2.0“和模式,如"GB","RPM”从每个项目。
然后,您将为每个项目提供一组特性。有些机器学习人员喜欢将其放入“特征向量”,即每个特性有一个条目,设置为0或1,这取决于该特性是否存在。这是您的数据表示。在这个向量上,你可以做一个距离比较。
请注意,您可能会得到数千个条目的向量。即使如此,您也必须对结果进行聚类。
可能有用的维基百科文章:
发布于 2009-03-30 11:29:53
您将遇到的问题之一是在非线性或无序属性中确定最近的邻居。我在这里建立在曼纽尔上。
您将面临的一个问题是决定(1)希捷500 to、(2)用于笔记本电脑的希捷硬盘120 to和(3) Seagate FreeAgent办公桌500 to外部硬盘驱动器Silver7200RPMUSB2.0零售:
1更接近2还是接近3?这些差异能证明不同的分类是合理的吗?
一个人会说3是介于1和2之间,因为外部HD可以在两种机器上使用。这意味着,如果有人搜索HD为他的桌面,并扩大了选择的范围,以包括选择,外部HDs也将显示,但不显示笔记本电脑HDs。很可能,SSD、USB记忆棒、CD/DVD驱动器甚至会出现在笔记本电脑驱动器之前,从而扩大范围。
可能的解决办法:
向用户提供一对属性,并让它们具有接近性。给他们一个标尺,告诉你某些属性有多近。然后,扩展所选内容的范围将使用此比例作为该属性上的距离函数。
发布于 2009-03-30 11:51:26
要对产品进行实际分类,您可以使用带有黑板的“增强神经网络”。(这只是一个让你朝着正确方向思考的比喻,而不是严格使用术语。)
想象一组通过侦听器或事件连接的对象(就像神经元和突触)。每个对象都有一组模式,并根据这些模式测试输入。
举个例子:
所有这些对象都连接到另一个对象,如果它们的某些组合触发,则将输入归类为硬盘驱动器。单个对象本身会将某些特征输入到黑板(通用的书写区域,用来表示输入的内容),例如制造商、容量或速度。
因此,神经元的激发不是基于阈值,而是基于模式的识别。这些神经元中有许多可以在黑板上高度并行工作,甚至可以由其他神经元进行正确的分类(可能会引入确定性?)
我在一个原型中使用了这样的东西,用于根据联合国和平与安全委员会对产品进行分类,并且能够得到97%正确的汽车零件分类。
https://stackoverflow.com/questions/695347
复制相似问题