我有一个包含数百万个样本的数据集,每个样本包含128个连续值特征,并以名称进行分类。我正在寻找一个大型且稳健的数据库/索引,用于高维数据的KNN分类器。我尝试过Weka的IBk分类器,但它在处理如此大量的数据时会出现问题,即便如此,它也需要加载到内存中。通过PyLucene接口使用Lucene是否可能是一个替代方案?
我发现了Lire,它似乎以类似的方式使用Lucene,但在审查代码后,我不确定他们是如何实现的,或者这是否与我尝试做的事情相同。
我知道Lucene被设计为文本索引工具,而不是通用分类器,但有可能以这种方式使用它吗?
回答:
根据你提供的信息,Lucene似乎不是合适的选择。Lucene可以为你提供存储数据的方式,但在检索方面,它仅设计用于搜索文本字符串。
由于K-NN非常简单,你可能更适合在典型的关系数据库管理系统(RDBMS)或类似Berkeley DB的东西中创建自己的数据存储。你可以根据各个维度的子超立方体创建键/索引来加速处理——从要分类的项目的桶开始,然后向外扩展…