libsvm的移植(CC++版本).doc_第1页
libsvm的移植(CC++版本).doc_第2页
libsvm的移植(CC++版本).doc_第3页
libsvm的移植(CC++版本).doc_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

libsvm的移植(C/C+版本)现在先写一个测试libsvm的简单程序,程序参考了libsvm自带的svm-toy。现在要解决的问题是一个二类分类问题。样本总共有120个,每个样本只有两个特征。首先划分好训练集与测试集。训练集取用其中的80个(正、负样本各40),余下的则作为测试集。数据分别存入train.txt和test.txt中。1.2. #include 3. #include 4. #include 5. #include svm.h /包涵本目录下的SVM.H头文件6. #include 7. #include iostream.h8. 9. using std:ifstream;10. void main()11. 12. /*13. struct svm_problem14. 15. int l;16. double *y;17. struct svm_node *x;18. ;19. struct svm_node20. 21. int index;22. double value;23. ;24. */25. ifstream inFile;26. ifstream inFile1;27. svm_problem prob; /建立SVM数据28. prob.l=80; /80个样本,前40个为正样本,29. double d40;30. int probfeature=2; /样本特征维数31. prob.y=new doubleprob.l;32. svm_parameter param;33. 34. /svm参数设置35. param.svm_type = C_SVC;36. param.kernel_type = RBF;37. param.degree = 3;38. param.gamma = 0.0001;39. param.coef0 = 0;40. param.nu = 0.5;41. param.cache_size = 100;42. param.C = 10;43. param.eps = 1e-5;44. param.p = 0.1;45. param.shrinking = 1;46. bability = 0;47. param.nr_weight = 0;48. param.weight_label = NULL;49. param.weight = NULL;50.51. 52. /分类53. if(param.gamma = 0) param.gamma = 0.5; /gamma forpoly/rbf/sigmoid54. svm_node *x_space = new svm_node(probfeature+1) * prob.l; /样本特征存储空间55. prob.x = new svm_node *prob.l; /没一个X指向一个样本56. /数据填充开始57. inFile.open(train.txt); /打开训练数据文件58. 59. for(int i=0;iprob.l;i+)60. 61. /*/62. float fvalue;63. for (int j=0;jfvalue;66. if(fvalue!=0.0)67. 68. x_space(probfeature+1)*i+j.index=j+1;69. x_space(probfeature+1)*i+j.value=fvalue;70. 71. 72. x_space(probfeature+1)*i+probfeature.index=-1;73. prob.xi=&x_space(probfeature+1)*i;74. if (i40) /类别标签75. prob.yi=1;76. else77. prob.yi=-1;78. 79. inFile.close(); /关闭文件80.81. /数据填充结束82. / build model & classify83. svm_model *model = svm_train(&prob, ¶m); /开始训练84. int test_num=40;85. inFile1.open(test.txt);86. svm_node x3; /定义一个测试样本87. 88. for(int i1=0;i1test_num;i1+)89. 90. float fvalue;91. for (int j=0;jfvalue;94. if(fvalue!=0.0)95. 96. xj.index=j+1;97. xj.value=fvalue;98. 99. 100. x2.index=-1;101. di1=svm_predict(model,x);102. 103. inFile1.close();104. svm_destroy_model(model);105. delete x_space;106. delete prob.x;107. dele

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论