使用matlab里的SVM进行数据分类预测

在MATLAB中使用支持向量机(SVM)进行数据分类预测的示例代码如下:

% 准备数据集,假设有一个矩阵X用于存储特征,一个向量Y用于存储标签
% X的每一行是一个样本的特征向量,Y的每个元素对应X对应样本的标签

% 假设特征矩阵X为 1000x3 的数据,标签向量Y为 1000x1 的数据
X = rand(1000, 3);
Y = randi([0, 1], 1000, 1);

% 拆分数据集为训练集和测试集,这里按照 70% 的比例划分数据
trainRatio = 0.7;
[trainInd, ~, testInd] = dividerand(size(X, 1), trainRatio, 0, 1);
XTrain = X(trainInd, :);
YTrain = Y(trainInd, :);
XTest = X(testInd, :);
YTest = Y(testInd, :);

% 建立支持向量机(SVM)模型并设置参数
svmModel = fitcsvm(XTrain, YTrain, 'KernelFunction', 'linear');

% 使用模型进行预测
YTestPredicted = predict(svmModel, XTest);

% 评估模型性能
accuracy = sum(YTestPredicted == YTest) / length(YTest);
disp(['Accuracy: ', num2str(accuracy)]);

% 可以根据需要进行模型调参和优化,例如选择其他核函数、调整参数C等

该示例代码假设您已经拥有特征矩阵X和对应的标签向量Y。首先,将数据集划分为训练集和测试集。然后,使用fitcsvm函数建立支持向量机(SVM)模型,并设置相关参数,如核函数。接下来,使用训练好的模型对测试集进行预测,并计算预测准确率作为性能评估指标。

根据您的数据集和问题,您可以根据需要对模型参数进行调整和优化,例如尝试不同的核函数、调整正则化参数C等来改善模型性能和预测精度。

猜你喜欢

转载自blog.csdn.net/weixin_44463965/article/details/131674552