PartialDependenceDisplay
- classsklearn.inspection.PartialDependenceDisplay(pd_results, *, features, feature_names, target_idx, deciles, kind='average', subsample=1000, random_state=None, is_categorical=None)[исходный код]
-
График частичной зависимости (PDP) и индивидуального условного ожидания (ICE).
Для создания
PartialDependenceDisplayрекомендуется использоватьfrom_estimator. Все параметры сохраняются в виде атрибутов.Общие сведения об инструментах визуализации
scikit-learnсм. в руководстве по визуализации. Рекомендации по интерпретации этих графиков см. в руководстве по анализу моделей.Пример использования этого класса см. в следующем примере: Расширенное построение графиков частичной зависимости.
Добавлено в версии 0.22.
- Параметры:
-
- pd_resultslist of Bunch
-
Результаты
partial_dependenceдляfeatures. - featureslist of (int,) or list of (int, int)
-
Индексы признаков для заданного графика. Кортеж из одного целого числа задаёт построение кривой частичной зависимости для одного признака. Кортеж из двух целых чисел задаёт построение двумерной кривой частичной зависимости в виде контурного графика.
- feature_nameslist of str
-
Названия признаков, соответствующие индексам в
features. - target_idxint
-
- В задаче многоклассовой классификации задаёт класс, для которого следует вычислить PDP. Обратите внимание, что в случае бинарной классификации всегда используется положительный класс (индекс 1).
- В задаче с несколькими выходами задаёт целевую задачу, для которой следует вычислить PDP.
Не используется в задачах бинарной классификации и обычной регрессии.
- decilesdict
-
Децили для индексов признаков в
features. - kind{‘average’, ‘individual’, ‘both’} or list of such str, default=’average’
-
Определяет, следует ли строить частичную зависимость, усреднённую по всем образцам набора данных, отдельную линию для каждого образца или оба варианта.
-
kind='average'строит традиционный график PD; -
kind='individual'строит график ICE; -
kind='both'строит на одном графике и ICE, и PD.
Для задания
kindотдельно для каждого графика можно передать список таких строк. Длина списка должна совпадать с количеством запрошенных взаимодействий вfeatures.Примечание
ICE (‘individual’ или ‘both’) не является допустимым вариантом для графиков двухфакторных взаимодействий. В таком случае будет вызвана ошибка. Для графиков двухфакторных взаимодействий следует всегда задавать вариант ‘average’.
Примечание
Быстрый вариант
method='recursion'доступен только дляkind='average'иsample_weights=None. Для вычисления индивидуальных зависимостей и взвешенных средних необходимо использовать более медленный вариантmethod='brute'.Добавлено в версии 0.24: Добавлен параметр
kindс вариантами'average','individual'и'both'.Добавлено в версии 1.1: Добавлена возможность передавать список строк, задающих
kindдля каждого графика. -
- subsamplefloat, int or None, default=1000
-
Выборка для кривых ICE, когда
kindравно ‘individual’ или ‘both’. Если значение имеет тип float, оно должно находиться в диапазоне от 0.0 до 1.0 и задаёт долю набора данных, используемую для построения кривых ICE. Если значение имеет тип int, оно задаёт максимальное абсолютное количество используемых образцов.Обратите внимание, что для вычисления частичной зависимости по-прежнему используется весь набор данных, когда
kind='both'.Добавлено в версии 0.24.
- random_stateint, RandomState instance or None, default=None
-
Управляет случайным выбором образцов, когда subsamples не равно
None. Подробности см. в глоссарии.Добавлено в версии 0.24.
- is_categoricallist of (bool,) or list of (bool, bool), default=None
-
Указывает, является ли каждый целевой признак в
featuresкатегориальным. Длина списка должна совпадать сfeatures. Если заданоNone, предполагается, что все признаки являются непрерывными.Добавлено в версии 1.2.
- Атрибуты:
-
- bounding_ax_matplotlib Axes or None
-
Если
axявляется объектом axes или None,bounding_ax_— это объект axes, в котором построена сетка графиков частичной зависимости. Еслиaxявляется списком объектов axes или массивом numpy из объектов axes,bounding_ax_равен None. - axes_ndarray of matplotlib Axes
-
Если
axявляется объектом axes или None,axes_[i, j]— это объект axes в i-й строке и j-м столбце. Еслиaxявляется списком объектов axes,axes_[i]— это i-й элемент вax. Элементы со значением None соответствуют отсутствующим объектам axes в этой позиции. - lines_ndarray of matplotlib Artists
-
Если
axявляется объектом axes или None,lines_[i, j]— это кривая частичной зависимости в i-й строке и j-м столбце. Еслиaxявляется списком объектов axes,lines_[i]— это кривая частичной зависимости, соответствующая i-му элементу вax. Элементы со значением None соответствуют отсутствующим объектам axes или объектам axes без линейного графика. - deciles_vlines_ndarray of matplotlib LineCollection
-
Если
axявляется объектом axes или None,vlines_[i, j]— это коллекция линий, представляющая децили по оси x для i-й строки и j-го столбца. Еслиaxявляется списком объектов axes,vlines_[i]соответствует i-му элементу вax. Элементы со значением None соответствуют отсутствующим объектам axes или объектам axes без графика PDP.Добавлено в версии 0.23.
- deciles_hlines_ndarray of matplotlib LineCollection
-
Если
axявляется объектом axes или None,vlines_[i, j]— это коллекция линий, представляющая децили по оси y для i-й строки и j-го столбца. Еслиaxявляется списком объектов axes,vlines_[i]соответствует i-му элементу вax. Элементы со значением None соответствуют отсутствующим объектам axes или объектам axes без графика двухфакторного взаимодействия.Добавлено в версии 0.23.
- contours_ndarray of matplotlib Artists
-
Если
axявляется объектом axes или None,contours_[i, j]— это график частичной зависимости в i-й строке и j-м столбце. Еслиaxявляется списком объектов axes,contours_[i]— это график частичной зависимости, соответствующий i-му элементу вax. Элементы со значением None соответствуют отсутствующим объектам axes или объектам axes без контурного графика. - bars_ndarray of matplotlib Artists
-
Если
axявляется объектом axes или None,bars_[i, j]— это столбчатый график частичной зависимости в i-й строке и j-м столбце (для категориального признака). Еслиaxявляется списком объектов axes,bars_[i]— это столбчатый график частичной зависимости, соответствующий i-му элементу вax. Элементы со значением None соответствуют отсутствующим объектам axes или объектам axes без столбчатого графика.Добавлено в версии 1.2.
- heatmaps_ndarray of matplotlib Artists
-
Если
axявляется объектом axes или None,heatmaps_[i, j]— это тепловая карта частичной зависимости в i-й строке и j-м столбце (для пары категориальных признаков). Еслиaxявляется списком объектов axes,heatmaps_[i]— это тепловая карта частичной зависимости, соответствующая i-му элементу вax. Элементы со значением None соответствуют отсутствующим объектам axes или объектам axes без тепловой карты.Добавлено в версии 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()
- 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), custom_values=None, 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)[исходный код]
-
Графики частичной зависимости (PD) и индивидуального условного ожидания (ICE).
Графики частичной зависимости, графики индивидуального условного ожидания или их наложение можно построить, задав параметр
kind. Этот метод создает по одному графику для каждой записи вfeatures. Графики располагаются в сетке сn_colsстолбцами. Для одномерных графиков частичной зависимости децили значений признака отображаются на оси x. Для двумерных графиков децили отображаются на обеих осях, а PDP представляются в виде контурных графиков.Общие сведения о средствах визуализации
scikit-learnсм. в руководстве по визуализации. Рекомендации по интерпретации этих графиков приведены в руководстве по анализу.Пример использования этого метода класса см. в разделе Графики частичной зависимости и индивидуального условного ожидания.
Примечание
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} формы (n_samples, n_features)
-
Xиспользуется для создания сетки значений целевогоfeatures(для которого вычисляется частичная зависимость), а также для создания значений признаков дополнения, когдаmethodравен'brute'. - featuresсписок значений {int, str, пара int, пара str}
-
Целевые признаки, для которых нужно построить PDP. Если
features[i]— целое число или строка, строится одномерный PDP; еслиfeatures[i]— кортеж, строится двумерный PDP (поддерживается только сkind='average'). Каждый кортеж должен содержать 2 элемента. Если какая-либо запись является строкой, она должна присутствовать вfeature_names. - sample_weightподобный массиву объект формы (n_samples,), по умолчанию=None
-
Веса выборок используются для вычисления взвешенных средних при усреднении выходных значений модели. Если
None, все выборки имеют одинаковый вес. Еслиsample_weightне равенNone, тоmethodбудет установлен в'brute'. Обратите внимание, чтоsample_weightигнорируется дляkind='individual'.Добавлено в версии 1.3.
- categorical_featuresподобный массиву объект формы (n_features,) или формы (n_categorical_features,), dtype={bool, int, str}, по умолчанию=None
-
Указывает категориальные признаки.
-
None: ни один признак не считается категориальным; - подобный массиву объект с булевыми значениями: булева маска формы
(n_features,), указывающая, какие признаки являются категориальными. Таким образом, этот массив имеет ту же форму, что иX.shape[1]; - подобный массиву объект с целыми числами или строками: целочисленные индексы или строки, указывающие категориальные признаки.
Добавлено в версии 1.2.
-
- feature_namesподобный массиву объект формы (n_features,), dtype=str, по умолчанию=None
-
Имя каждого признака;
feature_names[i]содержит имя признака с индексомi. По умолчанию именем признака является его числовой индекс для массива NumPy и имя столбца для фрейма данных pandas. - targetint, по умолчанию=None
-
- В случае многоклассовой классификации задает класс, для которого следует вычислить PDP. Обратите внимание, что при бинарной классификации всегда используется положительный класс (индекс 1).
- В случае нескольких выходов задает задачу, для которой следует вычислить PDP.
Игнорируется при бинарной классификации и классической регрессии.
- response_method{‘auto’, ‘predict_proba’, ‘decision_function’}, по умолчанию=’auto’
-
Указывает, использовать ли predict_proba или decision_function в качестве целевого отклика. Для регрессоров этот параметр игнорируется, а откликом всегда является результат predict. По умолчанию сначала используется predict_proba, а если он отсутствует — decision_function. Если
methodравен'recursion', откликом всегда является результат decision_function. - n_colsint, по умолчанию=3
-
Максимальное число столбцов в сетке графиков. Активен только тогда, когда
ax— одна ось илиNone. - grid_resolutionint, по умолчанию=100
-
Число равноотстоящих точек на осях графиков для каждого целевого признака. Этот параметр переопределяется параметром
custom_values, если он задан. - percentilesкортеж float, по умолчанию=(0.05, 0.95)
-
Нижний и верхний процентили, используемые для определения крайних значений осей PDP. Значения должны находиться в диапазоне [0, 1]. Этот параметр переопределяется параметром
custom_values, если он задан. - custom_valuesdict
-
Словарь, сопоставляющий индекс элемента
featuresс массивом значений, для которых следует вычислить частичную зависимость соответствующего признака. Задание диапазона значений признака переопределяетgrid_resolutionиpercentiles.Добавлено в версии 1.7.
- methodstr, по умолчанию=’auto’
-
Метод, используемый для вычисления усредненных прогнозов:
-
'recursion'поддерживается только для некоторых оценщиков на основе деревьев (а именноGradientBoostingClassifier,GradientBoostingRegressor,HistGradientBoostingClassifier,HistGradientBoostingRegressor,DecisionTreeRegressor,RandomForestRegressor), но вычисляется быстрее. При использовании этого метода целевой отклик классификатора всегда является функцией решения, а не предсказанными вероятностями. Поскольку метод'recursion'по определению неявно вычисляет среднее значение ICE, он несовместим с ICE, поэтомуkindдолжен быть равен'average'. -
'brute'поддерживается для любого оценщика, но требует больше вычислительных ресурсов. -
'auto': для оценщиков, поддерживающих'recursion', используется он, а в противном случае используется'brute'. Еслиsample_weightне равенNone, то независимо от оценщика используется'brute'.
Различия между методами
'brute'и'recursion'описаны в этом примечании. -
- n_jobsint, по умолчанию=None
-
Число процессоров, используемых для вычисления частичных зависимостей. Вычисления распараллеливаются по признакам, указанным параметром
features.Noneозначает 1, если только не используется контекстjoblib.parallel_backend.-1означает использование всех процессоров. Подробнее см. в глоссарии. - verboseint, по умолчанию=0
-
Подробный вывод при вычислении PD.
- line_kwdict, по умолчанию=None
-
Словарь с именованными аргументами, передаваемыми в вызов
matplotlib.pyplot.plot. Для одномерных графиков частичной зависимости. Можно использовать для задания общих свойств как дляice_lines_kw, так и дляpdp_line_kw. - ice_lines_kwdict, по умолчанию=None
-
Словарь с именованными аргументами, передаваемыми в вызов
matplotlib.pyplot.plot. Для линий ICE на одномерных графиках частичной зависимости. Пары ключ-значение, заданные вice_lines_kw, имеют приоритет надline_kw. - pd_line_kwdict, по умолчанию=None
-
Словарь с именованными аргументами, передаваемыми в вызов
matplotlib.pyplot.plot. Для частичной зависимости на одномерных графиках частичной зависимости. Пары ключ-значение, заданные вpd_line_kw, имеют приоритет надline_kw. - contour_kwdict, по умолчанию=None
-
Словарь с именованными аргументами, передаваемыми в вызов
matplotlib.pyplot.contourf. Для двумерных графиков частичной зависимости. - axоси Matplotlib или подобный массиву объект из осей Matplotlib, по умолчанию=None
-
- Если передана одна ось, она рассматривается как ограничивающая ось, и внутри ее границ будет нарисована сетка графиков частичной зависимости. Параметр
n_colsуправляет числом столбцов в сетке. - Если передан подобный массиву объект из осей, графики частичной зависимости будут нарисованы непосредственно на этих осях.
- Если
None, создаются фигура и ограничивающая ось, и этот случай обрабатывается так же, как случай с одной осью.
- Если передана одна ось, она рассматривается как ограничивающая ось, и внутри ее границ будет нарисована сетка графиков частичной зависимости. Параметр
- kind{‘average’, ‘individual’, ‘both’}, по умолчанию=’average’
-
Определяет, следует ли отображать частичную зависимость, усредненную по всем выборкам набора данных, одну линию на выборку или оба варианта.
-
kind='average'создает традиционный график PD; -
kind='individual'создает график ICE.
Обратите внимание, что быстрый вариант
method='recursion'доступен только дляkind='average'иsample_weights=None. Вычисление индивидуальных зависимостей и взвешенных средних требует использования более медленногоmethod='brute'. -
- centeredbool, по умолчанию=False
-
Если
True, линии ICE и PD будут начинаться в начале координат оси y. По умолчанию центрирование не выполняется.Добавлено в версии 1.1.
- subsamplefloat, int или None, по умолчанию=1000
-
Выборка данных для кривых ICE, когда
kindравно ‘individual’ или ‘both’. Еслиfloat, значение должно находиться в диапазоне от 0.0 до 1.0 и задавать долю набора данных, используемую для построения кривых ICE. Еслиint, задает абсолютное число используемых выборок.Обратите внимание, что для вычисления усредненной частичной зависимости при
kind='both'по-прежнему используется весь набор данных. - random_stateint, экземпляр RandomState или None, по умолчанию=None
-
Управляет случайным выбором выборок, если параметр subsamples не равен
None, аkindравен'both'или'individual'. Подробнее см. в глоссарии.
- Возвращает:
-
-
display
PartialDependenceDisplay
-
display
См. также
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()
- 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)[исходный код]
-
Построение графиков частичной зависимости.
- Параметры:
-
- 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.
- Возвращает:
-
-
display
PartialDependenceDisplay -
Возвращает объект
PartialDependenceDisplay, содержащий графики частичной зависимости.
-
display
Примеры галереи
© 2007–2026 The scikit-learn developers
Licensed under the 3-clause BSD License.
https://scikit-learn.org/1.9/modules/generated/sklearn.inspection.PartialDependenceDisplay.html