logistic回归python画图
时间: 2023-12-13 12:33:42 浏览: 241
下面是使用Python绘制逻辑回归决策边界的示例代码:
```python
import numpy as np
import matplotlib.pyplot as plt
# 定义sigmoid函数
def sigmoid(z):
return 1 / (1 + np.exp(-z))
# 定义绘制决策边界的函数
def plot_decision_boundary(theta, X, y):
# 绘制散点图
plt.scatter(X[:, 1], X[:, 2], c=y, cmap=plt.cm.Paired)
# 定义x轴范围
x1_min, x1_max = X[:, 1].min() - .5, X[:, 1].max() + .5
# 定义y轴范围
x2_min, x2_max = X[:, 2].min() - .5, X[:, 2].max() + .5
# 定义网格点
xx1, xx2 = np.meshgrid(np.linspace(x1_min, x1_max, 100), np.linspace(x2_min, x2_max, 100))
# 计算z值
z = sigmoid(np.c_[np.ones((xx1.ravel().shape[0], 1)), xx1.ravel(), xx2.ravel()].dot(theta))
z = z.reshape(xx1.shape)
# 绘制等高线
plt.contour(xx1, xx2, z, levels=[.5], cmap="Greys", vmin=0, vmax=.6)
# 读取数据
data = np.loadtxt("data.txt", delimiter=",")
X = data[:, :-1]
y = data[:, -1]
# 绘制决策边界
theta = [-25.161, 0.206, 0.201]
plot_decision_boundary(theta, X, y)
# 显示图像
plt.show()
```
其中,`data.txt`是一个二维数据集,第一列是$x_1$,第二列是$x_2$,第三列是标签$y$。`theta`是逻辑回归的参数,可以通过梯度下降等算法求解得到。运行上述代码,即可绘制出逻辑回归的决策边界。
阅读全文