问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

SVM几种核函数的对比分析以及SVM算法的优缺点?

发布网友 发布时间:2022-05-03 10:08

我来回答

2个回答

懂视网 时间:2022-05-07 02:09

【原文:http://blog.csdn.net/firefight/article/details/6400060】 为了学习OPENCV SVM分类器, 参考网上的 利用SVM解决2维空间向量的分类问题 实现并改为C代码,仅供参考 环境:OPENCV2.2 VS2008 步骤: 1,生成随机的点,并按一定的空间分布将其归类 2,

【原文:http://blog.csdn.net/firefight/article/details/6400060】

为了学习OPENCV SVM分类器, 参考网上的"利用SVM解决2维空间向量的分类问题"实现并改为C++代码,仅供参考

环境:OPENCV2.2 + VS2008

步骤:
1,生成随机的点,并按一定的空间分布将其归类
2,创建SVM并利用随机点样本进行训练
3,将整个空间按SVM分类结果进行划分,并显示支持向量

[cpp] view plaincopy

  1. #include "stdafx.h"
  2. #include
  3. void drawCross(Mat &img, Point center, Scalar color)
  4. {
  5. int col = center.x > 2 ? center.x : 2;
  6. int row = center.y> 2 ? center.y : 2;
  7. line(img, Point(col -2, row - 2), Point(col + 2, row + 2), color);
  8. line(img, Point(col + 2, row - 2), Point(col - 2, row + 2), color);
  9. }
  10. int newSvmTest(int rows, int cols, int testCount)
  11. {
  12. if(testCount > rows * cols)
  13. return 0;
  14. Mat img = Mat::zeros(rows, cols, CV_8UC3);
  15. Mat testPoint = Mat::zeros(rows, cols, CV_8UC1);
  16. Mat data = Mat::zeros(testCount, 2, CV_32FC1);
  17. Mat res = Mat::zeros(testCount, 1, CV_32SC1);
  18. //Create random test points
  19. for (int i= 0; i< testCount; i++)
  20. {
  21. int row = rand() % rows;
  22. int col = rand() % cols;
  23. if(testPoint.at(row, col) == 0)
  24. {
  25. testPoint.at(row, col) = 1;
  26. data.at(i, 0) = float (col) / cols;
  27. data.at(i, 1) = float (row) / rows;
  28. }
  29. else
  30. {
  31. i--;
  32. continue;
  33. }
  34. if (row > ( 50 * cos(col * CV_PI/ 100) + 200) )
  35. {
  36. drawCross(img, Point(col, row), CV_RGB(255, 0, 0));
  37. res.at(i, 0) = 1;
  38. }
  39. else
  40. {
  41. if (col > 200)
  42. {
  43. drawCross(img, Point(col, row), CV_RGB(0, 255, 0));
  44. res.at(i, 0) = 2;
  45. }
  46. else
  47. {
  48. drawCross(img, Point(col, row), CV_RGB(0, 0, 255));
  49. res.at(i, 0) = 3;
  50. }
  51. }
  52. }
  53. //Show test points
  54. imshow("dst", img);
  55. waitKey(0);
  56. /////////////START SVM TRAINNING//////////////////
  57. CvSVM svm = CvSVM();
  58. CvSVMParams param;
  59. CvTermCriteria criteria;
  60. criteria= cvTermCriteria(CV_TERMCRIT_EPS, 1000, FLT_EPSILON);
  61. /* SVM种类:CvSVM::C_SVC
    Kernel的种类:CvSVM::RBF
    degree:10.0(此次不使用)
    gamma:8.0
    coef0:1.0(此次不使用)
    C:10.0
    nu:0.5(此次不使用)
    p:0.1(此次不使用)
    然后对训练数据正规化处理,并放在CvMat型的数组里。*/
  62. param= CvSVMParams (CvSVM::C_SVC, CvSVM::RBF, 10.0, 8.0, 1.0, 10.0, 0.5, 0.1, NULL, criteria);
  63. svm.train(data, res, Mat(), Mat(), param);
  64. for (int i= 0; i< rows; i++)
  65. {
  66. for (int j= 0; j< cols; j++)
  67. {
  68. Mat m = Mat::zeros(1, 2, CV_32FC1);
  69. m.at(0,0) = float (j) / cols;
  70. m.at(0,1) = float (i) / rows;
  71. float ret = 0.0;
  72. ret = svm.predict(m);
  73. Scalar rcolor;
  74. switch ((int) ret)
  75. {
  76. case 1: rcolor= CV_RGB(100, 0, 0); break;
  77. case 2: rcolor= CV_RGB(0, 100, 0); break;
  78. case 3: rcolor= CV_RGB(0, 0, 100); break;
  79. }
  80. line(img, Point(j,i), Point(j,i), rcolor);
  81. }
  82. }
  83. imshow("dst", img);
  84. waitKey(0);
  85. //Show support vectors
  86. int sv_num= svm.get_support_vector_count();
  87. for (int i= 0; i< sv_num; i++)
  88. {
  89. const float* support = svm.get_support_vector(i);
  90. circle(img, Point((int) (support[0] * cols), (int) (support[1] * rows)), 5, CV_RGB(200, 200, 200));
  91. }
  92. imshow("dst", img);
  93. waitKey(0);
  94. return 0;
  95. }
  96. int main(int argc, char** argv)
  97. {
  98. return newSvmTest(400, 600, 100);
  99. }

