matlab - 具有 Matlab fitcsvm 的一类和一个特征的 SVM 给出了过度拟合的结果
问题描述
我试图以最简单的方式使用 SVM,对目标类别(1 类)进行分类,其值范围大于某些值,低于其他非目标(0 类)。然而,我拟合的模型太复杂了,而不是给我两个支持向量,导致类别之间的分离很差。我认为该模型的维度太多,因此严重过度拟合。我尝试更改“KernelScale”,但事实并非如此。你知道我怎样才能让模型更简单吗?
n0 = normrnd(0,1,300,1);
n1 = normrnd(1,1,300,1);
n2 = normrnd(2,1,300,1);
val = [n0;n1;n2];
lbl = [zeros(300,1);ones(300,1);zeros(300,1)];
d = fitcsvm(val, cellstr(str(lbl))','KernelScale', 'auto','KernelFunction','gaussian');
pred = ismember(d.predict(val),'1');
figure;
plot([1:300,601:900],val([1:300,601:900]),'.b')
hold on;
plot(301:600,val(301:600),'.r')
plot(find(pred),val(pred),'og')
legend('class 0','class 1','predicted class 1','location','southeast')
解决方案
推荐阅读
- java - Linux环境下命令行运行JUnit测试
- c++ - 在 Linux 中,recv() 有效,但 recvmsg() 无效
- sas - 如何将观察的数量打印到外部文件中 - 选择在哪里应用?
- mysql - SQL 语句问题 - 如何从 2 个链接表中检索数据
- c# - 使用 NReco HTML-to-PDF C# 更改 ToC 字体系列和大小
- python - Python re.compile 针对目录中的所有文件 - 不搜索所有文件
- python - 我们可以在收到所有参数之前使用关键字参数和咖喱吗?
- python - Twilio 与 Django 的 OTP
- php - Dompdf 0.8.3 未在 PHP 7.2 和 CodeIgniter 3 中获取远程 CSS
- amazon-web-services - AWS IOT:即时配置 (JITP),支持 Thing 中的其他属性