机器学习算法SVM

  • E1_577678
    了解作者
  • 9.5KB
    文件大小
  • rar
    文件格式
  • 0
    收藏次数
  • VIP专享
    资源类型
  • 0
    下载次数
  • 2022-06-04 12:42
    上传日期
该算法简单的实现了SVM算法的基本原理,利于读者初步理解 学习SVM算法
【12】支持向量机之SVM引导.rar
  • 【12】支持向量机之SVM引导
  • 12_支持向量机之SVM引导
  • result.png
    2.9KB
  • 12_SupportVectorMachines.cpp
    3.9KB
  • 12_支持向量机之SVM引导.vcxproj.filters
    962B
  • 12_支持向量机之SVM引导.vcxproj.user
    143B
  • 12_支持向量机之SVM引导.vcxproj
    3.9KB
  • 12_支持向量机之SVM引导.sln
    957B
  • 12_支持向量机之SVM引导.suo
    17KB
内容介绍
//--------------------------------------【程序说明】------------------------------------------- // 程序说明:《OpenCV3编程入门》OpenCV2版书本配套示例程序12 // 程序描述:来自OpenCV安装目录下Samples文件夹中的官方示例程序-支持向量机SVM引导 // 测试所用操作系统: Windows 7 64bit // 测试所用IDE版本:Visual Studio 2010 // 测试所用OpenCV版本: 2.4.9 // 2014年11月 Revised by @浅墨_毛星云 //------------------------------------------------------------------------------------------------ //---------------------------------【头文件、命名空间包含部分】---------------------------- // 描述:包含程序所使用的头文件和命名空间 //------------------------------------------------------------------------------------------------- #include <opencv2/core/core.hpp> #include <opencv2/highgui/highgui.hpp> #include <opencv2/ml/ml.hpp> using namespace cv; //--------------------------------【help( )函数】---------------------------------------------- // 描述:输出帮助信息 //------------------------------------------------------------------------------------------------- //-----------------------------------【ShowHelpText( )函数】---------------------------------- // 描述:输出一些帮助信息 //---------------------------------------------------------------------------------------------- void ShowHelpText() { //输出欢迎信息和OpenCV版本 printf("\n\n\t\t\t非常感谢购买《OpenCV3编程入门》一书!\n"); printf("\n\n\t\t\t此为本书OpenCV2版的第12个配套示例程序\n"); printf("\n\n\t\t\t 当前使用的OpenCV版本为:" CV_VERSION ); printf("\n\n ----------------------------------------------------------------------------\n"); } //-----------------------------------【main( )函数】-------------------------------------------- // 描述:控制台应用程序的入口函数,我们的程序从这里开始 //------------------------------------------------------------------------------------------------- int main() { // 视觉表达数据的设置(Data for visual representation) int width = 512, height = 512; Mat image = Mat::zeros(height, width, CV_8UC3); //建立训练数据( Set up training data) float labels[4] = {1.0, -1.0, -1.0, -1.0}; Mat labelsMat(3, 1, CV_32FC1, labels); float trainingData[4][2] = { {501, 10}, {255, 10}, {501, 255}, {10, 501} }; Mat trainingDataMat(3, 2, CV_32FC1, trainingData); ShowHelpText(); //设置支持向量机的参数(Set up SVM's parameters) CvSVMParams params; params.svm_type = CvSVM::C_SVC; params.kernel_type = CvSVM::LINEAR; params.term_crit = cvTermCriteria(CV_TERMCRIT_ITER, 100, 1e-6); // 训练支持向量机(Train the SVM) CvSVM SVM; SVM.train(trainingDataMat, labelsMat, Mat(), Mat(), params); Vec3b green(0,255,0), blue (255,0,0); //显示由SVM给出的决定区域 (Show the decision regions given by the SVM) for (int i = 0; i < image.rows; ++i) for (int j = 0; j < image.cols; ++j) { Mat sampleMat = (Mat_<float>(1,2) << i,j); float response = SVM.predict(sampleMat); if (response == 1) image.at<Vec3b>(j, i) = green; else if (response == -1) image.at<Vec3b>(j, i) = blue; } //显示训练数据 (Show the training data) int thickness = -1; int lineType = 8; circle( image, Point(501, 10), 5, Scalar( 0, 0, 0), thickness, lineType); circle( image, Point(255, 10), 5, Scalar(255, 255, 255), thickness, lineType); circle( image, Point(501, 255), 5, Scalar(255, 255, 255), thickness, lineType); circle( image, Point( 10, 501), 5, Scalar(255, 255, 255), thickness, lineType); //显示支持向量 (Show support vectors) thickness = 2; lineType = 8; int c = SVM.get_support_vector_count(); for (int i = 0; i < c; ++i) { const float* v = SVM.get_support_vector(i); circle( image, Point( (int) v[0], (int) v[1]), 6, Scalar(128, 128, 128), thickness, lineType); } imwrite("result.png", image); // 保存图像 imshow("SVM Simple Example", image); // 显示图像 waitKey(0); }
评论
    相关推荐
    • 机器学习算法
      机器学习算法python实现,,,, 机器学习算法。。。。。
    • NearestNeighbours:机器学习算法
      机器学习算法 输入包含两个文件。 第一个文件包含交叉验证信息,第二个文件包含数据。 第一个档案 每行中的数字用单个空格分隔。 第一个数字是k折交叉验证方案中使用的k折的k。 第二个数字是m,即示例数。 第三个...
    • 基础机器学习算法
      机器学习算法应用套路:数据处理(采集+去噪),模型训练(特征+模型),模型评估(MSE/F1Score/AUC)、模型应用
    • 机器学习算法之PCA
      机器学习算法,PCA算法,故障检测算法。可运行。机器学习算法,PCA算法,故障检测算法。可运行
    • 机器学习算法
      整合了聚类,分类,最优化,最短距离,蚁群算法等其它经典算法。完整的python处理程序。
    • 机器学习算法基础
      30个小时知识无盲区课程,覆盖十多个行业应用。
    • 机器学习算法统一
      机器学习算法统一
    • 机器学习算法工具箱
      机器学习算法工具箱,包括各种机器学习的算法(mstlab).
    • 机器学习算法
      用python3完成线性回归、逻辑回归的小练习,用到sklearn库中linear_model里面的函数
    • SIM800C_MQTT.rar
      使用SIM800C模块,使用MQTT协议,连接中国移动onenet平台,能实现数据的订阅、发布、存储等