学习样本:

分类:

支持向量:

热心网友 时间:2022-05-06 23:17

SVM核函数的作用

SVM核函数是用来解决数据线性不可分而提出的,把数据从源空间映射到目标空间(线性可分空间)。

SVM中核函数的种类

1、线性核

优点:

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
湖北哪些学校有专升本 湖北哪些学校可以报专升本 华为mate7会不会卡 中央集权的本质 秦朝中央集权的实质是什么 秦朝建立专制主义中央集权制度的本质特征是 A改王为皇帝 B建立中央官制... 想生个女儿怎么备孕 怎样备孕生女孩7个方法 备孕怎样做才能生女孩 天津市国税局公务员面试成绩去哪儿查? 苹果手机删除的QQ微信聊天记录怎么恢复 SVM是什么? 支持向量机优缺点? 征信黑了能买车吗 什么原因会导致卵巢早衰的发生 跪求EcShop项目 完整的软件测试用例 初3历史两弹一星指什么 两弹一星什么时候开始研发的? 银行的担保人要起诉我,*的起诉会怎么处理,对我伤害大不大 银行起诉贷款人,担保人,如贷款人不到场怎么办?担保人不服调解怎么办? 担保人被银行起诉了怎么办 沙眼是是怎么样产生的? 海尔冰箱BCD一195KHCX正品和样品机怎么鉴别 海尔样品冰箱充新机卖。骗我们消费者。在此要求海尔退货。没想到海尔内部打太极,售后说是样机,销售说是 我在海尔官网买的冰箱,撕了贴膜,冰箱门有刮痕,还有明显凹凸不平,冰箱里面有污渍。怀疑是样品机, 买了个海尔冰箱 海尔bcd-318wscv 怎么样分辨是不是样品机 海尔冰箱包装上印有样品机是怎么回事字样? DJ打碟一个月大概拿多少钱!我认识的人打碟每个月拿5000左右!而且只有几个小时! DJ一般一个月多少钱 严良艾薇是印度哪部电视剧 支持向量机实现多分类效果怎么样 支持向量机为什么要写成对偶形式 向量机是什么?(不是问支持向量机) 深圳第一职业技术学校,华强职校,博伦职校哪所好? 说出四种分类方法:参数统计方法、非参数统计方法、前馈神经网络、支持向量机各有什么优缺点。 多类支持向量分类 深度学习 相对于支持向量机等分类技术的优缺点 简述作为分类器的感知器有哪些特点 今年刚装的空调三菱电机家的。温度设定在21度运行了三个多小时但最多只能降到27度左右。 如何选择机器学习分类器 三菱电机的空调,制冷效果不好!怎么回事? 支持向量机的参数cost怎么选择 我家三菱电机空调开机运行不制冷但可以出风,运行几分钟后停止,运行 Smartbi的数据挖掘产品有什么优势呢? 新买的三菱电机空调,室内制冷不好,但出风口温度可到达9度,什么原因? 新买的三菱电机空调MSH-DJ12VD制冷慢,效果不好,是什么原因啊? 三菱电机空调不制冷室外机有吱吱的声音吹出来的是热风了 三匹的三菱电机空调为什么在27度不制冷,开到26度就制冷了? 三菱电机空调移机后不制冷,是产品质量问题还是售后 新买的1.5三菱电机空调,室内温度32度,开了半小时但就是温度下不来??什么原因