gpt4 book ai didi

machine-learning - 如何在Python中绘制正确的超平面

转载 作者:行者123 更新时间:2023-11-30 08:56:15 25 4
gpt4 key购买 nike

我的代码:

我的绘图功能:

def draw_hyper_plane(coef,intercept,y_max,y_min):
points=np.array([[((-coef*y_min - intercept)/coef), y_min],[((-coef*y_max - intercept)/coef), y_max]])
plt.plot(points[:,0], points[:,1])

实际输出:

this is output from above code

期望的输出:

this is the result i want to get

通过我的代码,我无法找到正确的超平面,它可以正确地将点分类为所需的输出图中的点。任何人都可以帮助我吗

最佳答案

一种方法是使用分类器中的 decision_function 并绘制一些水平线(level=0 对应于您的超平面)。这是一些代码。

def plot_2d_separator(classifier, X, fill=False, ax=None, eps=None):
if eps is None:
eps = X.std() / 2.
x_min, x_max = X[:, 0].min() - eps, X[:, 0].max() + eps
y_min, y_max = X[:, 1].min() - eps, X[:, 1].max() + eps
xx = np.linspace(x_min, x_max, 100)
yy = np.linspace(y_min, y_max, 100)

X1, X2 = np.meshgrid(xx, yy)
X_grid = np.c_[X1.ravel(), X2.ravel()]
try:
decision_values = classifier.decision_function(X_grid)
levels = [0]
fill_levels = [decision_values.min(), 0, decision_values.max()]
except AttributeError:
# no decision_function
decision_values = classifier.predict_proba(X_grid)[:, 1]
levels = [.5]
fill_levels = [0, .5, 1]

if ax is None:
ax = plt.gca()
if fill:
ax.contourf(X1, X2, decision_values.reshape(X1.shape),
levels=fill_levels, colors=['tab:blue', 'tab:orange'],
alpha=0.5)
else:
ax.contour(X1, X2, decision_values.reshape(X1.shape), levels=levels,
colors="black")
ax.set_xlim(x_min, x_max)
ax.set_ylim(y_min, y_max)
ax.set_xticks(())
ax.set_yticks(())

此代码开发于there

关于machine-learning - 如何在Python中绘制正确的超平面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59397258/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com