Spec-Zone.ru › scikit-learn

PartialDependenceDisplay

classsklearn.inspection.PartialDependenceDisplay(pd_results, *, features, feature_names, target_idx, deciles, kind='average', subsample=1000, random_state=None, is_categorical=None)[source]

Диаграмма частичной зависимости (PDP).

Она также может отображать отдельные частичные зависимости, которые часто называются: индивидуальные ожидаемые значения (ICE).

Рекомендуется использовать from_estimator для создания PartialDependenceDisplay. Все параметры хранятся в качестве атрибутов.

Подробнее см. Расширенное построение графиков с частичной зависимостью и Руководство пользователя.

Добавлен в версии 0.22.

Параметры:
pd_resultsсписок Bunch

Результаты partial_dependence для features.

featuresсписок (int,) или список (int, int)

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

feature_namesсписок str

Имена признаков, соответствующие индексам в features.

target_idxint
  • В многоклассовой настройке задает класс, для которого должны быть вычислены PDP. Обратите внимание, что для бинарной классификации всегда используется положительный класс (индекс 1).
  • В многовыходной настройке указывает задачу, для которой должны быть вычислены PDP.

Игнорируется в бинарной классификации или классических регрессионных настройках.

decilesdict

Децили для индексов признаков в features.

kind{‘average’, ‘individual’, ‘both’} или список таких str, по умолчанию=’average’

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

  • kind='average' приводит к традиционной диаграмме PD;
  • kind='individual' приводит к графику ICE;
  • kind='both' приводит к построению графиков ICE и PD на одном графике.

Можно указать список таких строк, чтобы задать kind для каждого графика. Длина списка должна соответствовать количеству взаимодействий, запрошенных в features.

Примечание

ICE (‘individual’ или ‘both’) не является допустимым параметром для графика взаимодействия 2-го порядка. В результате будет выведено сообщение об ошибке. Графики взаимодействия 2-го порядка всегда должны быть настроены на использование параметра ‘average’.

Примечание

Быстрый method='recursion' вариант доступен только для kind='average' и sample_weights=None. Вычисление индивидуальных зависимостей и взвешенных средних требует использования более медленного method='brute'.

Добавлен в версии 0.24: Добавить параметр kind с параметрами 'average', 'individual', и 'both'.

Добавлен в версии 1.1: Добавлена возможность передавать список строк, задающих kind для каждого графика.

subsamplefloat, int или None, по умолчанию=1000

Выборка для кривых ICE, когда kind равно ‘individual’ или ‘both’. Если float, должен быть в диапазоне от 0,0 до 1,0 и представлять собой долю набора данных, используемую для построения кривых ICE. Если int, представляет собой максимальное абсолютное число образцов для использования.

Обратите внимание, что весь набор данных по-прежнему используется для вычисления частичной зависимости, когда kind='both'.

Добавлен в версии 0.24.

random_stateint, экземпляр RandomState или None, по умолчанию=None

Управляет случайностью выбранных образцов, когда subsamples не None. Подробнее см. Словарь.

Добавлен в версии 0.24.

is_categoricalсписок (bool,) или список (bool, bool), по умолчанию=None

Признак, является ли каждый целевой признак в features категориальным или нет. Список должен иметь тот же размер, что и features. Если None, все признаки предполагаются непрерывными.

Добавлен в версии 1.2.

Атрибуты:
bounding_ax_matplotlib Axes или None

Если ax является осями или None, то bounding_ax_ — это оси, на которых нарисован сетчатый график диаграмм частичной зависимости. Если ax — это список осей или массив NumPy из осей, bounding_ax_ имеет значение None.

axes_массив matplotlib Axes

Если ax является осями или None, axes_[i, j] — это оси на i-й строке и j-м столбце. Если ax — это список осей, axes_[i] — это i-й элемент в ax Элементы, которые равны None, соответствуют отсутствию осей в этой позиции.

lines_массив matplotlib Artists

Если ax является осями или None, lines_[i, j] — это кривая частичной зависимости на i-й строке и j-м столбце. Если ax — это список осей, lines_[i] — это кривая частичной зависимости, соответствующая i-му элементу в ax. Элементы, которые равны None, соответствуют отсутствию осей или осям, не содержащим график линии.

deciles_vlines_массив matplotlib LineCollection

