采用 scikit-learn 中的 LogisticRegression 逻辑回归模型对非线性数据集进行分类。 具体内容: (1)数据集:使用 sklearn 自带数据生成器 make_moons 产生两类数据样本,示例程序如下, 参数可自行修改。特征衍生(数据增强):使用 sklearn 自带 sklearn.preprocessing.PolynomialFeatures 生成指 定阶次的多项式特征,从而得到所有多项式组合成的新特征矩阵,degree 参数使用for循环。(3)模型建立:在新特征基础上建立逻辑回归二分类模型。 (4)决策边界可视化:绘制决策边界,观察非线性边界的变化。用pycharm写,用IPython解释器,
时间: 2024-02-23 10:00:40 浏览: 31
好的,让我们逐步完成这个任务。
首先我们需要导入相关模块和库:
```python
import numpy as np
import matplotlib.pyplot as plt
from sklearn.datasets import make_moons
from sklearn.preprocessing import PolynomialFeatures
from sklearn.linear_model import LogisticRegression
```
然后我们使用 `make_moons` 函数生成数据集,并将其可视化:
```python
X, y = make_moons(n_samples=200, noise=0.3)
plt.scatter(X[:, 0], X[:, 1], c=y)
plt.show()
```
接下来我们使用 `PolynomialFeatures` 函数生成新特征矩阵,其中 `degree` 参数使用 `for` 循环进行遍历:
```python
degrees = [2, 3, 4, 5, 6]
for degree in degrees:
poly = PolynomialFeatures(degree=degree)
X_poly = poly.fit_transform(X)
```
然后我们使用新特征矩阵 `X_poly` 来建立逻辑回归模型:
```python
lr = LogisticRegression()
lr.fit(X_poly, y)
```
最后我们绘制决策边界:
```python
x_min, x_max = X[:, 0].min() - 0.5, X[:, 0].max() + 0.5
y_min, y_max = X[:, 1].min() - 0.5, X[:, 1].max() + 0.5
xx, yy = np.meshgrid(np.arange(x_min, x_max, 0.02), np.arange(y_min, y_max, 0.02))
Z = lr.predict(poly.fit_transform(np.c_[xx.ravel(), yy.ravel()]))
Z = Z.reshape(xx.shape)
plt.contourf(xx, yy, Z, alpha=0.4)
plt.scatter(X[:, 0], X[:, 1], c=y)
plt.show()
```
这样,我们就完成了整个任务。完整代码如下:
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)