使用sklearn的决策树算法对样本数据进行分类,要求: (1)使用sklearn生成随机分布的400个样本点; (2)对样本点进行显示; (3)使用线性SVM进行2分类; (4)评价模型并画出分类边界
时间: 2024-05-03 22:20:34 浏览: 85
好的,这是一个计算机编程问题,我可以回答。以下是答案:
(1) 以下是使用sklearn生成随机分布的400个样本点的代码示例:
```python
from sklearn.datasets import make_blobs
X, y = make_blobs(n_samples=400, centers=2, random_state=42)
```
(2) 以下是对样本点进行显示的代码示例:
```python
import matplotlib.pyplot as plt
plt.scatter(X[:, 0], X[:, 1], c=y)
plt.xlabel('Feature 1')
plt.ylabel('Feature 2')
plt.show()
```
(3) 以下是使用线性SVM进行2分类的代码示例:
```python
from sklearn.svm import LinearSVC
model = LinearSVC()
model.fit(X, y)
```
(4) 以下是评价模型并画出分类边界的代码示例:
```python
import numpy as np
def plot_boundary(model, X):
xmin, xmax = X[:, 0].min() - 0.5, X[:, 0].max() + 0.5
ymin, ymax = X[:, 1].min() - 0.5, X[:, 1].max() + 0.5
xx, yy = np.meshgrid(np.linspace(xmin, xmax, 100), np.linspace(ymin, ymax, 100))
Z = model.predict(np.c_[xx.ravel(), yy.ravel()])
Z = Z.reshape(xx.shape)
plt.contourf(xx, yy, Z, cmap=plt.cm.RdBu_r, alpha=0.6)
plt.scatter(X[:, 0], X[:, 1], c=y, cmap=plt.cm.RdBu_r)
plt.xlim(xmin, xmax)
plt.ylim(ymin, ymax)
plt.xlabel('Feature 1')
plt.ylabel('Feature 2')
plot_boundary(model, X)
plt.show()
from sklearn.metrics import accuracy_score
y_pred = model.predict(X)
print(f"准确率:{accuracy_score(y, y_pred)}")
```
希望能够帮助你,还有其他问题需要我回答的话,请继续提出。
阅读全文