2014-09-26 2 views

답변

1
Mat Col(28539, 97, CV_32F); 

은 OpenCV 2 차원 (28539 행, 97 컬럼) 밀집 부동 소수점 (CV_32F = float) 배열입니다. datatype 거의 동등한

alglib는

// bi-dimensional real (double precision) array 
real_2d_array matrix; 
Mat의 데이터 레이아웃 real_2d_array 호환

(다른 툴킷 및 SDK에서 조밀 배열 유형의 대부분)이다. 변환

간단한 방법은 :

const int rows(28539); 
const int columns(97); 

matrix.setlength(rows, columns); 

for (int i(0); i < rows; ++i) 
    for (int j(0); j < columns; ++j) 
    matrix(i, j) = Col.at<float>(i, j); 

Mat::at 지정된 배열 요소에 대한 참조를 반환한다. reference manual 가입일

EDIT

:

void alglib::dfbuildrandomdecisionforest(
    real_2d_array xy, 
    ae_int_t npoints, 
    ae_int_t nvars, 
    ae_int_t nclasses, 
    ae_int_t ntrees, 
    double r, 
    ae_int_t& info, 
    decisionforest& df, 
    dfreport& rep); 
  • xy는 (라인이 변수에 대응하는 구성 요소와 열 샘플에 대응하는) 트레이닝 세트이다.

    분류 작업의 경우 열의 첫 번째 nvars에는 독립 변수가 포함됩니다. 마지막 열에는 클래스 번호 (0에서 nclasses-1까지)가 포함됩니다. 분수 값은 가장 가까운 정수로 반올림됩니다.

  • npoints은 학습 세트 크기 (>=1)입니다.
  • nvars은 독립 변수의 수 (>=1)입니다.
  • nclasses은 분류를 위해> 1이어야합니다.
  • ntrees은 포리스트의 트리 수 (>=1)입니다.
  • r은 개별 트리를 만드는 데 사용되는 교육 세트의 백분율입니다 (0 < R <= 1).

나머지 매개 변수는 출력 매개 변수입니다. 문제가있는 경우에 당신은 info을 확인해야합니다 :

  • info 반환 코드 :
    • -2, [0..nclasses-1]의 외부 클래스 번호가있는 지점이있는 경우.
    • -1
    • 잘못된 파라미터 ( npoints<1, nvars<1, nclasses<1, ntrees<1, r<=0 또는 r>1) 경과 한 경우.
    • 작업이 해결 된 경우 1입니다.
+0

답장을 보내 주셔서 감사합니다. 나는 이미 같은 방식으로 행동했다. 내가 설정 한 다른 매개 변수는 alglib :: dfbuildrandomdecisionforest (행렬, 28539, 96,7, 80, 0.66, info, df, rep)입니다. 그러나 여전히 모델은 만들어지지 않습니다. 나는 또한 정확한 매트릭스에 포함 된 데이터를 확인했다. 내가 잘못하고있는 것을 plz 해 줄 수 있습니까 (무작위 포리스트에 매개 변수를 전달하는 것과 같습니다) – kkdirvi

+0

'info' 출력 매개 변수의 값을 확인 했습니까? 리턴 코드는 1이어야합니다. 또한'matrix'의 마지막 열은 클래스 번호 (귀하의 경우 0에서 6까지)를 포함해야합니다. – manlio

+0

정보의 출력을 확인한 결과 매개 변수에 문제가 있음을 나타내는 -1입니다. 나에게 당신에게 세부 사항을 알려주지 .... 매트릭스는 교육 데이터를 포함하고 마지막 열은 클래스 라벨이다. 다른 매개 변수는 alglib :: dfbuildrandomdecisionforest (행렬, 28539, 96,7, 80, 0.66, info, df, rep)입니다. – kkdirvi

관련 문제