Если ax является осями или None, vlines_[i, j] — это коллекция линий, представляющая децили оси x i-й строки и j-го столбца. Если ax — это список осей, vlines_[i] соответствует i-му элементу в ax. Элементы, которые равны None, соответствуют отсутствию осей или осям, не содержащим график PDP.

Добавлен в версии 0.23.

deciles_hlines_массив matplotlib LineCollection

Если ax является осями или None, vlines_[i, j] — это коллекция линий, представляющая децили оси y i-й строки и j-го столбца. Если ax — это список осей, vlines_[i] соответствует i-му элементу в ax. Элементы, которые равны None, соответствуют отсутствию осей или осям, не содержащим график 2-way.

Добавлен в версии 0.23.

contours_массив matplotlib Artists

Если ax является осями или None, contours_[i, j] — это диаграмма частичной зависимости на i-й строке и j-м столбце. Если ax — это список осей, contours_[i] — это диаграмма частичной зависимости, соответствующая i-му элементу в ax. Элементы, которые равны None, соответствуют отсутствию осей или осям, не содержащим контурный график.

bars_массив matplotlib Artists

Если ax является осями или None, bars_[i, j] — это диаграмма частичной зависимости в виде столбцов на i-й строке и j-м столбце (для категориального признака). Если ax — это список осей, bars_[i] — это диаграмма частичной зависимости в виде столбцов, соответствующая i-му элементу в ax. Элементы, которые равны None, соответствуют отсутствию осей или осям, не содержащим столбцовый график.

Добавлен в версии 1.2.

heatmaps_массив matplotlib Artists

Если ax является осями или None, heatmaps_[i, j] — это тепловая карта частичной зависимости на i-й строке и j-м столбце (для пары категориальных признаков). Если ax — это список осей, heatmaps_[i] — это тепловая карта частичной зависимости, соответствующая i-му элементу в ax. Элементы, которые равны None, соответствуют отсутствию осей или осям, не содержащим тепловую карту.

Добавлен в версии 1.2.

figure_matplotlib Figure

Диаграмма, содержащая графики частичных зависимостей.

См. также

partial_dependence

Вычисление значений частичной зависимости.

PartialDependenceDisplay.from_estimator

Построить графики частичных зависимостей.

Примеры

>>> import numpy as np
>>> import matplotlib.pyplot as plt
>>> from sklearn.datasets import make_friedman1
>>> from sklearn.ensemble import GradientBoostingRegressor
>>> from sklearn.inspection import PartialDependenceDisplay
>>> from sklearn.inspection import partial_dependence
>>> X, y = make_friedman1()
>>> clf = GradientBoostingRegressor(n_estimators=10).fit(X, y)
>>> features, feature_names = [(0,)], [f"Features #{i}" for i in range(X.shape[1])]
>>> deciles = {0: np.linspace(0, 1, num=5)}
>>> pd_results = partial_dependence(
...     clf, X, features=0, kind="average", grid_resolution=5)
>>> display = PartialDependenceDisplay(
...     [pd_results], features=features, feature_names=feature_names,
...     target_idx=0, deciles=deciles
... )
>>> display.plot(pdp_lim={1: (-1.38, 0.66)})
<...>
>>> plt.show()
../../_images/sklearn-inspection-PartialDependenceDisplay-1.png
classmethodfrom_estimator(estimator, X, features, *, sample_weight=None, categorical_features=None, feature_names=None, target=None, response_method='auto', n_cols=3, grid_resolution=100, percentiles=(0.05, 0.95), method='auto', n_jobs=None, verbose=0, line_kw=None, ice_lines_kw=None, pd_line_kw=None, contour_kw=None, ax=None, kind='average', centered=False, subsample=1000, random_state=None)[source]

Графики частичной зависимости (PD) и индивидуальных условных ожиданий (ICE).

Графики частичной зависимости, графики индивидуальных условных ожиданий или их совмещённый график могут быть построены, установив параметр kind. Эти графики выстроены в сетку с n_cols столбцами. Двухмерные графики частичной зависимости строятся в виде контурных диаграмм. Децили значений признаков будут показаны отметками на осях x для одномерных графиков и на обеих осях для двухмерных графиков.

Подробнее см. в Руководстве пользователя.

Примечание

PartialDependenceDisplay.from_estimator не поддерживает использование одной и той же оси с несколькими вызовами. Чтобы построить графики частичной зависимости для нескольких оценщиков, передайте оси, созданные первым вызовом, во второй вызов:

>>> from sklearn.inspection import PartialDependenceDisplay
>>> from sklearn.datasets import make_friedman1
>>> from sklearn.linear_model import LinearRegression
>>> from sklearn.ensemble import RandomForestRegressor
>>> X, y = make_friedman1()
>>> est1 = LinearRegression().fit(X, y)
>>> est2 = RandomForestRegressor().fit(X, y)
>>> disp1 = PartialDependenceDisplay.from_estimator(est1, X,
...                                                 [1, 2])
>>> disp2 = PartialDependenceDisplay.from_estimator(est2, X, [1, 2],
...                                                 ax=disp1.axes_)

Предупреждение

Для GradientBoostingClassifier и GradientBoostingRegressor, метод 'recursion' (используется по умолчанию) не будет учитывать init предиктор процесса бустинга. На практике это даст те же значения, что и 'brute' с постоянным смещением в ответной переменной, при условии, что init является константным оценщиком (что является по умолчанию). Однако, если init не является константным оценщиком, значения частичной зависимости неверны для 'recursion', потому что смещение будет зависеть от выборки. Желательно использовать метод 'brute'. Обратите внимание, что это относится только к GradientBoostingClassifier и GradientBoostingRegressor, а не к HistGradientBoostingClassifier и HistGradientBoostingRegressor.

Добавлен в версии 1.0.

Параметры:
estimatorBaseEstimator

Обученная модель-объект, реализующая методы predict, predict_proba или decision_function. Многовыходные многоклассовые классификаторы не поддерживаются.

X{array-like, dataframe} of shape (n_samples, n_features)

X используется для генерации сетки значений для целевого features (где будет вычисляться частичная зависимость), а также для генерации значений для дополнительных признаков, когда method является 'brute'.

featureslist of {int, str, pair of int, pair of str}

Целевые признаки, для которых необходимо создать кривые частичной зависимости. Если features[i] является целым числом или строкой, создается однофакторная кривая частичной зависимости; если features[i] является кортежем, создается двухфакторная кривая частичной зависимости (поддерживается только с kind='average'). Каждый кортеж должен содержать 2 элемента. Если любой элемент является строкой, то он должен быть в feature_names.

sample_weightarray-like of shape (n_samples,), default=None

Веса наблюдений используются для вычисления взвешенных средних при усреднении выходного значения модели. Если None, то наблюдения имеют одинаковый вес. Если sample_weight не является None, то method будет установлено в 'brute'. Обратите внимание, что sample_weight игнорируется для kind='individual'.

Добавлен в версии 1.3.

categorical_featuresarray-like of shape (n_features,) or shape (n_categorical_features,), dtype={bool, int, str}, default=None

Указывает категориальные признаки.

  • None: ни один признак не будет считаться категориальным;
  • массив boolean: маска boolean размером (n_features,) , указывающая, какие признаки являются категориальными. Таким образом, этот массив имеет такую же форму, как X.shape[1];
  • массив целых чисел или строк: целочисленные индексы или строки, указывающие категориальные признаки.

Добавлен в версии 1.2.

feature_namesarray-like of shape (n_features,), dtype=str, default=None

Имя каждого признака; feature_names[i] содержит имя признака с индексом i. По умолчанию имя признака соответствует их числовому индексу для массива NumPy и имени столбца для pandas dataframe.

targetint, default=None
  • В многоклассовой задаче указывает класс, для которого необходимо вычислить кривые частичной зависимости. Обратите внимание, что для бинарной классификации всегда используется положительный класс (индекс 1).
  • В многовыходной задаче указывает задачу, для которой необходимо вычислить кривые частичной зависимости.

Игнорируется в задачах бинарной классификации или классической регрессии.

response_method{‘auto’, ‘predict_proba’, ‘decision_function’}, default=’auto’

Указывает, использовать ли predict_proba или decision_function в качестве целевой функции. Для регрессоров этот параметр игнорируется, и ответ всегда является результатом вызова predict. По умолчанию, сначала используется predict_proba, и мы переходим к decision_function, если она отсутствует. Если method является 'recursion', ответ всегда является результатом вызова decision_function.

n_colsint, default=3

Максимальное количество столбцов на графике. Действует только когда ax является одним осевым графиком или None.

grid_resolutionint, default=100

Количество равномерно распределённых точек на осях графиков для каждого целевого признака.

