我有一个由数百万个示例组成的数据集,其中每个示例包含128个用名称分类的连续值特征。我正在尝试寻找一个大型的健壮的数据库/索引来用作高维数据的KNN分类器。我尝试过Weka's IBk classifier,但它占用了这么多的数据,即使这样,它也必须加载到内存中。Lucene,特别是通过PyLucene接口,会是一种可能的替代方案吗?
我找到了Lire,它似乎以类似的方式使用Lucene,但在查看代码后,我不确定他们是如何做到的,或者这是否与我正在尝试做的事情相同。
我意识到Lucene被设计成一个文本索引工具,而不是一个通用的分类器,但是可以这样使用它吗?
发布于 2011-04-07 02:51:42
从您告诉我们的情况来看,Lucene似乎不是正确的选择。Lucene将为您提供一种存储数据的方法,但在检索方面,它的设计初衷只是在文本字符串上进行搜索。
由于K-NN是如此简单,您最好在典型的RDBMS或Berkeley DB之类的数据库中创建自己的数据存储。您可以基于各种维度的子超立方体创建键/索引,以加快速度-从要分类的项目的存储桶开始并向外移动……
发布于 2011-04-12 02:52:04
这在Lucene中已经用geospatial searches完成了。当然,built-in地理空间搜索只使用两个维度,因此您必须对其进行一些修改。但是使用数值范围查询的基本思想是可行的。
(注意:我不知道有谁用Lucene做高维kNN。所以我不能评论它会有多快。)
https://stackoverflow.com/questions/5571339
复制相似问题