Support vector machines 支持向量机,简称SVM

  • 分类算法的目的是学会一个分类函数或者分类模型(分类器),能够把数据库中的数据项映射给定类别中的某一个,从而可以预测未知类别。
  • SVM是一种监督式学习的方法。
  • 支持向量:支持或支撑平面上把两类类别划分开来的超平面的向量点
  • 机:就是算法,机器学习常把一些算法看作是一个机器
  • SVM 其实就是一种很有用的二分类方法。
  • 超平面:

n维空间中, 满足n元一次方程a1x1+a2x2+...+anxn=b的点(x1,x2,...,xn)的全体就叫空间的一张超平面(即广义平面)。

具体到2维空间,就是一条直线,3维空间,就是一个平面。

原理概况:

  1. 线性可分:超平面分割(超平面是分割两类数据的最优的一个平面,下图的红线表示)

  2. 最大化间隔

  3. 线性问题求解:

求解对偶问题得到最优解。(Lagrange 函数的对偶因子)

4. 非线性问题

          

通过选择一个核函数,将数据映射到高维空间(线性可分),从而来解决原有空间的线性不可分。

核方法: 除了支持向量机外,任何把计算表示为数据点的内积的方法,都可以用核方法进行非线性扩展。

例子:

  1. import org.apache.spark.mllib.classification.{SVMModel, SVMWithSGD}
  2. import org.apache.spark.mllib.evaluation.BinaryClassificationMetrics
  3. import org.apache.spark.mllib.util.MLUtils
  4.  
  5. // Load training data in LIBSVM format.
  6. val data = MLUtils.loadLibSVMFile(sc, "data/mllib/sample_libsvm_data.txt")
  7. // Split data into training (60%) and test (40%).
  8. val splits = data.randomSplit(Array(0.6, 0.4), seed = 11L)
  9. val training = splits(0).cache()
  10. val test = splits(1)
  11.  
  12. // Run training algorithm to build the model
  13. val numIterations = 100
  14. val model = SVMWithSGD.train(training, numIterations)
  15.  
  16. // Clear the default threshold.
  17. model.clearThreshold()
  18.  
  19. // Compute raw scores on the test set.
  20. val scoreAndLabels = test.map { point =>
  21. val score = model.predict(point.features)
  22. (score, point.label)
  23. }
  24.  
  25. // Get evaluation metrics.
  26. val metrics = new BinaryClassificationMetrics(scoreAndLabels)
  27. val auROC = metrics.areaUnderROC()
  28. println("Area under ROC = " + auROC)

  

