python 画出决策边界_多层感知器,可视化Python中的决策边界(2D)

我为二进制分类编写了多层感知器.据我了解,一个隐藏层可以仅使用线条作为决策边界来表示(每个隐藏神经元一行).这很好用,并且只需使用训练后得到的权重就可以轻松绘制出来.

但是,随着添加更多的层,我不确定使用哪种方法,并且教科书中很少处理可视化部分.我想知道,是否存在将权重矩阵从不同层转换到此非线性决策边界(假设2D输入)的直接方法?

非常感谢,

解决方法:

绘制决策边界(对于线性或非线性分类器而言)的一种方法是在均匀网格中对点进行采样并将其馈送到分类器.假设X是您的数据,则可以如下创建一个统一的点网格:

h = .02 # step size in the mesh

x_min, x_max = X[:, 0].min() - 1, X[:, 0].max() + 1

y_min, y_max = X[:, 1].min() - 1, X[:, 1].max() + 1

xx, yy = np.meshgrid(np.arange(x_min, x_max, h),

np.arange(y_min, y_max, h))

然后,将这些坐标输入到感知器以捕获其预测:

Z = clf.predict(np.c_[xx.ravel(), yy.ravel()])

假设clf是您的感知器,则np.c_从统一采样的点创建特征,将其馈送到分类器,并在Z中捕获其预测.

最后,将决策边界绘制为等高线图(使用matplotlib):

Z = Z.reshape(xx.shape)

plt.contourf(xx, yy, Z, cmap=plt.cm.Paired, alpha=0.8)

并且可以选择绘制您的数据点:

plt.scatter(X[:, 0], X[:, 1], c=y, cmap=plt.cm.Paired)

Fully working example,本示例的功劳归于scikit-learn(顺便说一句,这是一个很棒的机器学习库,实现了可正常运行的Perceptron).

标签:neural-network,visualization,perceptron,python,numpy

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可视化SVM的决策边界,你可以使用Python的一些数据可视化库,例如Matplotlib和Scikit-learn。下面是一个基本的示例代码,演示了如何绘制SVM的决策边界: ```python import numpy as np import matplotlib.pyplot as plt from sklearn import svm # 创建一些样本数据 X = np.array([[2, 2], [1, 3], [2, 3], [3, 1], [3, 2]]) y = np.array([0, 0, 0, 1, 1]) # 创建一个SVM分类器,并训练模型 clf = svm.SVC(kernel='linear') clf.fit(X, y) # 绘制样本点 plt.scatter(X[:, 0], X[:, 1], c=y, cmap=plt.cm.Paired) # 绘制决策边界 ax = plt.gca() xlim = ax.get_xlim() ylim = ax.get_ylim() # 创建网格以绘制决策边界 xx = np.linspace(xlim[0], xlim[1], 30) yy = np.linspace(ylim[0], ylim[1], 30) YY, XX = np.meshgrid(yy, xx) xy = np.vstack([XX.ravel(), YY.ravel()]).T Z = clf.decision_function(xy).reshape(XX.shape) # 绘制决策边界和边界间隔 ax.contour(XX, YY, Z, levels=[-1, 0, 1], alpha=0.5, linestyles=['--', '-', '--'], colors='red') # 绘制支持向量 ax.scatter(clf.support_vectors_[:, 0], clf.support_vectors_[:, 1], s=100, linewidth=1, facecolors='none', edgecolors='black') plt.show() ``` 这段代码首先创建了一些样本数据,然后使用SVC类创建了一个线性核的SVM分类器。接下来,我们用样本点绘制散点图,并使用决策函数绘制决策边界和边界间隔。最后,绘制支持向量。 运行这段代码,你将得到一个显示决策边界和支持向量的散点图。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值