支持向量机(SVM)是一种强大的机器学习算法,常用于分类和回归问题。本教程将介绍如何使用 Python 和 scikit-learn 库来实现 SVM。

1. SVM 简介

SVM 是一种监督学习算法,它通过找到最佳的超平面来区分不同的类别。超平面是一个将数据集分成两个部分的线(对于二维数据)或面(对于三维数据)。

2. 安装 scikit-learn

在开始之前,请确保您已安装 scikit-learn 库。您可以使用以下命令进行安装:

pip install scikit-learn

3. SVM 分类

以下是一个简单的 SVM 分类示例:

from sklearn import datasets
from sklearn.model_selection import train_test_split
from sklearn import svm

# 加载数据
iris = datasets.load_iris()
X = iris.data
y = iris.target

# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)

# 创建 SVM 分类器
clf = svm.SVC(gamma='auto')

# 训练模型
clf.fit(X_train, y_train)

# 预测测试集
y_pred = clf.predict(X_test)

# 查看准确率
print("Accuracy:", clf.score(X_test, y_test))

4. SVM 回归

SVM 也可以用于回归问题。以下是一个 SVM 回归的示例:

from sklearn import datasets
from sklearn.model_selection import train_test_split
from sklearn import svm
from sklearn.metrics import mean_squared_error

# 加载数据
boston = datasets.load_boston()
X = boston.data
y = boston.target

# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)

# 创建 SVM 回归器
regr = svm.SVR(gamma='auto')

# 训练模型
regr.fit(X_train, y_train)

# 预测测试集
y_pred = regr.predict(X_test)

# 查看均方误差
print("Mean Squared Error:", mean_squared_error(y_test, y_pred))

5. 扩展阅读

如果您想了解更多关于 SVM 的信息,可以访问以下链接:

希望这个教程能帮助您更好地理解 SVM!😊