簡體   English   中英

多層感知器,在 Python 中可視化決策邊界(2D)

[英]Multilayer-perceptron, visualizing decision boundaries (2D) in Python

我已經為二元分類編寫了多層感知。 據我了解,一個隱藏層可以僅使用線作為決策邊界來表示(每個隱藏神經元一條線)。 這很有效,只需使用訓練后的權重就可以輕松繪制。

但是,隨着更多層的添加,我不確定使用什么方法,並且教科書很少處理可視化部分。 我想知道,是否有一種直接的方法可以將權重矩陣從不同層轉換到這個非線性決策邊界(假設 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)

完全工作的示例,該示例的學分歸功於scikit-learn (順便說一句,這是一個很棒的機器學習庫,實現了一個完全工作的感知器)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM