gpt4 book ai didi

python - 逻辑回归 : plotting decision boundary from theta

转载 作者:太空狗 更新时间:2023-10-30 00:53:58 25 4
gpt4 key购买 nike

我有以下代码:

x1 = np.random.randn(100)
y1 = np.random.randn(100) + 3
x2 = np.random.randn(100) + 3
y2 = np.random.randn(100)
plt.plot(x1, y1, "+", x2, y2, "x")
plt.axis('equal')
plt.show()

结果如下图

enter image description here

我已经实现了我自己的逻辑回归,它返回了一个 theta,我想用这个 theta 来绘制决策边界,但我不确定该怎么做。

X = np.matrix(np.vstack((np.hstack((x1,x2)), np.hstack((y1,y2)))).T)
X = np.concatenate((np.ones((X.shape[0], 1)), X), axis=1)
Y = np.matrix(1.0 * np.hstack((np.zeros(100), np.ones(100)))).T

learning_rate = 0.0001
iterations = 3000
theta = np.matrix([[0.5], [0.5], [0.5]])
theta = logistic_regression(theta, X, Y, learning_rate, iterations)

这给出了 theta =

[[ 0.40377942]
[ 0.53696461]
[ 0.1398419 ]]

例如。我如何使用它来绘制决策边界?

最佳答案

您想绘制 θTX = 0,其中 X 是包含 (1, x, y) 的向量。也就是说,您想要绘制由 theta[0] + theta[1]*x + theta[2]*y = 0 定义的直线。求解 y:

y = -(theta[0] + theta[1]*x)/theta[2]

所以,像这样:

theta = theta[:,0]  # Make theta a 1-d array.
x = np.linspace(-6, 6, 50)
y = -(theta[0] + theta[1]*x)/theta[2]
plt.plot(x, y)

不过有些地方看起来不对劲,因为您有 theta[1] > 0theta[2] > 0,这导致一行带有负斜率。

关于python - 逻辑回归 : plotting decision boundary from theta,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42704698/

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