2017-03-08 1 views
2

데이터가 1672x6입니다. 나는 그 중 일부를 그림에 넣었다.의사 결정 트리의 결과 세트

enter image description here 여기서 x 값은 A1 A2 A3 A4 A5 A6이고 y 값은 B1 B2 .... B1672입니다. 의사 결정 트리를 생성하는 동안

나는 다음과 같은 코드를 사용 :

vars = {'A1', ' A2 ','A3',' A4 ','A5',' A6'} 
x = [A1 A2 A3 A4 A5 A6]; 
y = [B]; 
t = classregtree(x, y, 'method','classification', 'names',vars, ... 
       'categorical',[2 4], 'prune','off'); 
view(t) 

을 그리고 내가 값보다 큰 값을 얻으려면

enter image description here

같은 슈퍼 미친 트리를 생성하는 나는 줬다. 내가 말할 때 :

inst = [3 2.3 2 0 1 0]; 
prediction = eval(t, inst) 

을 그것은 단지 나에게 변수 것을 가지고 (B271 같은) B의 값을 제공하지만 inst 변수 등 A1>3 A2>2.3 A3>2 A4>0 A5>1 A6>0 같은보다 큰 값을 갖는 모든 B 변수를 싶어. 어떻게 얻을 수 있습니까? 다음은 이러한 모든 행을 출력하는 간단한 코드입니다, inst보다 큰 모든 행을 찾으려면 의사 결정 트리찾는 원하는 행

:

+0

왜 의사 결정 트리가 필요합니까? 'inst'보다 큰 모든 행을 얻고 싶을뿐입니다. 아니면 의사 결정 트리를 사용해야합니까? – smttsp

답변

0

당신은 두 가지를 혼동하는 것 .

for i = 1:size(B,1) 
    if all(a(i,:)>inst)==1 
     i, 
    end 
end 

그러나 의사 결정 트리는 완전히 다른 주제입니다. 의사 결정 트리에는 일련의 조건 (귀하의 경우 A1에서 A6까지)과 교육을위한 많은 행 (B1에서 B1672까지) 및 각각에 대한 결과가 있습니다. 새로운 테스트 케이스가 질의 될 때, 기계는 모든 결과에서 최선의 결과를 결정합니다.

일부 의사 결정 트리 totorials : 1, 2wikipedia