From 796f8d6261e5fb8dc3ef9c17aa704a1d0ae8b69e Mon Sep 17 00:00:00 2001
From: bbauvin <baptiste.bauvin@centrale-marseille.fr>
Date: Thu, 19 Oct 2017 16:27:11 -0400
Subject: [PATCH] Minor changes

---
 .../MonoviewClassifiers/RandomForest.py         | 17 ++++++++++++++++-
 1 file changed, 16 insertions(+), 1 deletion(-)

diff --git a/Code/MonoMultiViewClassifiers/MonoviewClassifiers/RandomForest.py b/Code/MonoMultiViewClassifiers/MonoviewClassifiers/RandomForest.py
index 2d29ba19..66caa2d4 100644
--- a/Code/MonoMultiViewClassifiers/MonoviewClassifiers/RandomForest.py
+++ b/Code/MonoMultiViewClassifiers/MonoviewClassifiers/RandomForest.py
@@ -3,6 +3,7 @@ from sklearn.pipeline import Pipeline
 from sklearn.model_selection import RandomizedSearchCV
 from scipy.stats import randint
 import numpy as np
+import cPickle
 
 from .. import Metrics
 from ..utils.HyperParameterSearch import genHeatMaps
@@ -89,4 +90,18 @@ def getConfig(config):
 
 
 def getInterpret(classifier, directory):
-    pass
+    featureImportances = classifier.feature_importances_
+    sortedArgs = np.argsort(-featureImportances)
+    featureImportancesSorted = featureImportances[sortedArgs][:50]
+    featureIndicesSorted = sortedArgs[:50]
+    featuresImportancesDict = dict((featureIndex, featureImportance)
+                                   for featureIndex, featureImportance in enumerate(featureImportances)
+                                   if featureImportance != 0)
+    with open(directory+'-feature_importances.pickle', 'wb') as handle:
+        cPickle.dump(featuresImportancesDict, handle)
+    interpretString = "Feature importances : \n"
+    for featureIndex, featureImportance in zip(featureIndicesSorted, featureImportancesSorted):
+        if featureImportance>0:
+            interpretString+="- Feature index : "+str(featureIndex)+ \
+                             ", feature importance : "+str(featureImportance)+"\n"
+    return interpretString
-- 
GitLab