DecisionBoundaryDisplay
- classsklearn.inspection.DecisionBoundaryDisplay(*, xx0, xx1, n_classes, response, multiclass_colors=None, xlabel=None, ylabel=None)[исходный код]
-
Визуализация границ принятия решений.
Для создания объекта
from_estimatorрекомендуется использоватьDecisionBoundaryDisplay. Все параметры сохраняются в виде атрибутов.Подробнее см. в руководстве пользователя.
Подробный пример сравнения границ принятия решений для мультиномиальной логистической регрессии и логистической регрессии «один против остальных» см. в разделе Границы принятия решений для мультиномиальной логистической регрессии и логистической регрессии «один против остальных».
Добавлено в версии 1.1.
- Параметры:
-
- xx0ndarray формы (grid_resolution, grid_resolution)
-
Первый результат
meshgrid. - xx1ndarray формы (grid_resolution, grid_resolution)
-
Второй результат
meshgrid. - n_classesint
-
Ожидаемое количество уникальных классов или меток, если
responseсоздан классификатором classifier или кластеризатором clusterer.Для обнаружителей выбросов outlier detectors по определению следует задать
n_classesравным 2 (объект принадлежит или не принадлежит выборке).Для регрессоров regressors по соглашению также следует задать
n_classesравным 2 (непрерывные отклики отображаются так же, как бинарные отклики без порогового преобразования).Добавлено в версии 1.9.
- responsendarray формы (grid_resolution, grid_resolution) или (grid_resolution, grid_resolution, n_classes)
-
Значения функции отклика.
- multiclass_colorsstr или список цветов matplotlib, по умолчанию=None
-
Определяет цвет каждого класса при отображении всех классов в задачах многоклассовой классификации multiclass.
Допустимые значения:
- None: по умолчанию используется список различимых цветов Petroff, если
n_classes <= 10, иначе используется цветовая карта ‘gist_rainbow’ - str: название
matplotlib.colors.Colormap - list: список из
n_classesцветов matplotlib
Из цветов списка или цветов, взятых из цветовой карты, будут созданы цветовые карты одного цвета (с переходом к белому), которые передаются в параметр
cmapобъектаplot_method.Если
response_method='predict'иplot_method='contour',multiclass_colorsигнорируется, а границы классов отображаются черным цветом, поскольку линии границ могут перекрываться, и цвета не обязательно соответствуют классам.Для бинарных задач binary
multiclass_colorsтакже игнорируется. Вместо него в качестве kwargs можно передатьcmapилиcolors; в противном случае используется цветовая карта по умолчанию (‘viridis’).Добавлено в версии 1.7.
Изменено в версии 1.9: теперь
multiclass_colorsтакже используется, еслиresponse_method="predict", за исключением случая, когдаplot_method='contour': тогда он игнорируется и вместо него используется «black». Цвета по умолчанию изменены с ‘tab10’ на более различимые цвета Petroff. - None: по умолчанию используется список различимых цветов Petroff, если
- xlabelstr, по умолчанию=None
-
Метка, отображаемая по умолчанию на оси x.
- ylabelstr, по умолчанию=None
-
Метка, отображаемая по умолчанию на оси y.
- Атрибуты:
-
-
surface_matplotlib
QuadContourSetилиQuadMeshили список таких объектов -
Если
plot_method— ‘contour’ или ‘contourf’,surface_являетсяQuadContourSet. Еслиplot_method— ‘pcolormesh’,surface_являетсяQuadMesh. - multiclass_colors_массив формы (n_classes, 4)
-
Цвета, используемые для отображения каждого класса в многоклассовых задачах. Определяется только при
n_classes> 2.Добавлено в версии 1.7.
- ax_Axes matplotlib
-
Область Axes с границей принятия решений.
- figure_Figure matplotlib
-
Объект Figure, содержащий границу принятия решений.
-
surface_matplotlib
См. также
DecisionBoundaryDisplay.from_estimator-
Построить границу принятия решений для заданной оценочной модели.
Примеры
>>> import matplotlib.pyplot as plt >>> import matplotlib as mpl >>> import numpy as np >>> from sklearn.linear_model import LogisticRegression >>> from sklearn.inspection import DecisionBoundaryDisplay >>> data = np.array([[0, 0], [1, 1], [2, 1], [2, 2], [3, 2], [3, 3]]) >>> target = np.arange(data.shape[0]) >>> clf = LogisticRegression().fit(data, target) >>> plot_methods = ["contourf", "contour", "pcolormesh"] >>> response_methods = ["predict_proba", "decision_function", "predict"] >>> _, axes = plt.subplots( ... nrows=3, ... ncols=3, ... figsize=(12, 12), ... constrained_layout=True ... ) >>> for plot_method_idx, plot_method in enumerate(plot_methods): ... for response_method_idx, response_method in enumerate(response_methods): ... ax = axes[plot_method_idx, response_method_idx] ... display = DecisionBoundaryDisplay.from_estimator( ... clf, ... data, ... grid_resolution=300, ... response_method=response_method, ... plot_method=plot_method, ... ax=ax, ... alpha=0.5, ... ) ... cmap = mpl.colors.ListedColormap(display.multiclass_colors_) ... ax.scatter( ... data[:, 0], ... data[:, 1], ... c=target.astype(int), ... edgecolors="black", ... cmap=cmap, ... ) ... ax.set_title( ... f"plot_method={plot_method}\nresponse_method={response_method}" ... ) >>> plt.show()- classmethodfrom_estimator(estimator, X, *, grid_resolution=100, eps=1.0, plot_method='contourf', response_method='auto', class_of_interest=None, multiclass_colors=None, xlabel=None, ylabel=None, ax=None, **kwargs)[исходный код]
-
Построить границу принятия решений для заданной оценочной модели.
Подробнее см. в руководстве пользователя.
- Параметры:
-
- estimatorobject
-
Обученная оценочная модель, используемая для построения границы принятия решений.
- X{array-like, sparse matrix, dataframe} формы (n_samples, 2)
-
Входные данные, которые должны быть двумерными.
- grid_resolutionint, по умолчанию=100
-
Количество точек сетки, используемых для построения границы принятия решений. При больших значениях график выглядит лучше, но отрисовывается медленнее.
- epsfloat, по умолчанию=1.0
-
Расширяет минимальные и максимальные значения X при вычислении функции отклика.
- plot_method{‘contourf’, ‘contour’, ‘pcolormesh’}, по умолчанию=’contourf’
-
Метод построения графика, вызываемый при отображении отклика. Подробности см. в документации matplotlib:
contourf,contour,pcolormesh. - response_method{‘auto’, ‘decision_function’, ‘predict_proba’, ‘predict’}, по умолчанию=’auto’
-
Определяет, использовать ли в качестве целевого отклика decision_function, predict_proba или predict. Если задано значение ‘auto’, методы отклика проверяются в указанном выше порядке.
Изменено в версии 1.6: для многоклассовых задач значение ‘auto’ больше не соответствует ‘predict’ по умолчанию.
- class_of_interestint, float, bool или str, по умолчанию=None
-
Класс, который нужно отобразить. Для бинарных классификаторов binary, если задано None, положительным классом считается
estimator.classes_[1]. Для многоклассовых классификаторов multiclass, если задано None, на графике границы принятия решений будут представлены все классы; при значенииresponse_methodpredict_proba или decision_function в каждой точке отображается класс с наибольшим значением отклика. Цвет каждого класса можно задать с помощьюmulticlass_colors.Добавлено в версии 1.4.
- multiclass_colorsstr или список цветов matplotlib, по умолчанию=None
-
Определяет цвет каждого класса при построении графика для многоклассовых задач multiclass, если
class_of_interestравно None.Допустимые значения:
- None: по умолчанию используется список различимых цветов Petroff, если
n_classes <= 10, иначе используется цветовая карта ‘gist_rainbow’ - str: название
matplotlib.colors.Colormap - list: список из
n_classesцветов matplotlib
Из цветов списка или цветов, взятых из цветовой карты, будут созданы цветовые карты одного цвета (с переходом к белому), которые передаются в параметр
cmapобъектаplot_method.Если
response_method='predict'иplot_method='contour',multiclass_colorsигнорируется, а границы классов отображаются черным цветом, поскольку линии границ могут перекрываться, и цвета не обязательно соответствуют классам.Для бинарных задач binary
multiclass_colorsтакже игнорируется. Вместо него в качестве kwargs можно передатьcmapилиcolors; в противном случае используется цветовая карта по умолчанию (‘viridis’).Добавлено в версии 1.7.
Изменено в версии 1.9: теперь
multiclass_colorsтакже используется, еслиresponse_method="predict", за исключением случая, когдаplot_method='contour': тогда он игнорируется и вместо него используется «black». Цвета по умолчанию изменены с ‘tab10’ на более различимые цвета Petroff. - None: по умолчанию используется список различимых цветов Petroff, если
- xlabelstr, по умолчанию=None
-
Метка оси x. Если
None, предпринимается попытка получить метку изX, если это dataframe; в противном случае используется пустая строка. - ylabelstr, по умолчанию=None
-
Метка оси y. Если
None, предпринимается попытка получить метку изX, если это dataframe; в противном случае используется пустая строка. - axоси Matplotlib, по умолчанию=None
-
Объект Axes, на котором строится график. Если
None, создаются новые объекты figure и axes. - **kwargsdict
-
Дополнительные именованные аргументы, передаваемые объекту
plot_method.
- Возвращает:
-
-
display
DecisionBoundaryDisplay -
Объект, сохраняющий результат.
-
display
См. также
DecisionBoundaryDisplay-
Визуализация границ принятия решений.
sklearn.metrics.ConfusionMatrixDisplay.from_estimator-
Построить матрицу ошибок для заданной оценочной модели, данных и меток.
sklearn.metrics.ConfusionMatrixDisplay.from_predictions-
Построить матрицу ошибок для истинных и предсказанных меток.
Примеры
>>> import matplotlib as mpl >>> import matplotlib.pyplot as plt >>> from sklearn.datasets import load_iris >>> from sklearn.linear_model import LogisticRegression >>> from sklearn.inspection import DecisionBoundaryDisplay >>> iris = load_iris() >>> X = iris.data[:, :2] >>> classifier = LogisticRegression().fit(X, iris.target) >>> disp = DecisionBoundaryDisplay.from_estimator( ... classifier, X, response_method="predict", ... xlabel=iris.feature_names[0], ylabel=iris.feature_names[1], ... alpha=0.5, ... ) >>> cmap = mpl.colors.ListedColormap(disp.multiclass_colors_) >>> disp.ax_.scatter(X[:, 0], X[:, 1], c=iris.target, edgecolor="k", cmap=cmap) <...> >>> plt.show()
- plot(plot_method='contourf', ax=None, xlabel=None, ylabel=None, **kwargs)[исходный код]
-
Построить визуализацию.
- Параметры:
-
- plot_method{‘contourf’, ‘contour’, ‘pcolormesh’}, по умолчанию=’contourf’
-
Метод построения графика, вызываемый при отображении отклика. Подробности см. в документации matplotlib:
contourf,contour,pcolormesh. - axоси Matplotlib, по умолчанию=None
-
Объект Axes, на котором строится график. Если
None, создаются новые объекты figure и axes. - xlabelstr, по умолчанию=None
-
Переопределить метку оси x.
- ylabelstr, по умолчанию=None
-
Переопределить метку оси y.
- **kwargsdict
-
Дополнительные именованные аргументы, передаваемые объекту
plot_method. Для бинарных задач binary здесь можно задатьcmapилиcolors, чтобы указать цветовую карту или цвета; в противном случае используется цветовая карта по умолчанию (‘viridis’). Если пользователь не указалzorder, ему присваивается значение -1, чтобы граница принятия решений отображалась на заднем плане (на случай, если поверх нее добавлена диаграмма рассеяния).
- Возвращает:
-
- display:
DecisionBoundaryDisplay -
Объект, сохраняющий вычисленные значения.
- display:
См. также
DecisionBoundaryDisplay.from_estimator-
Построить границу принятия решений для заданной оценочной модели.
Примеры
>>> import matplotlib as mpl >>> import matplotlib.pyplot as plt >>> import numpy as np >>> from sklearn.datasets import load_iris >>> from sklearn.inspection import DecisionBoundaryDisplay >>> from sklearn.tree import DecisionTreeClassifier >>> iris = load_iris() >>> feature_1, feature_2 = np.meshgrid( ... np.linspace(iris.data[:, 0].min(), iris.data[:, 0].max()), ... np.linspace(iris.data[:, 1].min(), iris.data[:, 1].max()) ... ) >>> grid = np.vstack([feature_1.ravel(), feature_2.ravel()]).T >>> tree = DecisionTreeClassifier().fit(iris.data[:, :2], iris.target) >>> y_pred = np.reshape(tree.predict(grid), feature_1.shape) >>> display = DecisionBoundaryDisplay( ... xx0=feature_1, ... xx1=feature_2, ... n_classes=len(tree.classes_), ... response=y_pred ... ) >>> display.plot() <...> >>> display.ax_.scatter( ... iris.data[:, 0], ... iris.data[:, 1], ... c=iris.target, ... cmap=mpl.colors.ListedColormap(display.multiclass_colors_), ... edgecolor="black" ... ) <...> >>> plt.show()
Примеры из галереи
© 2007–2026 The scikit-learn developers
Licensed under the 3-clause BSD License.
https://scikit-learn.org/1.9/modules/generated/sklearn.inspection.DecisionBoundaryDisplay.html