title: How to make sense the output of DecisionTreeClassifier in scikit-learn?
body: <p>I'm learning ML and uses <code>scikit-learn</code> to do a basic decision tree classify.</p>
  
  <p>The value of features are categorical so I used <code>DictVectorizer</code> to convert the original feature values. Here's my code:</p>
  
  <pre><code>training_set # list of dict representing the traing set
  labels # corresponding labels of the training set
  vec = DictVectorizer()
  vectorized = vec.fit_transform(training_set)
  clf = tree.DecisionTreeClassifier()
  clf.fit(vectorized.toarray(), labels)
  
  with open("output.dot", "w") as output_file:
      tree.export_graphviz(clf, out_file=output_file)
  </code></pre>
  
  <p>But I don't understand the output graph. It contains a tree with each node marked <code>X[1] &lt;= 0.5000</code> or something like that. What I expected was that the nodes marked with <code>FEATURE_1 == VALUE_1</code>, the <code>un-vectorized</code> information show on the tree.</p>
  
  <p>Is it possible?</p>
  
  <p>UPDATE:</p>
  
  <p>For example, <code>FEATURE_1</code> has three possible values <code>A</code>, <code>B</code>, <code>C</code>, which in turn be vectorized into <code>0,0</code>, <code>0,1</code>, <code>1,0</code> respectively. What I want on the graph is <code>FEATURE_1 == A</code> instead of <code>X[1] &lt;= 0.5</code></p>
  
  <p><img src="https://i.stack.imgur.com/EQIsc.png" alt="enter image description here"></p>