Matplotlib中的决策边界绘制:plot_decision_boundary与plt.contourf的详解
2024.01.17 14:42浏览量:21简介:本文将深入探讨Matplotlib中的plot_decision_boundary和plt.contourf函数,两者都是用于绘制决策边界的重要工具。我们将通过实例和详细的代码解释这两个函数的工作原理和用法,旨在帮助读者更好地理解和应用这两个函数。
千帆应用开发平台“智能体Pro”全新上线 限时免费体验
面向慢思考场景,支持低代码配置的方式创建“智能体Pro”应用
在机器学习和数据可视化中,决策边界是一个非常重要的概念。它表示在给定特征空间中,不同分类器或模型的预测结果的分界线。通过绘制决策边界,我们可以直观地了解分类器的性能和特征之间的相关性。在Matplotlib中,我们可以使用plot_decision_boundary
函数和plt.contourf
函数来绘制决策边界。
首先,我们来了解一下plot_decision_boundary
函数。这个函数是Scikit-learn库中的一个函数,专门用于绘制决策边界。它需要传入分类器的决策函数、特征值和目标值作为参数。具体用法如下:
from sklearn.datasets import make_classification
from sklearn.model_selection import train_test_split
from sklearn.svm import SVC
from sklearn.preprocessing import StandardScaler
from sklearn.metrics import plot_decision_boundary
import matplotlib.pyplot as plt
# 创建数据集
X, y = make_classification(n_samples=1000, n_features=2, n_informative=2, n_redundant=0, random_state=42)
# 数据标准化
scaler = StandardScaler()
X = scaler.fit_transform(X)
# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# 创建分类器并训练模型
clf = SVC(kernel='linear')
clf.fit(X_train, y_train)
# 绘制决策边界
plot_decision_boundary(clf, X, y)
plt.show()
在上述代码中,我们首先使用make_classification
函数创建一个二分类问题的数据集。然后,我们使用StandardScaler
对数据进行标准化处理,使得每个特征的均值为0,标准差为1。接下来,我们将数据集划分为训练集和测试集,并使用线性核的SVC分类器进行训练。最后,我们调用plot_decision_boundary
函数绘制决策边界。
除了plot_decision_boundary
函数外,我们还可以使用plt.contourf
函数来绘制决策边界。这个函数可以绘制等高线图,通过调整等高线的颜色和透明度,我们可以得到类似于决策边界的效果。具体用法如下:
# 绘制决策边界的等高线图
plt.contourf(X, y, clf.decision_function(X), levels=[-1, 0, 1], cmap='RdBu', vmin=-1, vmax=1)
plt.show()
在上述代码中,我们使用plt.contourf
函数绘制决策边界的等高线图。其中,X
表示特征值,y
表示目标值,clf.decision_function(X)
表示分类器的决策函数值。通过调整等高线的颜色和透明度,我们可以得到类似于决策边界的效果。通过设置levels=[-1, 0, 1]
参数,我们可以指定等高线的级别。设置cmap='RdBu'
参数可以指定颜色映射,设置vmin=-1
和vmax=1
参数可以指定颜色映射的范围。
总的来说,plot_decision_boundary
函数和plt.contourf
函数都是用于绘制决策边界的重要工具。它们都可以帮助我们了解分类器的性能和特征之间的相关性。在实际应用中,我们可以根据具体情况选择适合的函数来绘制决策边界。

发表评论
登录后可评论,请前往 登录 或 注册