支持向量机二分类
时间: 2023-07-27 20:05:56 浏览: 41
支持向量机(Support Vector Machine, SVM)是一种二分类模型,它的主要思想是将数据集映射到高维空间中,从而将不可分的数据集转化为可分的数据集,并在高维空间中寻找最优划分超平面,使得两类数据点到该超平面的距离最大化。在分类时,将样本点映射到高维空间中,根据其在超平面的哪一侧进行分类。
以下是使用 sklearn 库实现 SVM 二分类的示例代码:
```
from sklearn import svm
import numpy as np
# 创建数据集
X = np.array([[0, 0], [1, 1], [1, 0], [0, 1]])
y = np.array([0, 0, 1, 1])
# 创建 SVM 模型并训练
clf = svm.SVC(kernel='linear') # 选择线性核函数
clf.fit(X, y)
# 预测新数据点
print(clf.predict([[2., 2.]])) # 输出分类结果,0 表示属于第一类,1 表示属于第二类
```
在上面的代码中,我们使用 `sklearn` 库中的 `svm.SVC` 类创建一个 SVM 二分类模型,并使用 `fit` 方法对数据进行训练。在训练时,我们选择了线性核函数,它可以将数据点映射到高维空间中,并在高维空间中寻找最优划分超平面。在训练完成后,我们可以使用 `predict` 方法对新数据点进行分类预测。
需要注意的是,在实际应用中,我们需要将数据集分为训练集和测试集,并使用测试集对模型进行评估,以避免过拟合的情况。同时,还需要对模型进行调参,包括选择不同的核函数、调整正则化参数等。