SVC函数python
时间: 2024-12-25 18:18:52 浏览: 4
### 使用 Python 中的 `SVC` 函数进行支持向量分类
#### 导入必要的库
为了使用 `SVC` 进行支持向量分类,首先需要导入所需的库:
```python
from sklearn.svm import SVC
from sklearn.model_selection import train_test_split
from sklearn.datasets import load_iris
import numpy as np
```
#### 加载并准备数据集
可以使用内置的数据集来测试和支持向量机的功能。这里以鸢尾花数据集为例。
```python
data = load_iris()
X = data.data
y = data.target
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)
```
#### 创建和训练模型
定义不同类型的核函数,并创建相应的 SVM 模型实例。对于线性核函数的情况如下所示[^1]:
```python
svc_linear = SVC(kernel='linear')
svc_linear.fit(X_train, y_train)
```
除了线性核之外,还可以尝试多项式 (`poly`)、径向基函数 (`rbf`) 和 Sigmoid 核函数。下面是一个循环结构用于构建多个具有不同内核的支持向量机模型[^2]:
```python
kernels = ['linear', 'poly', 'rbf', 'sigmoid']
models = {}
for kernel in kernels:
svc_model = SVC(kernel=kernel, random_state=42)
svc_model.fit(X_train, y_train)
models[kernel] = svc_model
```
#### 预测与评估性能
一旦完成了模型的训练过程,则可以通过调用 `.predict()` 方法来进行预测操作;同时也可以通过交叉验证等方式评价各个模型的表现情况。
```python
predictions = {name: model.predict(X_test) for name, model in models.items()}
accuracy_scores = {name: np.mean(pred == y_test) * 100 for name, pred in predictions.items()}
print("Accuracy scores:")
for key, value in accuracy_scores.items():
print(f"{key}: {value:.2f}%")
```
上述代码展示了如何利用 scikit-learn 库中的 `SVC` 类完成基本的支持向量分类任务以及探索不同类型核函数的影响效果[^4]。
阅读全文