2014-02-07 2 views
1

수정 된 이미지 감지를위한 정확성을 테스트하는 Matlab 알고리즘을 구현 중입니다. 정확도는 SVM에 의해 제공됩니다. 하지만 내 문제는 계산 복잡도를 줄이기위한 목적으로 adaboost를 사용하여 높은 기능을 선택하는 방법입니다.계산 복잡도를 줄이기 위해 Matlab의 AdaboostM1을 사용한 높은 기능 선택

세부적으로 이미지에 대한 특징 벡터 (1xN)가 있으며 adaboost에서 비슷한 벡터를 사용할 수 있는지 확신 할 수 없습니다. 나는 X, numberens= 30,50,75,100, 'tree'을 매개 변수로 사용하여 Matlab에서 fitensemble 함수를 사용하고 있습니다. D 차원의 새로운 특징 벡터를 얻어야합니다. 제 질문은 데이터 입력의 관측치가 피쳐이기 때문에 행 벡터를 열 벡터로 변환해야합니까, 아니면 완전히 잘못 되었습니까?

어디에서 새 기능 벡터를 찾을 수 있습니까? 또는 결과 모델에서 어떻게 얻을 수 있습니까?

세부 사항 : 는 "밀어주는 기능 선택은 D 차원의 새로운 특징 벡터, 다음 그들이 최종 분류에 사용되는 계산의 복잡성을 줄이기 위해 최적의 기능을 선택할 수 있습니다 D 반복 한 후, 우리가 얻을 수 있습니다.." 내 생각에 내 기능 값은 관측 값일 수 있고 해당 이미지와 관련된 하나의 열만 있습니다. Adaboost는 차원 D가있는 새 피처 벡터를 반환해야합니다. 예를 들어, 초기 피쳐 벡터 F의 길이가 256 인 경우 30 개의 반복을 사용하는 경우 크기 30의 새 피처 벡터를 얻어야합니까? F에는 많은 0이 포함되어 있으며 최대 값은 100000과 같을 수 있습니다.

답변

0

'NVarToSample' 속성이 ClassificationTree.template인지 확인할 수 있습니다. 기본적으로 fitensemble은 부기에 대한 예측 자 수의 제곱근 인 부스트에 'all'을 사용합니다. AdaBoostM1의 사례가 무엇인지 잘 모르겠습니다. 당신은 시도가 긍정적 값으로 설정 D 대신 기본 'all'의 수 위의 코드에서

mdl1 = ClassificationTree.template('NVarToSample','all'); 
ens = fitensemble(features,classLabels,'AdaBoostM1',30,'tree',... 
     mdl1,'type','classification'); 

참고, features의 각 열은 하나 개의 변수를 나타내며, 각 행은 하나 개의 관찰을 나타냅니다.

자세한 내용은 mathworks의 (1)(2) 예제를 참조하십시오.

+0

고마워,하지만 문제가 해결되지 않는다. 나는 더 명확하게하려고 노력한다. –