4

Ich würde gerne wissen, ob es eine Möglichkeit gibt, die wichtigsten/beitragenden Merkmale zu visualisieren oder zu finden, nachdem ein MLP-Klassifikator in Sklearn angepasst wurde.Die wichtigsten/beitragenden Features im MLP-Klassifikator in Sklearn

Einfaches Beispiel:

import pandas as pd 
import numpy as np 
from sklearn.preprocessing import StandardScaler 
from sklearn.model_selection import LeaveOneOut 
from sklearn.neural_network import MLPClassifier 
from sklearn.model_selection import GridSearchCV 
from sklearn.pipeline import make_pipeline 


data= pd.read_csv('All.csv', header=None) 
X, y = data.iloc[0:, 0:249].values, data.iloc[0:,249].values 

sc = StandardScaler() 
mlc = MLPClassifier(activation = 'relu', random_state=1,nesterovs_momentum=True) 
loo = LeaveOneOut() 
pipe = make_pipeline(sc, mlc) 

parameters = {"mlpclassifier__hidden_layer_sizes":[(168,),(126,),(498,),(166,)],"mlpclassifier__solver" : ('sgd','adam'), "mlpclassifier__alpha": [0.001,0.0001],"mlpclassifier__learning_rate_init":[0.005,0.001] } 
clf = GridSearchCV(pipe, parameters,n_jobs= -1,cv = loo) 
clf.fit(X, y) 

model = clf.best_estimator_ 
print("the best model and parameters are the following: {} ".format(model)) 

Antwort

4

Gute Frage. Die mangelnde Interpretierbarkeit von NN-Modellen ist ein Schmerz, mit dem die ML/NN-Gemeinschaft zu kämpfen hat.

Ein neuer Ansatz, der Beachtung gefunden hat, ist die LIME paper (Ribeiro et al, KDD'16). Hier ist ein relevanter Auszug aus der Zusammenfassung:

  • „In dieser Arbeit wir LIME vorschlagen, eine neuartige Erklärung Technik, die die Vorhersagen von jedem Klassifizierer in einer interpretierbaren und getreuen Weise erklärt, durch ein interpretierbares Modell Lernen lokal um die Vorhersage ".

Es gibt auch eine GitHub repository (Python, yay!).

(Wenn Sie versuchen, LIME, bitte teilen Sie Ihre Erfahrung in der Frage Kommentare ..)

+1

Hallo @tomer danke. Ich werde auf jeden Fall den LIME überprüfen – sera

Verwandte Themen