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()
- 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'. Подробности см. в Справочнике.
- Возвращаемое значение:
-
-
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)[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.
- Возвращаемое значение:
-
-
display
PartialDependenceDisplay -
Возвращает объект
PartialDependenceDisplay, содержащий графики частичной зависимости.
-
display
Примеры галереи
© 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