引言
支持向量机(Support Vector Machine,SVM)是一种强大的机器学习算法,广泛应用于分类和回归问题。在MATLAB中配置SVM不仅简单,而且功能强大。本文将带你轻松入门线性、非线性分类与回归实战技巧。
线性分类
1. 数据准备
在MATLAB中,首先需要准备数据。以下是一个简单的线性分类数据集:
% 创建数据
X = [1 2; 3 4; 5 6; 7 8];
y = [1; 1; -1; -1];
% 绘制数据点
figure;
scatter(X(:,1), X(:,2), y, 'filled');
xlabel('Feature 1');
ylabel('Feature 2');
title('Linear Classification Data');
2. 配置SVM
接下来,我们将使用fitcsvm函数配置SVM模型:
% 配置SVM模型
model = fitcsvm(X, y, 'KernelFunction', 'linear');
这里,我们使用了线性核函数。
3. 预测与评估
使用训练好的模型进行预测,并评估模型性能:
% 预测
y_pred = predict(model, X);
% 评估
accuracy = sum(y_pred == y) / numel(y);
disp(['Accuracy: ', num2str(accuracy)]);
非线性分类
1. 数据准备
非线性分类数据集如下:
% 创建数据
X = [1 2; 3 4; 5 6; 7 8; 9 10];
y = [1; 1; -1; -1; -1];
% 绘制数据点
figure;
scatter(X(:,1), X(:,2), y, 'filled');
xlabel('Feature 1');
ylabel('Feature 2');
title('Nonlinear Classification Data');
2. 配置SVM
使用径向基函数(RBF)核配置SVM模型:
% 配置SVM模型
model = fitcsvm(X, y, 'KernelFunction', 'rbf');
3. 预测与评估
与线性分类类似,进行预测和评估:
% 预测
y_pred = predict(model, X);
% 评估
accuracy = sum(y_pred == y) / numel(y);
disp(['Accuracy: ', num2str(accuracy)]);
线性回归
1. 数据准备
线性回归数据集如下:
% 创建数据
X = [1; 2; 3; 4; 5];
y = [2; 4; 5; 4; 5];
% 绘制数据点
figure;
plot(X, y, 'o');
xlabel('Feature');
ylabel('Target');
title('Linear Regression Data');
2. 配置SVM
使用线性核配置SVM回归模型:
% 配置SVM模型
model = fitrsvm(X, y, 'KernelFunction', 'linear');
3. 预测与评估
进行预测和评估:
% 预测
y_pred = predict(model, X);
% 评估
mse = mean((y_pred - y).^2);
disp(['Mean Squared Error: ', num2str(mse)]);
总结
通过本文,你已成功入门MATLAB配置SVM进行线性、非线性分类与回归实战。在实际应用中,你可以根据自己的需求调整核函数、参数等,以达到更好的效果。祝你学习愉快!