2013-06-05 6 views
0

1700 개의 기능과 3300 개의 인스턴스가있는 데이터 세트의 기능 선택을 적용하려고합니다. 피쳐 선택 방법 중 하나는 단계별 회귀입니다. 각 라운드에서 최악의 기능을 삭제하는 탐욕스러운 알고리즘입니다.기능 선택을위한 뒤로 욕심을 구현하십시오.

나는 최악의 기능을 찾기 위해 SVM에서 데이터 성능을 측정 기준으로 사용하고 있습니다. 처음에는 SVM을 1700 번 교육하고 매번 한 기능 만 유지합니다. 이 반복이 끝나면 제거로 인해 SVM 성능이 가장 높은 세트에서 해당 기능을 제거합니다. 이제 1699 개의 기능이 남아 있습니다.

두 번째로 SVM을 1699 번 훈련시키고 매번 한 기능을 계속 유지하는 식으로 진행합니다.

데이터 세트를 100 개로 줄이려면이 프로그램은 SVM (1700! -100!) 시간을 훈련시킵니다. 이것은 다루기가 힘듭니다. 이러한 문제를 피하는 방법에 대한 제안?

+0

무엇을 찾으십니까? 이 방법에 대한보다 지능적인 알고리즘 또는 다른 기능 선택 방법을 모두 사용 하시겠습니까? –

+0

똑똑한 알고리즘이 있다면하나요? –

답변

2

다른 알고리즘을 고려해 볼 수 있습니다. 정보를 사용하십시오.

그러나 질문에 대답하려면 : 반복 할 때마다 하나 이상의 기능을 제거해보십시오. 많은 기능을 제거하면서 시작하고 진행하면서이 숫자를 줄이십시오.

예. 첫 번째 실행 (1700 SVM 열차) 후에는 단 하나의 기능을 제거하는 대신 최악의 200 개의 기능을 제거한 다음 1500으로 반복하십시오. 예를 들어 300 개의 기능이 시작될 때마다 10 번씩 제거됩니다. 150에서 100까지는 반복 할 때마다 하나씩 제거합니다. 이를 위해서는 SVM을 "만"약 20,000 회 교육해야합니다. 이 숫자가 너무 많으면 숫자를 늘릴 수 있습니다. 나는 그 결과가 당신이 제안한대로 달리는 것과 아주 비슷하거나 적어도 실질적으로 더 나 빠지지 않을 것이라고 추측한다.