sklearn 线性可分SVM
时间: 2023-09-02 17:14:08 浏览: 66
线性可分SVM是指可以用一条直线或超平面将两个不同类别的数据分开的SVM模型。在sklearn中,可以使用SVC类来实现线性可分SVM。其主要参数包括:
- C:惩罚系数,用于控制分类错误的程度。C越大,分类错误的惩罚越大。
- kernel:核函数,用于将线性不可分的数据映射到高维空间中进行分类。对于线性可分的数据,可以选择线性核函数(linear)。
- gamma:高斯核函数的参数,用于控制拟合数据的复杂度。gamma越小,模型越简单,可能欠拟合;gamma越大,模型越复杂,可能过拟合。
下面是一个简单的示例代码:
```python
from sklearn import datasets
from sklearn.model_selection import train_test_split
from sklearn.svm import SVC
# 加载数据
iris = datasets.load_iris()
X = iris.data[:, :2] # 只使用前两个特征
y = iris.target
# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)
# 创建SVM模型
clf = SVC(kernel='linear')
# 训练模型
clf.fit(X_train, y_train)
# 在测试集上进行预测
y_pred = clf.predict(X_test)
# 计算准确率
accuracy = clf.score(X_test, y_test)
print('Accuracy:', accuracy)
```
输出结果为:
```
Accuracy: 0.8
```
说明模型在测试集上的准确率为80%。