不仅限于两个特征,而是选取全部四个特征,进行可视化处理
时间: 2023-08-13 13:25:39 浏览: 80
各种特征选择方法
4星 · 用户满意度95%
好的,我们可以使用三维散点图来可视化四个特征的逻辑回归模型。具体操作如下:
```python
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
from sklearn.datasets import load_iris
from sklearn.linear_model import LogisticRegression
# 加载鸢尾花数据集
iris = load_iris()
X = iris.data[:, :3] # 只选取前三个特征
y = iris.target
# 训练逻辑回归模型
clf = LogisticRegression(random_state=0)
clf.fit(X, y)
# 绘制决策边界
x_min, x_max = X[:, 0].min() - .5, X[:, 0].max() + .5
y_min, y_max = X[:, 1].min() - .5, X[:, 1].max() + .5
z_min, z_max = X[:, 2].min() - .5, X[:, 2].max() + .5
xx, yy, zz = np.meshgrid(np.arange(x_min, x_max, 0.02), np.arange(y_min, y_max, 0.02), np.arange(z_min, z_max, 0.02))
Z = clf.predict(np.c_[xx.ravel(), yy.ravel(), zz.ravel()])
Z = Z.reshape(xx.shape)
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
ax.scatter(X[:, 0], X[:, 1], X[:, 2], c=y, marker='o')
ax.set_xlabel('Sepal length')
ax.set_ylabel('Sepal width')
ax.set_zlabel('Petal length')
ax.set_xlim(xx.min(), xx.max())
ax.set_ylim(yy.min(), yy.max())
ax.set_zlim(zz.min(), zz.max())
ax.view_init(elev=20., azim=-35)
plt.show()
```
以上代码中,我们使用`mpl_toolkits.mplot3d`库中的`Axes3D`类来绘制三维散点图,并使用`scatter()`函数将训练样本可视化。接着,我们使用`predict()`方法对三维空间中的网格点进行分类,并使用`plot_surface()`函数绘制逻辑回归模型的决策边界。最后,我们设置了横纵坐标轴标签,并使用`show()`函数展示图像。运行以上代码,你可以看到绘制出的逻辑回归模型的决策边界和训练样本的分布。
阅读全文