网格搜索支持向量机

11 Ansichten(30天)的
Shalmiya Paulraj SOC
Shalmiya Paulraj SOC 我2022年7月20日
Kommentiert: 沃尔特·罗伯森 我2022年7月22日
你好,
我在训练数据(train.mat)和测试数据(test.mat),我需要执行网格搜索。我怎么能做svm训练呢?请帮我这个忙。提前谢谢。
2 Kommentare
Shalmiya Paulraj SOC
Shalmiya Paulraj SOC 我2022年7月20日
我需要做svm hyperparameter优化利用网格搜索方法。

Melden您西奇,嗯祖茂堂kommentieren。

Akzeptierte Antwort

沃尔特·罗伯森
沃尔特·罗伯森 我2022年7月20日
Nbox = 15;%根据需要改变这些
Nkern = 10;%根据需要改变这些
bcvec = logspace (3 3 Nbox);
ksvec = logspace (3 3 Nkern);
善良= 0 (Nbox Nkern);
ksidx = 1: Nkern
ks = ksvec (ksidx);
bcidx = 1: Nbox
公元前= bcvec (bcidx);
mdl = fitcsvm (Training_Data Training_Class,
“标准化”,真的,
“KernelFunction”,“rbf”,
“BoxConstraint”公元前,,
“KernelScale”、ks);
预测=预测(mdl Test_Data);
= = Test_Class correct_matches = nnz(预测);
善(bcidx ksidx) = correct_matches;
结束
结束
best_score = max(善良(:));
[bcidx, ksidx] =找到(善良= = best_score);
best_bc = bcvec (bcidx);
best_ks = ksvec (ksidx);
best_fits =表(best_bc best_ks,“VariableNames”,{“BoxConstraint”,“KernelScale”});
输出表,best_fits,清单的所有组合BoxConstraint KernelScale一起导致最好的成绩发现,在“分数”(在这段代码中)完全取决于正确的数量匹配。
你将不得不改变善良是如何计算的,如果你想要关心等方面平衡精度的各种类。与当前的代码,如果(例如)100%成功的最大匹配的类,和0%成功的在所有其他的类,然后计算出的善良这段代码可能会高达,即使它可能是可怕的其他类。你计算善可能会更好一些。
6 Kommentare
沃尔特·罗伯森
沃尔特·罗伯森 我2022年7月22日
temp =负载(“train.mat”);
Training_Data1 = temp.finaltrain(:, 1:结束/ 2);
Training_Data2 = temp.finaltrain(:,结束/ 2 + 1:结束);
Training_Data = [Training_Data1;Training_Data2];
Training_Class =[(大小(Training_Data1, 1), 1);2 * 1(大小(Training_Data2, 1), 1)];
temp =负载(“test.mat”);
Test_Data1 = temp.finaltest(:, 1:结束/ 2);
Test_Data2 = temp.finaltest(:,结束/ 2 + 1:结束);
Test_Data = [Test_Data1;Test_Data2];
Test_Class =[(大小(Test_Data1, 1), 1);2 * 1(大小(Test_Data2, 1), 1)];
Nbox = 25;%根据需要改变这些
Nkern = 20;%根据需要改变这些
bcvec = logspace (3 3 Nbox);
ksvec = logspace (3 3 Nkern);
善良= 0 (Nbox Nkern);
世行= waitbar (0,“请稍等,处理内核扩展”);
cleanMe = onCleanup(@()删除(wb));
ksidx = 1: Nkern
waitbar (ksidx / Nkern, wb);
ks = ksvec (ksidx);
bcidx = 1: Nbox
公元前= bcvec (bcidx);
mdl = fitcsvm (Training_Data Training_Class,
“标准化”,真的,
“KernelFunction”,“rbf”,
“BoxConstraint”公元前,,
“KernelScale”、ks);
预测=预测(mdl Test_Data);
= = Test_Class correct_matches = nnz(预测);
善(bcidx ksidx) = correct_matches;
结束
结束
清晰的cleanMe%摆脱waitbar
best_score = max(善良(:));
[bcidx, ksidx] =找到(善良= = best_score);
best_bc = bcvec (bcidx);
best_ks = ksvec (ksidx);
best_fits =表(best_bc best_ks,“VariableNames”,{“BoxConstraint”,“KernelScale”});
best_fits

Melden您西奇,嗯祖茂堂kommentieren。

Weitere Antworten (0)

Kategorien

Mehr祖茂堂描述性统计法登您在帮助中心文件交换

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!

翻译的