def feature_importance(self): if not self.model: raise Exception("There are no predictions yet!") weights = PermutationImportance(self.model).fit( self.x_test.values, self.y_test.values) weights = pd.DataFrame({ 'Features': list(self.features), 'Importance': weights.feature_importances_ }) weights = weights.reindex( weights['Importance'].abs().sort_values(ascending=False).index) # weights = weights[(weights["Importance"] != 0)] self.plot(weights)
def surrogate(self, white_box): white_box.fit(self.x_train, self.model.predict(self.x_train)) prediction = white_box.predict(self.x_test) print('~~~~ Global surrogate ~~~~') print("Fidelity: ", accuracy_score(self.y_test, prediction)) weights = PermutationImportance(white_box).fit(self.x_test.values, self.y_test.values) weights = pd.DataFrame({ 'Features': list(self.features), 'Importance': weights.feature_importances_ }) weights = weights.reindex( weights['Importance'].abs().sort_values(ascending=False).index) weights = weights[(weights["Importance"] != 0)] self.plot(weights)