Перейти к содержимому

Feature importance sklearn что показывает

  • автор:

4.2. Важность перестановочного признака ¶

Важность перестановочного признака — это метод проверки модели, который можно использовать для любого подобранного оценщика, когда данные являются табличными. Это особенно полезно для нелинейных или непрозрачных оценщиков. Важность перестановочного признака определяется как уменьшение оценки модели, когда одно значение признака случайным образом перетасовывается (Источник 1). Эта процедура нарушает взаимосвязь между функцией и целью, поэтому снижение оценки модели указывает на то, насколько модель зависит от функции. Преимущество этого метода заключается в том, что он не зависит от модели, и его можно вычислять много раз с различными перестановками признака.

Функция permutation_importance вычисляет значение функции оценок для данного набора данных. Параметр n_repeats устанавливает, сколько раз функция случайным образом перемешивается и возвращает образец художественных важностей.

Рассмотрим следующую обученную регрессионную модель:

>>> from sklearn.datasets import load_diabetes >>> from sklearn.model_selection import train_test_split >>> from sklearn.linear_model import Ridge >>> diabetes = load_diabetes() >>> X_train, X_val, y_train, y_val = train_test_split( . diabetes.data, diabetes.target, random_state=0) . >>> model = Ridge(alpha=1e-2).fit(X_train, y_train) >>> model.score(X_val, y_val) 0.356.

Его эффективность проверки, измеренная с помощью $R^2$ оценка, значительно превышает уровень вероятности. Это позволяет использовать функцию permutation_importance для проверки того, какие функции являются наиболее предсказуемыми:

>>> from sklearn.inspection import permutation_importance >>> r = permutation_importance(model, X_val, y_val, . n_repeats=30, . random_state=0) . >>> for i in r.importances_mean.argsort()[::-1]: . if r.importances_mean[i] - 2 * r.importances_std[i] > 0: . print(f"" . f"" . f" +/- ") . s5 0.204 +/- 0.050 bmi 0.176 +/- 0.048 bp 0.088 +/- 0.033 sex 0.056 +/- 0.023

Обратите внимание, что значения важности для основных функций составляют значительную часть контрольной оценки 0,356.

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

Функции, которые считаются маловажными для плохой модели (низкий балл перекрестной проверки), могут быть очень важны для хорошей модели . Поэтому всегда важно оценивать предсказательную силу модели, используя удерживаемый набор (или лучше с перекрестной проверкой), прежде чем вычислять значения. Важность перестановки отражает не внутреннюю прогностическую ценность функции как таковой, а то, насколько важна эта функция для конкретной модели .

