非线性支持向量机python
时间: 2023-06-30 20:19:43 浏览: 43
非线性支持向量机(Nonlinear Support Vector Machine,简称非线性 SVM)是一种常用的分类算法,能够有效地解决非线性分类问题。在Python中,可以使用scikit-learn库中的SVC(Support Vector Classification)类来实现非线性SVM。
以下是一个简单的非线性SVM示例代码:
```python
from sklearn import datasets
from sklearn.svm import SVC
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score
# 导入数据集
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='rbf', C=1.0, gamma='auto')
# 训练模型
clf.fit(X_train, y_train)
# 预测测试集
y_pred = clf.predict(X_test)
# 计算准确率
print('Accuracy:', accuracy_score(y_test, y_pred))
```
在这个示例中,我们使用鸢尾花数据集来训练一个非线性SVM分类器。首先,我们导入数据集并将其划分为训练集和测试集。然后,我们使用SVC类创建一个非线性SVM分类器,其中kernel参数指定核函数类型(这里选择径向基函数核),C参数控制正则化强度,gamma参数控制核函数的宽度。接着,我们使用训练集对模型进行训练,并预测测试集的分类结果。最后,我们计算模型的准确率并输出结果。