📅  最后修改于: 2023-12-03 14:47:28.355000             🧑  作者: Mango
sklearn(scikit-learn)是一个Python机器学习库,其中包含了支持向量机(SVM)算法。SVM是一种有监督的机器学习算法,常用于分类和回归分析中。
SVM的目标是找到一个最优的决策边界,使得不同类别的数据点被正确的分类。SVM将数据点映射到高维空间中,从而使得可以更容易的找到一个线性或非线性的决策边界。
以下是一个使用SVM进行分类的示例代码:
from sklearn import svm
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
# 加载鸢尾花数据集
iris = load_iris()
# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(
iris.data, iris.target, test_size=0.4, random_state=0)
# 训练SVM分类器
clf = svm.SVC(kernel='linear', C=1).fit(X_train, y_train)
# 在测试集上进行预测
y_pred = clf.predict(X_test)
# 输出准确率
print("准确率:", clf.score(X_test, y_test))
在上面的代码中,我们首先加载了鸢尾花数据集,并将其划分为训练集和测试集。然后,我们使用SVM的SVC
类进行分类,并使用线性核函数和正则化参数C=1训练分类器。最后在测试集上进行了预测,并输出了准确率。
sklearn
中的SVM实现有多个参数可以调整,以下是一些常用参数:
C
:正则化参数,控制模型的复杂度和拟合程度,默认为1.0。kernel
:核函数类型。常用的核函数有linear
(线性核), poly
(多项式核), rbf
(径向基核)和sigmoid
(sigmoid核)等。degree
:多项式核函数的次数,仅在poly
核函数下有效,默认为3。gamma
:径向基核和多项式核的系数,控制高维空间的曲线性,默认为auto
。coef0
:多项式核和sigmoid核的截距项,默认为0。本文简单介绍了SVM及其在sklearn
中的实现。希望这篇文章能够帮助读者初步了解SVM算法,以及如何使用sklearn
库来应用SVM进行分类问题的解决。