Самые важные функции в MLPClassifier в Sklearn
Я хотел бы знать, есть ли способ визуализировать или найти наиболее важные / способствующие функции после установки классификатора MLP в Sklearn.
Простой пример:
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))
1 ответ
Хороший вопрос. Отсутствие интерпретируемости моделей NN - одна из проблем, с которой сталкивается сообщество ML/NN.
Одним из недавних подходов, который привлек внимание, является бумага LIME (Рибейро и др., KDD'16). Вот соответствующая выдержка из резюме:
- "В этой работе мы предлагаем LIME, новый метод объяснения, который объясняет предсказания любого классификатора интерпретируемым и точным способом, изучая интерпретируемую модель локально вокруг предсказания".
Также есть репозиторий GitHub (Python, ууу!).
(Если вы попробуете LIME, пожалуйста, поделитесь своим опытом в комментариях к вопросу..)