编写一个程序,用sklearn 中的LogisticRegression模型对非线性数据集进行分类
时间: 2024-02-16 07:59:39 浏览: 92
好的,以下是一个基于sklearn中LogisticRegression模型的非线性数据集分类程序:
```python
import numpy as np
import matplotlib.pyplot as plt
from sklearn.datasets import make_moons
from sklearn.linear_model import LogisticRegression
from sklearn.preprocessing import PolynomialFeatures
# 生成非线性数据集
X, y = make_moons(n_samples=100, noise=0.15, random_state=42)
# 进行多项式特征转换
poly = PolynomialFeatures(degree=3)
X_poly = poly.fit_transform(X)
# 训练LogisticRegression模型
clf = LogisticRegression()
clf.fit(X_poly, y)
# 绘制分类结果
xx, yy = np.meshgrid(np.linspace(-1.5, 2.5, 100), np.linspace(-1, 1.5, 100))
Z = clf.predict(poly.transform(np.c_[xx.ravel(), yy.ravel()]))
Z = Z.reshape(xx.shape)
plt.contourf(xx, yy, Z, cmap=plt.cm.Spectral, alpha=0.8)
plt.scatter(X[:,0], X[:,1], c=y, cmap=plt.cm.Spectral)
plt.show()
```
程序中使用`make_moons`函数生成了一个非线性数据集,然后使用`PolynomialFeatures`类进行多项式特征转换,将二维数据集转换为六维数据集。最后,使用`LogisticRegression`模型训练分类器,并绘制分类结果。
阅读全文