Spec-Zone.ru › scikit-learn

partial_dependence

sklearn.inspection.partial_dependence(estimator, X, features, *, sample_weight=None, categorical_features=None, feature_names=None, response_method='auto', percentiles=(0.05, 0.95), grid_resolution=100, custom_values=None, method='auto', kind='average')[исходный код]

Частичная зависимость features.

Частичная зависимость признака (или набора признаков) соответствует среднему отклику оценщика для каждого возможного значения признака.

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

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

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

Параметры:
estimatorBaseEstimator

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

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

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

featuresarray-like of {int, str, bool} or int or str

Признак (например, [0]) или пара взаимодействующих признаков (например, [(0, 1)]), для которых необходимо вычислить частичную зависимость.

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: ни один признак не будет считаться категориальным;
  • массив, подобный массиву логических значений: логическая маска формы (n_features,)

    указывает, какие признаки являются категориальными. Таким образом, форма этого массива совпадает с формой X.shape[1];

  • массив целых чисел или строк: целочисленные индексы или строки

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

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

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

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

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

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

Определяет, использовать ли predict_proba или decision_function в качестве целевого отклика. Для регрессоров этот параметр игнорируется, а откликом всегда является результат работы predict. По умолчанию сначала используется predict_proba, а если он отсутствует, используется decision_function. Если method равно ‘recursion’, откликом всегда является результат работы decision_function.

percentilestuple of float, default=(0.05, 0.95)

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

grid_resolutionint, default=100

Количество равноотстоящих точек сетки для каждого целевого признака. Этот параметр переопределяется параметром custom_values, если он задан.

custom_valuesdict

Словарь, сопоставляющий индекс элемента features с массивом значений, для которых следует вычислить частичную зависимость этого признака. Задание диапазона значений для признака переопределяет grid_resolution и percentiles.

Пример использования этого параметра см. в разделе как использовать partial_dependence.

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

method{‘auto’, ‘recursion’, ‘brute’}, default=’auto’

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

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

Различия между методами 'brute' и 'recursion' описаны в этом примечании.

kind{‘average’, ‘individual’, ‘both’}, default=’average’

Определяет, возвращать ли частичную зависимость, усредненную по всем объектам набора данных, одно значение для каждого объекта или оба варианта. См. раздел «Возвращаемое значение» ниже.

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

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

Возвращает:
predictionsBunch

Объект, подобный словарю, со следующими атрибутами.

individualndarray of shape (n_outputs, n_instances, len(values[0]), len(values[1]), …)

Прогнозы для всех точек сетки для всех объектов в X. Также это называется индивидуальным условным ожиданием (ICE). Доступно только при kind='individual' или kind='both'.

averagendarray of shape (n_outputs, len(values[0]), len(values[1]), …)

Прогнозы для всех точек сетки, усредненные по всем объектам в X (или по обучающим данным, если method равно ‘recursion’). Доступно только при kind='average' или kind='both'.

grid_valuesseq of 1d ndarrays

Значения, на основе которых была создана сетка. Сгенерированная сетка представляет собой декартово произведение массивов в grid_values, где len(grid_values) == len(features). Размер каждого массива grid_values[j] равен меньшему из grid_resolution и количества уникальных значений в X[:, j].

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

n_outputs соответствует количеству классов в задаче многоклассовой классификации или количеству задач при регрессии с несколькими выходами. Для классической регрессии и бинарной классификации n_outputs==1. n_values_feature_j соответствует размеру grid_values[j].

См. также

PartialDependenceDisplay.from_estimator

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

PartialDependenceDisplay

Визуализация частичной зависимости.

Примеры

>>> X = [[0, 0, 2], [1, 0, 0]]
>>> y = [0, 1]
>>> from sklearn.ensemble import GradientBoostingClassifier
>>> gb = GradientBoostingClassifier(random_state=0).fit(X, y)
>>> partial_dependence(gb, features=[0], X=X, percentiles=(0, 1),
...                    grid_resolution=2)
(array([[-4.52,  4.52]]), [array([ 0.,  1.])])

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

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

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

Spec-Zone.ru

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