2011-04-06 3 views
0

나는 수많은 예제로 구성된 데이터 세트를 가지고 있는데, 각 예제에는 이름으로 분류 된 128 개의 연속 값 기능이 들어 있습니다. 나는 고차원 데이터를위한 KNN 분류 자로 사용할 큰 견고한 데이터베이스/인덱스를 찾고자합니다. 나는 Weka's IBk classifier을 시도했지만 많은 양의 데이터를 질식시키고 심지어 메모리에로드해야합니다. Lucene, 특히 PyLucene 인터페이스를 통해 가능한 대안이 될 수 있습니까?PyLucene을 K-NN 분류 자로 사용

비슷한 방법으로 Lucene을 사용하는 것 같습니다.하지만 코드를 검토 한 후, 어떻게 그 코드를 철저히 조사하고 있는지, 또는 내가 시도하고있는 것과 동일한 것인지 확실하지 않습니다. 해야 할 것.

나는 Lucene이 텍스트 인덱싱 도구로 설계된 것이지 일반적인 목적의 분류 기준이 아니라는 점을 알고 있지만 이런 식으로 사용할 수 있습니까?

+1

는 "예 수백만을"처리하려면, 당신은해야 아파치 mahout - 분산 된 기계 학습 프레임 워크 - kNN : https://issues.apache.org/jira/browse/MAHOUT-115가있는 것 같습니다. – Skarab

+0

Mahout의 KNN에 대한 설명서는 Taste 구성 요소의 간략한 참조 이외에는 찾을 수 없습니다.이 설명서에서는 부울 기능 만 지원한다고 명시되어 있습니다. Mahout은 범용 KNN으로 사용 가능한 것으로 보이지 않습니다. – Cerin

답변

1

Lucene은 당신이 우리에게 말한 것을 옳은 선택처럼 보이지 않습니다. Lucene은 데이터를 저장하는 방법을 제공하지만 검색 측면에서 텍스트 문자열을 검색하는 것 외에는 아무 것도하지 않도록 설계되었습니다.

K-NN은 매우 간단하므로 일반적인 RDBMS 또는 Berkeley DB와 같은 데이터 저장소를 만드는 것이 좋습니다. 여러 차원의 하위 하이퍼 큐브를 기반으로 키/표시를 만들어 분류 할 항목의 물통에서 시작하여 바깥쪽으로 이동할 수 있습니다.

+0

나는 비싼 독점 시스템에서만 대부분 지원되는 GIS 표준 외부의 KNN 분류에 대한 RDBM 지원을 보지 못했습니다. 나는 당신이 "hypercubes"를 가진 열쇠/indicies를 만드는 것에 의해 당신이 의미하는 것이 확실하지 않습니다. 몇 가지 자료를 인용 해 주시겠습니까? – Cerin

+0

RDBMS를 사용한다면 스스로 롤백해야합니다. 대형 데이터 세트를 사용하는 경우 BDB 또는 RDMNS에 모든 쌍을 저장 한 다음 각 차원에 따라 색인을 생성 할 수 있습니다. 2 차원의 경우 이는 매개 변수의 공간에 그리드를 그리는 것과 같습니다. 그런 다음 가장 가까운 항목에 대해 셀과 인접 셀을 검색합니다. 소식통도없고 단지 아이디어. – dfb

0

이 작업은 이미 Lucene에서 geospatial searches으로 수행됩니다. 물론 built-in 지형 공간 검색은 두 개의 측정 기준 만 사용하므로 약간 수정해야합니다. 그러나 숫자 범위 쿼리를 사용하는 기본 아이디어가 효과적입니다.

(참고 :.. 나는 그래서 나는 그것이 얼마나 빨리에 언급 할 수 루씬 높은 차원 KNN을하는 사람이 잘 모르는 것 같아요)