2012-04-01 2 views
2

scatter plot 다음은 임의의 숫자를 해당 클래스로 분류하는 베이 스 분류 자용 Matlab 코드입니다.오 분류 오류율 및 정확도

training = [3;5;17;19;24;27;31;38;45;48;52;56;66;69;73;78;84;88]; 
    target_class = [0;0;10;10;20;20;30;30;40;40;50;50;60;60;70;70;80;80]; 

     test = [1:2:90]'; 
    class = classify(test,training, target_class, 'diaglinear'); % Naive Bayes classifier 
[test class] 

(a) 누군가가 오 분류 및 정확도를 위해 베이 스 오류를 계산하기위한 코드 스 니펫을 제공 할 수있는 경우. 나는 [class,err]=classify(...)에 관한 matlab의 문서를 살펴 보았다. 그러나 나는 그것을 따라갈 수없고 일할 수 없다.

(b) 다른 클래스에 속하는 데이터 요소의 수를 나타내는 산점도와 막대 그래프를 그리는 방법은 무엇입니까? 나는 scatter(training(:),target_class(:))으로 해봤지만 다른 것을 제공합니다!

(c) crossvalidate()를 사용하는 방법? 예가 도움이 될 것입니다. 감사합니다.

답변

2

(a) 잘못 분류 오류를 계산하려면 test_class도 알아야합니다. 그런 다음 출력 변수 classtest_class을 비교할 수 있습니다.

misserr = sum(test_class~=class)./numel(test_class); 

당신이 제 2 출력 인수 err는 당신에게 트레이닝 세트에서 생성 된 모델을 적용 오 분류 오류에 대한 견적을 줄 것이다 테스트 클래스가없는 경우.

(b)에 당신이 훈련 데이터에서 단 2 요인 (열)가있는 경우는 3 개 요인 SCATTER3을 사용할 수 있습니다, 당신은 단지 상응

scatter(training(:,1),training(:,2),[],target_class) 

을 할 수있는 설정합니다.

PRINCOMP 및 플롯 2 또는 3 첫 번째 구성 요소를 사용하여 주 요소 분석을 수행 할 수 있습니다.

업데이트 : 실제로 한 가지 요소 만 놓쳤습니다. scatter 문은 꽤 잘 작동 할 수 있습니다. 왜 그걸 좋아하지 않니? 또한 포인트를 다르게 색칠하여 target_class을 4 번째 인수로 추가 할 수 있습니다. 1 차 및 2 차 인수를 교환하여 더 나은 표현이 될 수도 있습니다.

(c) 귀하는 통계 도구 상자에서 CROSSVALCVPARTITION 기능 CV을 수행 할 수 있습니다. 유용한 예제는 설명서를 참조하십시오.

몇 가지 추가 옵션이있는 다른 질문 (How to use a cross validation test with MATLAB?)이 있습니다.

+0

안녕하세요. 감사합니다. (b) 산점도를 사용하면 산란 점 대신 여러 선이 표시됩니다. 하나의 열/요소 데이터에 대해 올바른 코드를 제공해 주시겠습니까? (c) 내 경우에 cv를 사용하는 목적은 2 개 이상의 분류 자 ​​(이 경우 bayes와 k-nn, PCA 등)의 오류를 비교하는 것입니다. CV를 사용하려면 어떻게해야합니까? 비교 목적. 나는 Matlab 's보다 쉽게 ​​당신의 예제를 찾아라! – Chaitali

+0

스 캐터 플롯 (scatter plot) 문으로 라인을 가져 오면 안됩니다. 나는'scatter (training, ones (size (training)), [], target_class)'을 시도해 보았고 잘 작동했다. Y 축과 색상은'target_class'에 의존합니다. – yuk

+0

이러한 분류 기준을 모두 CLASSIFY와 함께 적용 할 수는 없습니다. 분류기는 4 가지 유형 밖에 없습니다. 나는 당신이 교차 검증으로 그것을 할 수 있다고 믿습니다. CROSSVAL 문서의 예 2를 참조하십시오. 다른 예측 기능 (분류 제외)을 제공해야합니다. 그것은 당신이 다른 기능을 비교하는 데 사용할 수있는 미스 분류 율을 반환합니다. – yuk