SVM으로 일부 예측 모델을 구축하는 scikit-learn과 협력하고 있습니다. 약 5000 개의 예제와 약 700 개의 기능을 가진 데이터 세트가 있습니다. 나는 훈련 세트에서 18x17 격자 검색으로 5 배 십자가 유효성을 검사하고 내 테스트 세트에 최적의 매개 변수를 사용합니다. 실행이 예상보다 오래 걸리고 다음과 같은 사실을 발견했습니다.SVM implmentation, scikits는 런타임 감소, 가장 빠른 svm을 배웁니다.
1) 일부 SVM 교육 반복은 1 분 정도 소요되는 반면 다른 15 분 정도 소요될 수 있습니다. 이것은 다른 데이터 및 매개 변수 (C 및 감마, 나는 rbf
커널을 사용하고 있습니다)로 예상됩니까?
2) Windows에서 64 비트 파이썬을 사용하여 추가 메모리를 활용하려하지만 내 모든 파이썬 프로세스가 작업 관리자에서 1 기가를 차지하는 것으로 보입니다. 런타임과 관련이 있습니다.
3) 이전에 32 비트를 사용하여 거의 동일한 데이터 세트에서 실행 중이었지만 결과는 저장하지 않았지만 기억이 빨라졌습니다. 필자는 제 3 자 빌드를 사용하여 64 비트 창에 scikit-learn을 작성 했으므로 32 비트 파이썬에서이 방법을 시도하는 것이 더 좋은지 잘 모릅니다. (소스 http://www.lfd.uci.edu/~gohlke/pythonlibs/)
내가 런타임을 줄일 수있는 방법에 대한 제안은 크게 감사하겠습니다. 내 표 검색의 검색 공간을 줄이는 것이 도움이 될 것 같지만 최적의 매개 변수 범위조차 확신 할 수 없으므로 가능한 한 크게 유지하고 싶습니다. 더 빠른 SVM 구현이있는 경우 저에게 알려주십시오. 제가 시도해 볼 수 있습니다.
부록 : 돌아가서 32 비트 버전을 다시 실행 해 보았습니다. 그것은 어떤 이유로 더 빠릅니다. 64 시간 버전이 16 시간 내에 도착하는 데 약 3 시간이 걸렸습니다. 왜 그런 차이가 있을까요?
답변 해 주셔서 감사합니다. 그들은 많은 의미를가집니다. 나는 32 비트 대 64 비트 문제 중 하나에 대해서는 확신하지 못하지만, 기회가 생기면 몇 가지 시간 초과 된 실행을 시도 할 것이다. 내 데이터가 사전 처리되어 (0-1로 정규화) scikits에 대해 cache_size가 4000으로 증가했습니다 (아마도 잔인 함). 확실히 코드를 수정하여 굵은 눈금에서 작은 영역으로 이동하여 코드를 빠르게 처리하는 데 도움이 될 것입니다. 다시 한번 감사드립니다. – tomas
@OGrisel, 일반 조잡한 그리드 탐색기는 어떨까요? – denis
다른 질문이 있습니다. 교차 유효성 검사 + 격자 검색을 수행하는 경우 어떻게 거친 격자 검색을 사용할 수 있습니까? 평균화를 시도하거나 여러 교차 유효성 검사를 실행할 때 검색 기준은 굵은 다음 괜찮을 때 일치하지 않습니다. 내가 알지 못하는 좋은 길이 있다는 것을 확신합니다. – tomas