title: How to print the order of important features in Random Forest regression using python?
body: <p>I am trying out to create a Random Forest regression model on one of my datasets. I need to find the order of importance of each variable along with their names as well. I have tried few things but can't achieve what I want. Below is the sample code I tried on Boston Housing dataset:</p>
  
  <pre><code>from sklearn.ensemble import RandomForestClassifier
  from sklearn.datasets import load_boston
  from sklearn.ensemble import RandomForestRegressor
  import pandas as pd
  import numpy as np
  boston = load_boston()
  rf=RandomForestRegressor(max_depth=50)
  idx=range(len(boston.target))
  np.random.shuffle(idx)
  rf.fit(boston.data[:500], boston.target[:500])
  instance=boston.data[[0,5, 10]]
  print rf.predict(instance[0])
  print rf.predict(instance[1])
  print rf.predict(instance[2])
  important_features=[]
  for x,i in enumerate(rf.feature_importances_):
        important_features.append(str(x))
  print 'Most important features:',', '.join(important_features)
  </code></pre>
  
  <p>Most important features: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12</p>
  
  <p>If I print this:</p>
  
  <pre><code>impor = rf.feature_importances_
  impor
  </code></pre>
  
  <p>I get below output:</p>
  
  <pre><code>array([  3.45665230e-02,   4.58687594e-04,   5.45376404e-03,
       3.33388828e-04,   2.90936201e-02,   4.15908448e-01,
       1.04131089e-02,   7.26451301e-02,   3.51628079e-03,
       1.20860975e-02,   1.40417760e-02,   8.97546838e-03,
       3.92507707e-01])
  </code></pre>
  
  <p>I need to get the names associated with these values and then pick the top n out of these features.</p>