Интерпретируемость MLPClassifier

#python #machine-learning #scikit-learn #classification

#python #машинное обучение #scikit-учиться #классификация

Вопрос:

У меня есть вопрос относительно интерпретируемости алгоритмов машинного обучения.

У меня есть набор данных, выглядящий следующим образом: табличный набор данных

Я подготовил модель классификации (MLPClassifier из Scikit-Learn) и хочу знать, какие функции оказывают наибольшее влияние (наибольший вес) на решение.

Моя конечная цель — найти различные решения (сочетание функций), которые с высокой вероятностью (> 90%) будут классифицированы как 1.

Кто-нибудь знает способ получить эти решения?

Заранее спасибо!

Ответ №1:

Чтобы определить важность признака во время выполнения задачи классификации, методологией классификации должен быть randomforest или decision tree, оба реализованы в sklearn,

 clf = RandomForestClassifier(n_estimators=100, max_depth=2,random_state=0)
clf.fit(X, y)
#After the fit step
clf.feature_importances_ 
  

Важность функции покажет вам, какой вес имеет каждая функция. если ваш классификатор MLP обучен должным образом, он присвоит почти одинаковую важность различным функциям в вашей сети,