2014-04-07 3 views
0

LDA (선형 판별 분석) 분류자를 사용하여 데이터를 분류하고 싶습니다. 내 테스트 데이터의 크기는 다음과 같습니다LDA 분류가있는 matlab 오류

1 12 240 64 

그리고 내 기차 데이터 크기는 다음과 같습니다

85 12 240 64 

내 라벨 크기는 :이 같은 분류 MATLAB 코드를 사용이를 위해

1 85 

:

class = classify(Test_data, Train_data, label, 'linear'); 

하지만 오류가 발생합니다. 나 : 당신이 보는대로, 내 훈련 데이터 행 번호가 85, 내 label(GROUP) 길이와 동일하기 때문에 나도 몰라

The length of GROUP must equal the number of rows in TRAINING.

왜 나에게이 오류를 제공합니다. 어떤 사람이 내가 잘못한 것을 말해 줄 수 있습니까?

+0

이 질문은 Matlab 관련 오류 메시지의 원인에 관한 것이므로 주제와 관련이없는 것으로 보입니다. 그것은 통계적 이슈가 아닌 Matlab 문법 이슈 인 것 같습니다. –

+0

그리고 LDA는 무엇입니까? – ttnphns

+0

@ ttnphns LDA 또는 선형 판별 분석 및 관련 피셔 선형 판별은 통계, 패턴 인식 및 기계 학습에서 두 개 이상의 클래스의 객체 또는 이벤트를 특징 짓거나 구분하는 피쳐의 선형 조합을 찾는 데 사용되는 방법입니다. – maia

답변

1

LDA는 행에서 작동합니다. "교육 및 그룹의 행 수가 같아야합니다"라는 문서를 기록하십시오.

레이블은 현재 열에 지정되어 있습니다. 다음과 같이 오류가 수정됩니다.

class = classify(Test_data,Train_data,label','linear'); 

'행 뒤를 바꿀 레이블.'에 유의하십시오.

+0

@Alex에 감사드립니다. 그것은 작동하지만, 이제는 "샘플과 트레이닝에 같은 수의 열이 있어야합니다."와 같은 또 다른 오류가 발생합니다. 그러나 둘 다 동일한 열 번호를 가지고 있는지, 그리고 라벨을 쓰는 것이 왜 중요합니까? 문제는 행 또는 열 번호가 아닌 레이블의 길이입니다. 이해할 수 없습니다. – maia

+0

괜찮습니다! 일반적으로 변수의 크기를 더 자세히보고 열 벡터와 행 벡터의 차이점을 이해해야한다고 생각합니다. 행 및 열 번호 * 확실히 중요합니다! http://www.mathworks.com/help/stats/classify.html 클래스 = 분류 (샘플, 교육, 그룹) 일반적으로 는, 크기가 같아야합니다 : 는 여기를 참조하십시오 크기 (샘플) == (num_samples, num_variables), 크기 (training) == (num_samples, num_variables), 크기 (training) == (num_samples, 1). 현재 매트릭스가 너무 큽니다 (4d 대 2d). 따라서 데이터 구조가 어떻게 구성되어 있는지주의 깊게 생각하십시오. 행운을 빕니다! – Alex

+0

감사합니다 @ Alex.i matlab은 2D 데이터를 지원합니다. 그래서 모든 3D 및 4D 데이터를 2D 매트릭스로 변환하고 마침내 내 문제를 해결합니다. – maia