MATLAB的SVM分类的代码,试举例说明
时间: 2024-12-19 15:23:48 浏览: 4
MATLAB 中的 Support Vector Machine (SVM) 分类是一个常见的机器学习任务。以下是一个简单的例子,展示如何使用 SVM 进行二分类:
```matlab
% 导入所需库
addpath('toolbox/svm'); % 假设你已经安装了 Statistics and Machine Learning Toolbox
% 加载数据集(这里假设你有一个名为 'data.csv' 的文件)
data = readtable('data.csv');
X = data(:, 1:end-1); % 特征矩阵
y = data(:, end); % 类别标签
% 将类别标签转换为支持向量机可以处理的形式
[y] = categorical(y);
% 划分训练集和测试集
cv = cvpartition(size(X,1),'HoldOut',0.3); % 30% 测试集,70% 训练集
idx = cv.test;
X_test = X(idx,:);
y_test = y(idx,:);
X_train = X(~idx,:);
y_train = y(~idx,:);
% 使用线性核的SVM模型
model = fitcsvm(X_train, y_train, 'KernelFunction', 'linear');
% 预测测试集
y_pred = predict(model, X_test);
% 计算准确率
accuracy = sum(y_pred == y_test) / numel(y_test);
disp(['Accuracy: ', num2str(accuracy)])
% 可视化决策边界(如果数据可视化可用)
if isfield(model, 'Hyperplane')
plotDecisions(model, X, y);
end
```
这个例子中,我们首先加载数据,然后划分数据集用于训练和测试。接着创建一个线性核的 SVM 模型,并用训练数据拟合它。预测测试集的结果并计算准确率。最后,如果数据可视化功能可用,我们将展示决策边界。
阅读全文