📅  最后修改于: 2023-12-03 14:54:47.102000             🧑  作者: Mango
支持向量机(Support Vector Machines, SVM)是一种机器学习算法,常用于分类和回归问题。它是一种二分类模型,但也可以扩展到多分类问题。
SVM的基本思想是在高维空间中构建一个最优的超平面,使得不同类别的样本能够尽可能地分开。算法的核心是找到支持向量,即离超平面最近的样本点。这些支持向量决定了超平面的位置和方向。
SVM可以使用不同的核函数来处理非线性问题。常用的核函数有线性核函数、多项式核函数和径向基函数(RBF)核函数。这些核函数可以将数据映射到高维空间,使得原始非线性问题变成线性可分的问题。
SVM具有以下优势和特点:
SVM可以用于各种机器学习任务,包括但不限于:
下面是一个简单的示例代码,展示了如何使用Python中的scikit-learn
库来构建一个基本的SVM分类器:
from sklearn import svm
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score
# 加载鸢尾花数据集
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.2, random_state=42)
# 构建SVM分类器
clf = svm.SVC(kernel='linear')
# 训练模型
clf.fit(X_train, y_train)
# 预测
y_pred = clf.predict(X_test)
# 计算准确率
accuracy = accuracy_score(y_test, y_pred)
print("Accuracy:", accuracy)
以上代码加载了鸢尾花数据集,使用线性核函数构建了一个SVM分类器,并在测试集上进行预测和准确率评估。
支持向量机是一种强大的机器学习算法,适用于各种分类和回归问题。它的原理简单直观,具有良好的泛化能力和适应性。通过选取合适的核函数和调优参数,SVM能够在各种实际问题中取得优秀的性能。