使用PyLucene作为K-NN分类器

时间:2011-04-06 18:39:52

标签: python lucene machine-learning data-mining pylucene

我有一个由数百万个例子组成的数据集,其中每个例子包含128个用名称分类的连续值特征。我正在尝试找到一个强大的数据库/索引来用作高维数据的KNN分类器。我尝试了Weka's IBk classifier,但它对这么多数据感到窒息,即便如此,它也必须加载到内存中。 Lucene,特别是通过PyLucene接口,是否可能是替代方案?

我找到了Lire,它似乎以类似的方式使用Lucene,但在查看代码后,我不确定它们是如何将它拉下来的,或者它是否与我相同“我试图做。

我意识到Lucene被设计为文本索引工具,而不是通用分类器,但是可以这样使用吗?

2 个答案:

答案 0 :(得分:1)

鉴于你告诉我们的事情,Lucene似乎不是正确的选择。 Lucene会给你一种存储数据的方法,但就检索而言,它并不是为了搜索文本字符串而设计的。

由于K-NN非常简单,您最好在典型的RDBMS或类似Berkeley DB中创建自己的数据存储。你可以根据不同尺寸的子超立方体创建关键/指示,以加快速度 - 从要分类的项目的桶开始向外移动......

答案 1 :(得分:0)

这已在Lucene已经使用geospatial searches完成。当然,built-in地理空间搜索仅使用两个维度,因此您必须稍微修改它。但是使用数值范围查询的基本思想是有效的。

(注意:我不知道有人在使用Lucene进行高维kNN。所以我不能评论它的速度有多快。)