支持向量机(SVM)在机器学习中的简单示例

发布于:2024-07-01 ⋅ 阅读:(14) ⋅ 点赞:(0)

目录

工作原理

核函数

SVM用于分类

结果分析

结论


❤❤❤动动发财的小手点点赞点点关注哦~~~❤❤❤

支持向量机是一种强大的监督学习模型,用于分类和回归任务。它通过找到数据点之间的最优边界来区分不同的类别。SVM特别适用于那些具有清晰边界但线性不可分的数据集。

一、工作原理

SVM的工作原理是通过一个超平面来分隔不同的类别,这个超平面的选择基于最大化边界的原则。在这个边界上的数据点被称为支持向量,它们是SVM模型的关键。

二、核函数

SVM的一个关键特性是核函数的使用,它允许模型在更高维的空间中寻找最优超平面,而无需显式地映射输入数据。常用的核函数包括线性核、多项式核、径向基函数(RBF)核等。

三、SVM用于分类

以下是使用Python的scikit-learn库实现SVM进行二分类问题的示例代码:

from sklearn import datasets
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.svm import SVC
from sklearn.metrics import accuracy_score

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

# 只取前两个类别进行二分类
X = X[y != 2]
y = y[y != 2]

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

# 数据标准化
scaler = StandardScaler()
X_train = scaler.fit_transform(X_train)
X_test = scaler.transform(X_test)

# 创建SVM模型
svm_model = SVC(kernel='linear')  # 也可以使用'rbf', 'poly'等其他核函数

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

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

# 评估模型
accuracy = accuracy_score(y_test, y_pred)
print(f'Accuracy: {accuracy:.2f}')

四、结果分析

上述代码首先加载了Iris数据集,并将其转换为一个二分类问题。然后,使用StandardScaler进行数据标准化,以提高SVM模型的性能。接着,创建了一个使用线性核的SVM模型,并在训练集上进行训练。最后,使用测试集评估模型的准确性。

五、结论

SVM是一种非常有效的机器学习算法,尤其适用于高维数据和非线性问题。通过选择合适的核函数和调整模型参数,SVM可以在多种任务中提供出色的性能。

请注意,运行上述代码需要安装Python环境和scikit-learn库。您可以通过运行

pip install scikit-learn

来安装scikit-learn