4.2.1. Схема алгоритма важности перестановки

  • Входные данные: подобранная прогнозная модель $m$, табличный набор данных (обучение или проверка) $D$.
  • Вычислить контрольную оценку $s$ модели $m$ по данным $D$ (например, точность классификатора или $R^2$ для регрессора).
  • Для каждой функции $j$ (столбец $D$):
    • За каждое повторение $k$ в $1,…,K$:
      • Случайно перемешать столбец $j$ набора данных $D$ для создания поврежденной версии данных с именем $\tilde_$.
      • Подсчитайте счет $s_$ модели m о поврежденных данных $\tilde_$.

      4.2.2. Связь с важностью деревьев на основе примесей

      Древовидные модели обеспечивают альтернативную меру значимости признаков, основанную на среднем уменьшении примесей (MDI). Примесь количественно оценивается критерием разделения деревьев решений (Джини, энтропия или среднеквадратичная ошибка). Однако этот метод может придавать большое значение функциям, которые не могут быть предсказаны на невидимых данных, когда модель переоснащается. С другой стороны, важность функции на основе перестановок позволяет избежать этой проблемы, поскольку ее можно вычислить на невидимых данных.

      Кроме того, важность признаков на основе примесей для деревьев сильно смещена и отдает предпочтение признакам с высокой мощностью (обычно числовым признакам) по сравнению с признаками с низкой мощностью, такими как двоичные признаки или категориальные переменные с небольшим количеством возможных категорий.

      Важность признаков на основе перестановок не демонстрирует такой предвзятости. Кроме того, важность перестановки признаков может быть вычисленной метрикой производительности на основе предсказаний моделей и может использоваться для анализа любого класса модели (а не только древовидных моделей).

      В следующем примере подчеркиваются ограничения важности функции на основе примесей в отличие от важности функции на основе перестановок : важность перестановки и важность функции случайного леса (MDI) .

      4.2.3. Вводящие в заблуждение значения сильно коррелированных характеристик

      Когда два объекта коррелированы и одна из них переставлена, модель по-прежнему будет иметь доступ к объекту через свой коррелированный объект. Это приведет к более низкому значению важности для обеих функций, где они действительно могут быть важны.

      Один из способов справиться с этим — объединить коррелированные функции в кластер и сохранить только одну функцию из каждого кластера. Эта стратегия рассматривается в следующем примере: Важность перестановки с мультиколлинеарными или коррелированными объектами .

      • Важность перестановки против важности случайных функций леса (MDI)
      • Важность перестановки с мультиколлинеарными или коррелированными элементами
      1. Л. Брейман, «Случайные леса», Машинное обучение, 45 (1), 5-32, 2001. https://doi.org/10.1023/A:1010933404324

      Если вы хотите помочь проекту с переводом, то можно обращаться по следующему адресу support@scikit-learn.ru
      © 2007 — 2020, scikit-learn developers (BSD License).

      Feature importance в sklearn и catboost на примере классических датасетов

      В данной статье будет рассмотрен пример вычисления и визуализации feature importance на классических датасетах iris и wine. Используемые ml-библиотеки: sklearn и catboost. Для визуализации будет использоваться matplotlib.

      Создание классификатора на основе имеющихся данных – частая задача в практике DS-специалиста. Все помнят один из основных минусов моделей на нейронных сетях – они плохо поддаются интерпретации. При этом, чем сложнее архитектура, тем более неожиданно могут выбираться признаки для решения задачи. Однако, классические методы машинного обучения, такие как, например, деревья решений поддаются интерпретации относительно хорошо и понять, почему модель показала такой результат, а не другой — довольно просто. Более того, можно даже узнать насколько важны те или иные параметры! Это и есть feature importance. Принцип вычисления значений для признака F следующий:

      Сравниваемые пары листьев имеют разные значения разделения в узле на пути к этим листьям. Если условие разделения выполнено (это условие зависит от функции F), объект переходит в левое поддерево, в противном случае он переходит в правое. Таким образом,

      где с1 и с2 и представляют общий вес объектов в левом и правом листьях соответственно. Этот вес равен количеству объектов в каждом листе, если веса не указаны для набора данных.

      v1 и v2 и представляет значение формулы в левом и правом листьях соответственно.

      В данной статье будет рассмотрен пример вычисления и визуализации feature importance на классических датасетах iris и wine. Используемые ml-библиотеки: sklearn и catboost. Для визуализации будет использоваться matplotlib.

      Импорт необходимых библиотек:

      from sklearn.ensemble import RandomForestClassifier import matplotlib.pyplot as plt from sklearn import datasets import pandas as pd from catboost import CatBoostClassifier, cv 

      Загрузка датасета iris:

      iris = datasets.load_iris() df_iris = pd.DataFrame(data=iris['data'], columns=iris['feature_names']) df_iris['target'] = iris['target'] df_iris.head() 

      Обучение sklearn RandomForest и построение гистограммы для визуализации важности признаков:

      model_skl_iris = RandomForestClassifier() model_skl_iris.fit(X = df_iris.drop(['target'], axis=1), y = df_iris['target']) skl_iris_imp = pd.Series(model_skl_iris.feature_importances_, df_iris.drop(['target'], axis=1).columns) fig, ax = plt.subplots(figsize=(16,14)) skl_iris_imp.plot.bar(ax=ax) ax.set_title("Важность признаков") ax.set_ylabel('Важность') fig.tight_layout() 

      Обучение catboost Classifier и построение гистограммы для визуализации важности признаков:

      model_cat_iris = CatBoostClassifier() model_cat_iris.fit(X = df_iris.drop('target', axis=1), y = df_iris['target']) cat_iris_imp = pd.Series(model_cat_iris.get_feature_importance(), df_iris.drop(['target'], axis=1).columns) fig, ax = plt.subplots(figsize=(16,14)) cat_iris_imp.plot.bar(ax=ax) ax.set_title("Важность признаков") ax.set_ylabel('Важность, %') fig.tight_layout() 

      Сравнение результатов feature importance для sklearn и catboost на iris:

      DF_iris = pd.DataFrame(, index=iris['feature_names']) fig, ax = plt.subplots(figsize=(16,14)) ax = DF_iris.plot.bar(ax=ax) ax.set_xlabel('Признак') ax.set_ylabel('Важность, %') plt.show() 

      Загрузка датасета wine:

      wine = datasets.load_wine() df_wine = pd.DataFrame(data=wine['data'], columns=wine['feature_names']) df_wine['target'] = wine['target'] df_wine.head() 

      Обучение sklearn RandomForest и построение гистограммы для визуализации важности признаков:

      model_skl_wine = RandomForestClassifier() model_skl_wine.fit(X = df_wine.drop(['target'], axis=1), y = df_wine['target']) skl_wine_imp = pd.Series(model_skl_wine.feature_importances_, df_wine.drop(['target'], axis=1).columns) fig, ax = plt.subplots(figsize=(16,14)) skl_wine_imp.plot.bar(ax=ax) ax.set_title("Важность признаков") ax.set_ylabel('Важность') fig.tight_layout() 

      Обучение catboost Classifier и построение гистограммы для визуализации важности признаков:

      model_cat_wine = CatBoostClassifier() model_cat_wine.fit(X = df_wine.drop('target', axis=1), y = df_wine['target']) cat_wine_imp = pd.Series(model_cat_wine.get_feature_importance(), df_wine.drop(['target'], axis=1).columns) fig, ax = plt.subplots(figsize=(16,14)) cat_wine_imp.plot.bar(ax=ax) ax.set_title("Важность признаков") fig.tight_layout() 

      Сравнение результатов feature importance для sklearn и catboost на wine:

      DF_wine = pd.DataFrame(, index=wine['feature_names']) fig, ax = plt.subplots(figsize=(16,14)) ax = DF_wine.plot.bar(ax=ax) ax.set_xlabel('Признак') ax.set_ylabel('Важность, %') plt.show() 

      Приведённые выше графики показывают, что на выбранных данных обе модели ведут себя схожим образом и отбирают почти одни и те же признаки, как наиболее важные.

      Полученные данные можно использовать, например, для ручного сокращения размерности данных или просто наглядного представления зависимости целевой переменной от определённых признаков.

      Feature importances with a forest of trees¶

      This example shows the use of a forest of trees to evaluate the importance of features on an artificial classification task. The blue bars are the feature importances of the forest, along with their inter-trees variability represented by the error bars.

      As expected, the plot suggests that 3 features are informative, while the remaining are not.

      import matplotlib.pyplot as plt 

      Data generation and model fitting¶

      We generate a synthetic dataset with only 3 informative features. We will explicitly not shuffle the dataset to ensure that the informative features will correspond to the three first columns of X. In addition, we will split our dataset into training and testing subsets.

      from sklearn.datasets import make_classification from sklearn.model_selection import train_test_split X, y = make_classification( n_samples=1000, n_features=10, n_informative=3, n_redundant=0, n_repeated=0, n_classes=2, random_state=0, shuffle=False, ) X_train, X_test, y_train, y_test = train_test_split(X, y, stratify=y, random_state=42) 

      A random forest classifier will be fitted to compute the feature importances.

      from sklearn.ensemble import RandomForestClassifier feature_names = [f"feature i>" for i in range(X.shape[1])] forest = RandomForestClassifier(random_state=0) forest.fit(X_train, y_train) 
      RandomForestClassifier(random_state=0)

      In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook.
      On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.

      RandomForestClassifier

      RandomForestClassifier(random_state=0)

      Feature importance based on mean decrease in impurity¶

      Feature importances are provided by the fitted attribute feature_importances_ and they are computed as the mean and standard deviation of accumulation of the impurity decrease within each tree.

      Impurity-based feature importances can be misleading for high cardinality features (many unique values). See Permutation feature importance as an alternative below.

      import time import numpy as np start_time = time.time() importances = forest.feature_importances_ std = np.std([tree.feature_importances_ for tree in forest.estimators_], axis=0) elapsed_time = time.time() - start_time print(f"Elapsed time to compute the importances: elapsed_time:.3f> seconds") 
      Elapsed time to compute the importances: 0.005 seconds

      Let’s plot the impurity-based importance.

      import pandas as pd forest_importances = pd.Series(importances, index=feature_names) fig, ax = plt.subplots() forest_importances.plot.bar(yerr=std, ax=ax) ax.set_title("Feature importances using MDI") ax.set_ylabel("Mean decrease in impurity") fig.tight_layout() 

      Feature importances using MDI

      We observe that, as expected, the three first features are found important.

      Feature importance based on feature permutation¶

      Permutation feature importance overcomes limitations of the impurity-based feature importance: they do not have a bias toward high-cardinality features and can be computed on a left-out test set.

      from sklearn.inspection import permutation_importance start_time = time.time() result = permutation_importance( forest, X_test, y_test, n_repeats=10, random_state=42, n_jobs=2 ) elapsed_time = time.time() - start_time print(f"Elapsed time to compute the importances: elapsed_time:.3f> seconds") forest_importances = pd.Series(result.importances_mean, index=feature_names) 
      Elapsed time to compute the importances: 0.521 seconds

      The computation for full permutation importance is more costly. Features are shuffled n times and the model refitted to estimate the importance of it. Please see Permutation feature importance for more details. We can now plot the importance ranking.

      fig, ax = plt.subplots() forest_importances.plot.bar(yerr=result.importances_std, ax=ax) ax.set_title("Feature importances using permutation on full model") ax.set_ylabel("Mean accuracy decrease") fig.tight_layout() plt.show() 

      Feature importances using permutation on full model

      The same features are detected as most important using both methods. Although the relative importances vary. As seen on the plots, MDI is less likely than permutation importance to fully omit a feature.

      Total running time of the script: (0 minutes 1.014 seconds)

      Интерпретация результатов машинного обучения

      Модели машинного обучения считаются «черными ящиками». Это не означает, что мы не можем получить от них точный прогноз, мы не можем понятно объяснить или понять логику их работы.

      Черный ящик

      Четкое математическое определение интерпретируемости в машинном обучении отсутствует. Есть несколько определений:

      • Интерпретируемость — это степень, в которой человек может понять причину решения (Миллер (2017)).

      • Интерпретируемость — это степень, в которой человек может последовательно предсказывать результат модели. Чем выше интерпретируемость модели машинного обучения, тем легче кому-то понять, почему были приняты определенные решения или прогнозы. Модель лучше интерпретируется, чем другая модель, если ее решения легче понять человеку, чем решения другой модели.

      • Интерпретируемость — это способность объяснить ее действие или показать его в понятном человеку виде.

      Модель оказывает определенное влияние на последующие принятия решений, например, в системах поддержки принятия врачебных решений (СППВР). Очевидно, что интерпретируемость для СППВР будет гораздо важнее, чем для тех моделей, которые используются для прогнозирования результата классификации вин.

      «Проблема заключается в том, что всего одна метрика, такая как точность классификации, является недостаточным описанием большинства реальных задач.» (Доши-Велес и Ким) 2017.

      Для понимания и интерпретация работы модели нам потребуются:

      • Определить наиболее важные признаки (feature importance) в модели.
      • Для конкретного прогноза модели влияние каждого отдельного признака на конкретный прогноз.
      • Влияние каждого признака на большое количество возможных прогнозов.

      Рассмотрим несколько методов, которые помогают извлекать вышеперечисленные особенности из модели.

      Permutation Importance

      Какие признаки модель считает важными? Какие признаки оказывают наибольшее влияние? Эта концепция называется важностью признаков (feature importance), а Permutation Importance – это метод, широко используемый для вычисления важности признаков. Он помогает нам увидеть, в какой момент модель выдает неожиданные результаты или работает корректно.

      Permutation importance отличается:

      • Его быстро посчитать;
      • Широко применяется и легко понимается;
      • Используется вместе с метриками, которые обычно используются.

      Допустим, у нас есть датасет. Мы хотим предсказать рост человека в 18 лет, используя данные, которые о нем имеются в 12 лет. Проведя случайное переупорядочивание одного столбца, получим выходные прогнозы менее точными, так как полученные данные больше не соответствуют чему-либо в нашем датасете.

      случайное переупорядочивание

      Точность модели особенно страдает, если мы перемешиваем столбец, на который модель сильно опиралась для прогнозов. В этом случае перетасовка «роста в 12 лет» вызвала бы непредсказуемые прогнозы. Если бы вместо этого, мы перетасовали «размер носок», то предсказания не пострадали бы так сильно.

      Процесс выявления важности признаков выглядит следующим образом:

      1. Получаем обученную модель на «нормальных» данных, вычисляем для нее метрики, в том числе и значение функции потерь.
      2. Переставляем значения в одном столбце, прогнозируем с использованием полученного набора данных. Используем эти прогнозы и истинные целевые значения, чтобы вычислить, насколько функция потерь ухудшилась от перетасовки. Это ухудшение производительности измеряет важность переменной, которую только что перемешали.
      3. Возвращаем данные к исходным значениям и повторяем шаг 2 со следующим столбцом в наборе данных, пока вычисляется важность каждого столбца.

      Для вычисления permutation importance есть несколько готовых библиотек, рассмотрим примеры работы с ними.

      Библиотека SkLearn

      SkLearn — самый распространенный выбор для решения задач классического машинного обучения. Классы в модуле sklearn.feature_selection (https://scikit-learn.org/stable/modules/feature_selection.html#rfe) могут использоваться для выбора признаков / уменьшения размерности на выборочных наборах, либо для улучшения показателей точности оценщиков, либо для повышения их производительности на очень многомерных наборах данных.

      Так, библиотека sklearn и метод рекурсивного отбора признаков , были использованы в модели прогнозирования возникновения ампутации нижних конечностей у пациентов с сахарным диабетом 2 типа в течение 5 лет. Изначально были использованы 99 возможных признаков объективных и лабораторных данных пациентов с сахарным диабетом 2 типа. С помощью этого метода оценивалось различное количество N признаков и их влияние на точность предсказания. В итоге были выбраны только 20 признаков (триглицериды, прием препаратов: периферические альфа-адреноблокаторы, сульфонилмочевины, ингибиторы альфа-глюкозидазы, ингибиторы абсорбции холестерина, пероральные антикоагулянты, повышение микро или макроальбуминурия в течение последних 2 лет, ГЛЖ по ЭКГ или эхокардиограмме за последние 2 года, табакокурение, наличие ретинопатии), при которых модель достигает наибольшей точности AUC =0.809.

      Библиотека ELI5

      ELI5 – это библиотека в Python, которая позволяет визуализировать различные модели машинного обучения с помощью унифицированного API (https://github.com/TeamHG-Memex/eli5). Имеет встроенную поддержку для нескольких ML-фреймворков и обеспечивает способы интерпретации модели черного ящика.

      Рассмотрим модель, которая предсказывает как играет футбольная команда и сможет ли она пол награду “Man of the Game” или нет, на основе определенных параметров.

      Библиотека ELI5

      (Здесь val_X,val_y обозначают соответственно наборы валидации)

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

      В следующем примере рассматриваются функции Rank1D и Rank2D для оценки отдельных функций и пар функций с помощью различных показателей, которые оценивают функции по шкале [-1, 1] или [0, 1].

      При одномерном ранжировании функций [Rank1D] используется алгоритм ранжирования, который учитывает только одну функцию за 1 раз.

      Библиотека Yellowbrick

      Значимость каждого из 23 признаков отображена на следующем рисунке, чем больше значение, тем важнее признак.

      Признак

      Pearson ranking

      При двумерном ранжировании функций [Rank 2D] используется алгоритм ранжирования, который одновременно учитывает пары функций. Для этого удобно использовать корреляцию по Пирсону, которая показывает связь двух признаков между собой. Чем больше число, тем сильнее коррелированы признаки.

      Partial Dependence Plots – PDP

      График частичной зависимости (PDP или график PD) показывает краевой эффект одного или двух признаков на прогнозируемый результат модели машинного обучения (J. H. Friedman 2001). График частичной зависимости может показать, является ли отношение между целью и признаком линейным, монотонным или более сложным. Например, при применении к модели линейной регрессии графики частичной зависимости всегда показывают линейную зависимость.

      Для классификации, где модель машинного обучения выводит вероятности, график частичной зависимости отображает вероятность для определенного класса, заданного различными значениями для признаков. Простым способом для отображения с несколькими классами, является рисование одной линии или графика для каждого класса. График частичной зависимости является глобальным методом: Метод рассматривает все экземпляры и даёт утверждение о глобальной взаимосвязи признака с предсказанным результатом.

      PDP interact

      На данном графике Ось Y отражает изменение прогноза вследствие того, что было предсказано в исходном или в крайнем левом значении. Синяя область обозначает интервал доверия. «Goal Scored» мы видим, что забитый гол увеличивает вероятность получения награды ‘Лучший игрок’, но через некоторое время происходит насыщение.

      Библиотека SHAP

      SHAP (SHapley Additive explanation) — метод помогает разбить на части прогноз, чтобы выявить значение каждого признака. Он основан на Векторе Шепли, принципе, используемом в теории игр для определения, насколько каждый игрок при совместной игре способствует ее успешному исходу (https://medium.com/civis-analytics/demystifying-black-box-models-with-shap-value-analysis-3e20b536fc80).

      SHAP – значения показывают, насколько данный конкретный признак изменил предсказание по сравнению при базовом значении этого признака. Допустим, мы хотели узнать, каким был бы прогноз, если бы команда забила 3 гола, вместо фиксированного базового количества.

      Признаки, продвигающие прогноз выше, показаны красным цветом, а те, что понижают его точность – ниже.

      Библиотека SHAP

      Агрегирование множества SHAP-значений поможет сформировать более детальное представление о модели. Чтобы получить представление о том, какие признаки наиболее важны для модели, мы можем построить SHAP – значения для каждого признака и для каждой выборки. Сводный график показывает, какие признаки являются наиболее важными, а также их диапазон влияния на датасет.

      goal Scored

      Для каждой точки цвет показывает, является ли этот объект сильно значимым или слабо значимым для этой строки датасета; Горизонтальное расположение показывает, привело ли влияние значения этого признака к более точному прогнозу или нет.

      Значения упорядочены сверху вниз, вверху являются наиболее важными признаками, а значения в направлении к низу имеют наименьшее значение.

      Первое число в каждой строке показывает, насколько снизилась производительность модели при случайной перетасовке (в данном случае с использованием «точности» в качестве метрики производительности). Существует некоторая случайность в точном изменении производительности от перетасовки столбца. Мы измеряем количество случайности в нашем вычислении важности перестановки, повторяя процесс с несколькими перестановками. Число после ± измеряет изменение производительности от одной перестановки к следующей. Иногда отображаются отрицательные значения импорта перестановок. В этих случаях прогнозы по перетасованным (или шумным) данным оказались более точными, чем реальные данные. Это происходит, когда функция не имела значения (должна была иметь значение, близкое к 0), но случайный шанс привел к тому, что прогнозы по перетасованным данным были более точными. Это чаще встречается с небольшими наборами данных, как в этом примере, потому что есть больше места для удачи/шанса. Некоторые веса отрицательны. Это связано с тем, что в этих случаях прогнозы по перетасованным данным оказались более точными, чем реальные данные.

      Библиотека Yellowbrick

      Yellowbrick https://www.scikit-yb.org/en/latest/ предназначена для визуализии признаков и расширяет Scikit-Learn API, чтобы упростить выбор модели и настройку гиперпараметров. Под капотом использует Matplotlib.

      Библиотека LIME

      LIME (локально интерпретируемое объяснение, не зависящее от устройства модели) — это библиотека Python, которая пытается найти интерпретируемую модель, предоставляя точные локальные объяснения https://github.com/marcotcr/lime.

      Lime поддерживает объяснения для индивидуальных прогнозов широкого круга классификаторов. Встроена поддержка scikit-learn.

      Ниже приведен пример одного такого объяснения проблемы классификации текста.

      LIME

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

      Библиотека MXLtend

      Библиотека MLxtend содержит ряд вспомогательных функций для машинного обучения. Например, для StackingClassifier и VotingClassifier, эволюции модели, извлечения признаков, для разработки и для визуализации данных. С помощью MLxtend и сравним границы решения VotingClassifier и входящих в его состав классификаторов:

      Библиотека MXLtend

      Библиотека MXLtend

      Заключение

      Интерпретируемость модели важна не меньше, чем качество модели. Для того, чтобы добиться признания, крайне важно, чтобы системы машинного обучения могли предоставить понятные объяснения своих решений. Приведены основные библиотеки под Python для интерпретации модели, которые используют специалисты компании «К-Скай» при создании предиктивных моделей и управления рисками в здравоохранении.

      1. Rebecca Vickery. Python Libraries for Interpretable Machine Learning https://towardsdatascience.com/python-libraries-for-interpretable-machine-learning-c476a08ed2c7
      2. «Interpretable Machine Learning: A Guide for Making Black Box Models Explainable» Christoph Molnar
      3. Курс Machine Learning Explainability Micro Course на Kaggle
      4. OTUS. Онлайн-образование. Интерпретируемая модель машинного обучения. Часть 2 https://habr.com/en/company/otus/blog/465329/.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *