写一个用支持向量机将一维数据分成三类的代码
时间: 2024-03-11 21:48:00 浏览: 45
好的,以下是一个用支持向量机将一维数据分成三类的 Python 代码示例:
```python
import numpy as np
import matplotlib.pyplot as plt
from sklearn import svm
# 生成数据
np.random.seed(0)
X = np.sort(5 * np.random.rand(60, 1), axis=0)
Y = np.zeros((60, ), dtype=int)
Y[X[:, 0] < 1.5] = 0
Y[(X[:, 0] >= 1.5) & (X[:, 0] < 3)] = 1
Y[X[:, 0] >= 3] = 2
# 拟合 SVM 模型
clf = svm.SVC(kernel='linear', C=10, decision_function_shape='ovr')
clf.fit(X, Y)
# 画出决策边界和支持向量
plt.scatter(X, Y, cmap=plt.cm.Paired)
plt.plot([1.5, 1.5], [-0.5, 2.5], 'k--', lw=2)
plt.plot([3, 3], [-0.5, 2.5], 'k--', lw=2)
plt.xticks(())
plt.yticks(())
plt.show()
```
上面的代码中,我们首先生成了一些一维数据,其中包含三个类别,每个类别包含20个样本。然后,我们使用 `svm.SVC` 类来拟合一个线性 SVM 模型,并用 `fit` 方法拟合数据。需要注意的是,当分类的类别数大于二时,我们需要设置 `decision_function_shape='ovr'`,表示采用 one-vs-rest 的策略。最后,我们使用 `plt.scatter` 和 `plt.plot` 函数画出数据点和决策边界。
阅读全文
相关推荐
![-](https://img-home.csdnimg.cn/images/20241226111658.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![application/pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![docx](https://img-home.csdnimg.cn/images/20241231044901.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![-](https://img-home.csdnimg.cn/images/20241226111658.png)
![-](https://img-home.csdnimg.cn/images/20241226111658.png)
![-](https://img-home.csdnimg.cn/images/20241226111658.png)
![-](https://img-home.csdnimg.cn/images/20241226111658.png)
![-](https://img-home.csdnimg.cn/images/20241226111658.png)
![-](https://img-home.csdnimg.cn/images/20241226111658.png)
![-](https://img-home.csdnimg.cn/images/20241226111658.png)
![-](https://img-home.csdnimg.cn/images/20241226111658.png)
![-](https://img-home.csdnimg.cn/images/20241226111658.png)