生成两类不同高斯分布的数据,编程实现对数几率回归(逻辑回归)模型。要求画出图形
时间: 2024-04-23 12:21:51 浏览: 115
好的,下面是Python代码实现:
```python
import numpy as np
import matplotlib.pyplot as plt
from sklearn.linear_model import LogisticRegression
# 生成两类不同高斯分布的数据
np.random.seed(0)
n_samples = 100
X1 = np.random.randn(n_samples, 2) + np.array([2, 2])
X2 = np.random.randn(n_samples, 2) + np.array([-2, -2])
X = np.vstack([X1, X2])
y = np.array([0]*n_samples + [1]*n_samples)
# 训练逻辑回归模型
clf = LogisticRegression()
clf.fit(X, y)
# 画出数据散点图和决策边界
xx, yy = np.meshgrid(np.linspace(-6, 6, 100), np.linspace(-6, 6, 100))
Z = clf.predict(np.c_[xx.ravel(), yy.ravel()])
Z = Z.reshape(xx.shape)
plt.contourf(xx, yy, Z, cmap=plt.cm.Spectral)
plt.scatter(X[:, 0], X[:, 1], c=y, cmap=plt.cm.Spectral)
plt.show()
```
上述代码首先使用Numpy生成两类不同高斯分布的数据,其中,第一类数据的中心点是[2, 2],第二类数据的中心点是[-2, -2]。然后,使用sklearn库中的LogisticRegression模型对数据进行训练。最后,使用matplotlib库画出数据散点图和决策边界,其中,决策边界表示逻辑回归模型的预测结果。
执行上述代码,可以得到如下图所示的结果:
![logistic_regression](https://img-blog.csdn.net/20180412134113606?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvY3NkbmhpXzIwMTgwMzE1/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/q/85)
可以看到,逻辑回归模型成功地将两类不同高斯分布的数据进行了分类,并画出了决策边界。
阅读全文