SVM支持向量机学习——使用MATLAB实现基于SVM的数据二分类
支持向量机(Support Vector Machine,SVM)是一种广泛应用于分类、回归和异常检测等领域的算法。它的优点在于具有较高的准确性、鲁棒性和可扩展性。在本文中,我们将介绍如何使用 MATLAB 实现基于 SVM 的数据二分类。
- 数据准备
首先,我们需要准备样本数据。在这里,我们使用 MATLAB 自带的 iris 数据作为样本数据。Iris 数据集包含了 3 类,每类各 50 个数据,共计 150 个数据。每个数据包含了 4 个特征,分别为萼片长度、萼片宽度、花瓣长度和花瓣宽度。我们将选取其中两类数据进行二分类,以便于演示 SVM 的分类效果。
% 导入 iris 数据集
load fisheriris
X = meas(51:100, [1, 3]); % 取出萼片长度和花瓣长度作为特征
y = (1:50)'>25; % 将前 50 个数据标记为 0,后 50 个数据标记为 1
- 数据预处理
对数据进行预处理可以提高 SVM 算法的分类精度。在这里,我们将对数据进行标准化处理,使得每个特征的均值为 0,标准差为 1。
% 标准化处理
[X, mu, sigma] = zscore(X);
- 训练 SVM 模型
在 MATLAB 中,可以使用 fitcsvm 函数训练 SVM 模型。这个函数提供了多种不同的内核函数,包括线性内核、多项式内核和高斯内核等。可以根据具体情况选择适合的内核函数。
% 训练 SVM 模型
svmModel = fitcsvm(X, y, ‘KernelFunction’,