具有大量项目(~500,000)的数据库,每个项目具有一定数量的属性(~20),由整数标识。有大约50,000种不同的属性。
我想编写一个程序,根据项目找到项目之间的最佳匹配。属性。有一个可用的度量标准,用于定义匹配的好坏,但仅在匹配完成后的某个时间。仅仅因为两个项目共享相同的属性并不意味着它将是一个很好的匹配。 该程序必须学习一组已经制作的匹配(对于每个匹配已知的度量),哪些属性组合在一起并进行最佳匹配。
在学习过程之后,它应该能够为新项目进行最佳匹配,这些项目部分具有与从井中学习的属性相同的属性。此外,一旦指标变得可用,程序就应该从它所做的每一场比赛中学习。
我该怎么做?我不确定这个AI属于哪个域(因此标题),但我认为该程序会开始根据其属性对项目进行分类,因为我是如何手动完成的。 。 我当然应该研究哪些算法?
编辑: 我想到了hopfield网络,其中部分或全部项目的属性会将其引入一个类别,但我不确定这种规模是否有效。
答案 0 :(得分:0)
这是机器学习中的典型聚类问题,有像K-means这样的算法可以帮到你。您可以使用Weka / Orange试验您的数据,并选择最适合您的算法。一旦确定了正确的算法,就可以以编程方式执行相同的算法。