支持向量机(Support Vector Machine,简称 SVM)是一种用于解决分类和回归问题的机器学习算法。它通过找到一个最优超平面(或回归函数),将不同类别的数据分开,或拟合观测数据。支持向量机具有较强的泛化能力,能够处理高维空间问题。
支持向量机的主要组成部分如下:
- 核函数(Kernel):用于将数据映射到高维空间,以便在高维空间中找到最优超平面。常见的核函数有线性核、多项式核、径向基函数(RBF)核等。
- 支持向量(Support Vectors):在训练集中,支持向量是那些对分类边界影响最大的样本。支持向量机的目标是找到一个超平面,使得两类支持向量之间的距离(即分类边界)最大化。
- 最优超平面(Optimal Hyperplane):通过最大化支持向量与分类边界之间的距离,找到一个最优的超平面。在分类问题中,最优超平面将不同类别的支持向量分开;在回归问题中,最优超平面拟合支持向量。
在 Python 中,我们可以使用 libsvm 库来实现支持向量机。以下是一个简单的示例: - 首先,安装 libsvm:
“`bash
pip install libsvm
2. 准备数据集:
python
from sklearn.datasets import load_iris
iris = load_iris()
X = iris.data
y = iris.target
3. 划分训练集和测试集:
python
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)
4. 初始化参数:
python
from svm import SVC
创建支持向量机实例
svm = SVC(kernel=’linear’, C=1.0, probability=True)
5. 训练模型:
python
svm.fit(X_train, y_train)
6. 预测:
python
y_pred = svm.predict(X_test)
7. 评估模型:
python
from sklearn.metrics import accuracy_score
print(‘支持向量机分类准确率:’, accuracy_score(y_test, y_pred))
“`
以上代码演示了如何使用支持向量机进行分类。在实际应用中,您可能需要尝试不同的核函数和参数来优化模型性能。支持向量机适用于各种分类和回归问题,例如文本分类、图像识别等。