📜  sklearn 支持向量机 (1)

📅  最后修改于: 2023-12-03 14:47:28.355000             🧑  作者: Mango

sklearn 支持向量机

简介

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进行分类问题的解决。