[分类算法] :SVM支持向量机的更多相关文章

  1. SparkMLlib分类算法之支持向量机

    SparkMLlib分类算法之支持向量机 (一),概念 支持向量机(support vector machine)是一种分类算法,通过寻求结构化风险最小来提高学习机泛化能力,实现经验风险和置信范围的最 ...

  2. 分类算法SVM(支持向量机)

    支持向量机(Support Vector Machine ,SVM)的主要思想是:建立一个最优决策超平面,使得该平面两侧距离该平面最近的两类样本之间的距离最大化,从而对分类问题提供良好的泛化能力.对于 ...

  3. 跟我学算法-svm支持向量机算法推导

    Svm算法又称为支持向量机,是一种有监督的学习分类算法,目的是为了找到两个支持点,用来使得平面到达这两个支持点的距离最近. 通俗的说:找到一条直线,使得离该线最近的点与该线的距离最远. 我使用手写进行 ...

  4. 机器学习 - 算法 - SVM 支持向量机

    SVM 原理引入 支持向量机( SVM,Support Vector Machine ) 背景 2012年前较为火热, 但是在12年后被神经网络逼宫, 由于应用场景以及应用算法的不同, SVM还是需要 ...

  5. 跟我学算法-SVM(支持向量机)

    支持向量机是一个点离决策边界越近,离决策面越远的问题 求解的过程主要是通过拉格朗日乘子法,来求解带约束的优化问题,在问题中涉及两个方面,一个是线性的,一个是非线性的,非线性的有 我们平时比较常见的高斯 ...

  6. 机器学习 - 算法 - SVM 支持向量机 Py 实现 / 人脸识别案例

    SVM 代码实现展示 相关模块引入 %matplotlib inline import numpy as np import matplotlib.pyplot as plt from scipy i ...

  7. 【机器学习算法-python实现】svm支持向量机(1)—理论知识介绍

    (转载请注明出处:http://blog.csdn.net/buptgshengod) 1.背景      强烈推荐阅读(http://www.cnblogs.com/jerrylead/archiv ...

  8. SVM(支持向量机)算法

    第一步.初步了解SVM 1.0.什么是支持向量机SVM 要明白什么是SVM,便得从分类说起. 分类作为数据挖掘领域中一项非常重要的任务,它的目的是学会一个分类函数或分类模型(或者叫做分类器),而支持向 ...

  9. 各常用分类算法的优缺点总结:DT/ANN/KNN/SVM/GA/Bayes/Adaboosting/Rocchio

    1决策树(Decision Trees)的优缺点 决策树的优点: 一. 决策树易于理解和解释.人们在通过解释后都有能力去理解决策树所表达的意义. 二. 对于决策树,数据的准备往往是简单或者是不必要的. ...

随机推荐

  1. tomcat相关配置技巧梳理

    tomcat常用架构:1)nginx+tomcat:即前端放一台nginx,然后通过nginx反向代理到tomcat端口(可参考:分享一例测试环境下nginx+tomcat的视频业务部署记录)2)to ...

  2. Kali linux渗透测试常用工具汇总2-渗透攻击

    渗透攻击的思路一般是扫描漏洞,然后利用不同的漏洞,才有针对的渗透攻击. 漏洞扫描的工具有Nessus,该工具可同时在本地或远端遥控,对系统的漏洞分析扫描.Nessus通过新建扫描策略,并添加对应的插件 ...

  3. 监听grid行点击事件

  4. 【转】【MySQL】mysql 通过bin-log恢复数据方法详解

    mysql中bin-log在mysql默认状态下是没有打开的,我们要先打开mysql 开启bin-log功能,然后再通过备份的bin-log进行数据库恢复了. 具体的操作是通过mysqlbinlog这 ...

  5. 使用spring boot+mybatis+mysql 构建RESTful Service

    开发目标 开发两个RESTful Service Method Url Description GET /article/findAll POST /article/insert 主要使用到的技术 j ...

  6. 文本比较算法Ⅱ——Needleman/Wunsch算法

    在"文本比较算法Ⅰ--LD算法"中介绍了基于编辑距离的文本比较算法--LD算法. 本文介绍基于最长公共子串的文本比较算法--Needleman/Wunsch算法. 还是以实例说明: ...

  7. Ionic实战四:ionic 即时通讯_ionic仿雅虎邮箱

    此产品是一款Ionic版微博.微信.朋友圈效果(微博.微信.聊天列表.聊天窗口.个人界面.编辑个人信息等)购买后二次开发方便快捷.    

  8. Theano3.5-练习之深度卷积网络

    来源:http://deeplearning.net/tutorial/lenet.html#lenet Convolutional Neural Networks (LeNet) note:这部分假 ...

  9. List<T>与Dictionary<string,T>频繁检索的性能差距

    一直对LINQ简洁高效的语法青睐有加,对于经常和资料库,SQL语法打交道的C#开发者来说,LINQ无疑是一个非常不错的选择,当要在List<T>(T为一个普通对象)集合中查找满足某些条件的 ...

  10. 深入理解 cocos2d-x 坐标系

    首先对于初学的,带大家认识 cocos2d-x 中坐标系的几个概念,参考 http://blog.csdn.net/tskyfree/article/details/8292544.其他的往下看. 弄 ...