percentilestuple of float, default=(0.05, 0.95)

Нижний и верхний процентили, используемые для создания экстремальных значений для осей кривых частичной зависимости. Должны находиться в диапазоне [0, 1].

methodstr, default=’auto’

Метод, используемый для вычисления усредненных прогнозов:

  • 'recursion' поддерживается только для некоторых моделей на основе деревьев (в частности, GradientBoostingClassifier, GradientBoostingRegressor, HistGradientBoostingClassifier, HistGradientBoostingRegressor, DecisionTreeRegressor, RandomForestRegressor, но более эффективен по скорости. С этим методом целевая функция классификатора всегда является функцией принятия решения, а не предсказанными вероятностями. Поскольку метод 'recursion' по умолчанию вычисляет среднее значение ICE, он несовместим с ICE, и поэтому kind должно быть 'average'.
  • 'brute' поддерживается для любой модели, но более ресурсоёмкий.
  • 'auto': используется для моделей, которые её поддерживают, а 'brute' используется в противном случае. Если sample_weight не является None, тогда 'brute' используется независимо от модели.

Пожалуйста, обратитесь к этому примечанию для различий между методами 'brute' и 'recursion'.

n_jobsint, default=None

Количество ЦП, используемых для вычисления частичных зависимостей. Вычисления распараллеливаются по признакам, указанным параметром features.

None означает 1, если нет контекста joblib.parallel_backend. -1 означает использование всех процессоров. Смотрите Словарь для более подробной информации.

verboseint, default=0

Уровень подробности вывода во время вычисления кривых частичной зависимости.

line_kwdict, default=None

Словарь с ключевыми словами, передаваемыми в вызов matplotlib.pyplot.plot. Для однофакторных графиков частичной зависимости. Может использоваться для определения общих свойств как для ice_lines_kw так и для pdp_line_kw.

ice_lines_kwdict, default=None

Словарь с ключевыми словами, передаваемыми в вызов matplotlib.pyplot.plot. Для линий ICE на графиках однофакторной частичной зависимости. Параметры в ice_lines_kw имеют приоритет над line_kw.

pd_line_kwdict, default=None

Словарь с ключевыми словами, передаваемыми в вызов matplotlib.pyplot.plot. Для кривых частичной зависимости на графиках однофакторной частичной зависимости. Параметры в pd_line_kw имеют приоритет над line_kw.

contour_kwdict, default=None

Словарь с ключевыми словами, передаваемыми в вызов matplotlib.pyplot.contourf. Для двухфакторных графиков частичной зависимости.

axMatplotlib axes or array-like of Matplotlib axes, default=None
  • Если передан один график, он рассматривается как ограничивающий и сетка графиков частичной зависимости будет нарисована внутри этих границ. Параметр n_cols управляет количеством столбцов в сетке.
  • Если передан массив графиков, графики частичной зависимости будут нарисованы прямо на этих графиках.
  • Если None, создается график и ограничивающий график, который обрабатывается как один график.
kind{‘average’, ‘individual’, ‘both’}, default=’average’

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

  • kind='average' приводит к традиционному графику PD;
  • kind='individual' приводит к графику ICE.

Обратите внимание, что быстрый метод method='recursion' доступен только для kind='average' и sample_weights=None. Вычисление отдельных зависимостей и взвешенных средних требует использования более медленного метода method='brute'.

centeredbool, default=False

Если True, линии ICE и PD будут начинаться от начала оси y. По умолчанию центрирование не выполняется.

Добавлен в версии 1.1.

subsamplefloat, int or None, default=1000

Выборка для кривых ICE при kind равно ‘individual’ или ‘both’. Если float, должно быть значением от 0,0 до 1,0 и представлять собой долю набора данных, которая будет использована для построения кривых ICE. Если int, представляет собой абсолютное число выборок для использования.

Обратите внимание, что для расчета усреднённой частичной зависимости при kind='both' всё ещё используется весь набор данных.

random_stateint, RandomState instance or None, default=None

Управляет случайностью выбранных выборок, когда subsamples не None и kind равно либо 'both', либо 'individual'. Подробности см. в Справочнике.

Возвращаемое значение:
displayPartialDependenceDisplay

См. также

partial_dependence

Вычисление значений частичной зависимости.

Примеры

>>> import matplotlib.pyplot as plt
>>> from sklearn.datasets import make_friedman1
>>> from sklearn.ensemble import GradientBoostingRegressor
>>> from sklearn.inspection import PartialDependenceDisplay
>>> X, y = make_friedman1()
>>> clf = GradientBoostingRegressor(n_estimators=10).fit(X, y)
>>> PartialDependenceDisplay.from_estimator(clf, X, [0, (0, 1)])
<...>
>>> plt.show()
../../_images/sklearn-inspection-PartialDependenceDisplay-2.png
plot(*, ax=None, n_cols=3, line_kw=None, ice_lines_kw=None, pd_line_kw=None, contour_kw=None, bar_kw=None, heatmap_kw=None, pdp_lim=None, centered=False)[source]

Построение графиков частичной зависимости.

Параметры:
axОси Matplotlib или массив осей Matplotlib, по умолчанию = None
  • Если передана одна ось, она рассматривается как ограничивающая ось

    и внутри этих границ будет нарисован сетчатый график частичных зависимостей. Параметр n_cols управляет количеством столбцов в сетке.

  • Если передается массив осей, графики частичной зависимости

    будут нарисованы непосредственно на этих осях.

  • Если None, создается фигура и ограничивающая ось

    и обрабатывается как случай одной оси.

n_colsint, по умолчанию = 3

Максимальное количество столбцов в сетчатом графике. Активно только когда ax является единственной осью или None.

line_kwdict, по умолчанию = None

Словарь с ключевыми словами, передаваемыми в вызов matplotlib.pyplot.plot. Для односторонних графиков частичной зависимости.

ice_lines_kwdict, по умолчанию = None

Словарь с ключевыми словами, передаваемыми в вызов matplotlib.pyplot.plot. Для линий ICE на графиках односторонней частичной зависимости. Значения по ключу, определённые в ice_lines_kw, имеют приоритет над line_kw.

Добавлен в версии 1.0.

pd_line_kwdict, по умолчанию = None

Словарь с ключевыми словами, передаваемыми в вызов matplotlib.pyplot.plot. Для частичной зависимости на графиках односторонней частичной зависимости. Значения по ключу, определённые в pd_line_kw, имеют приоритет над line_kw.

Добавлен в версии 1.0.

contour_kwdict, по умолчанию = None

Словарь с ключевыми словами, передаваемыми в вызов matplotlib.pyplot.contourf для двусторонних графиков частичной зависимости.

bar_kwdict, по умолчанию = None

Словарь с ключевыми словами, передаваемыми в вызов matplotlib.pyplot.bar для графиков односторонней категориальной частичной зависимости.

Добавлен в версии 1.2.

heatmap_kwdict, по умолчанию = None

Словарь с ключевыми словами, передаваемыми в вызов matplotlib.pyplot.imshow для двусторонних категориальных графиков частичной зависимости.

Добавлен в версии 1.2.

pdp_limdict, по умолчанию = None

Глобальный минимум и максимум средних предсказаний, таким образом, все графики будут иметь одинаковый масштаб и пределы по оси y. pdp_lim[1] — глобальный минимум и максимум для одиночных кривых частичной зависимости. pdp_lim[2] — глобальный минимум и максимум для двусторонних кривых частичной зависимости. Если None (по умолчанию), предел будет определен на основе глобального минимума и максимума всех предсказаний.

Добавлен в версии 1.1.

centeredbool, по умолчанию = False

Если True, линии ICE и PD будут начинаться от начала оси y. По умолчанию центрирование не выполняется.

Добавлен в версии 1.1.

Возвращаемое значение:
displayPartialDependenceDisplay

Возвращает объект PartialDependenceDisplay, содержащий графики частичной зависимости.

Примеры галереи

Расширенное построение графиков с частичной зависимостью

Основные моменты выпуска scikit-learn 1.4

Основные моменты выпуска scikit-learn 1.2

Основные моменты выпуска scikit-learn 0.24

Основные моменты выпуска scikit-learn 0.23

Функциональные возможности деревьев градиентного бустинга с гистограммами

Монотонные ограничения

Графики частичной зависимости и индивидуальной условной ожидаемой величины

Расширенное построение графиков с частичной зависимостью

Расширенное построение графиков с частичной зависимостью

© 2007–2025 The scikit-learn developers
Licensed under the 3-clause BSD License.
https://scikit-learn.org/1.6/modules/generated/sklearn.inspection.PartialDependenceDisplay.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API