热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

使用Orange进行数据挖掘之分类(4)SVM

SVM基本概念简单的说SVM是一种对线性合非线性数据进行分类的方法。以二维数据为例,中间的直线将数据分为两部分,分别用实心的圆点和空心的圆点表示。对

SVM基本概念

简单的说SVM是一种对线性合非线性数据进行分类的方法。

以二维数据为例,中间的直线将数据分为两部分,分别用实心的圆点和空心的圆点表示。

对于上边的数据可能有很多直线将数据区分开,如下

SVM通过搜索最大边缘超平面来选择最合适的超平面,因为具有较大边缘的超平面对于未来的数据分组分类更好的准确性。

分离超平面表示为:

W*X+b =0

位于超平面上方的点满足 W*X&#43;b >0,位于超平面下方的点满足 W*X&#43;b <0,

可以定义分离超平面的边缘为&#xff1a;W*X&#43;b &#61;1 和W*X&#43;b &#61;-1&#xff1b;边缘之间的距离可以推到为 2/|w|。

对于非线性可分的情况&#xff0c;需要按照如下两步扩展SVM&#xff1a;

  1. 用非线性映射把原始数据据变换到高纬空间
  2. 在新的空间搜索最大边缘超平面

Orange中的SVM

Orange中的SVM基于LibSVM LIBLINEAR 这两个库。提供了三个学习算法


  • SVMLearner

  • SVMLearnerEasy

  • LinearSVMLearner

下面的例子使用了这三种算法&#xff1a;

from Orange import data
from Orange.classification import svmiris &#61; data.Table("iris")
svm_easy &#61; svm.SVMLearnerEasy(iris,name&#61;"svm easy", folds&#61;3)
svm_normal &#61; svm.SVMLearner(iris,name&#61;"svm")
svm_linear &#61;svm.LinearSVMLearner(iris,name&#61;"svm linear")for i in iris[:5]:print svm_normal(i),svm_easy(i),svm_linear(i),i.getclass()

运行结果如下&#xff1a;

Iris-virginica Iris-virginica Iris-virginica Iris-virginica
Iris-virginica Iris-virginica Iris-virginica Iris-virginica
Iris-virginica Iris-virginica Iris-virginica Iris-virginica
Iris-virginica Iris-virginica Iris-virginica Iris-virginica
Iris-virginica Iris-virginica Iris-virginica Iris-virginica


下图用可视化的方式比较了svm和其它分类算法结果&#xff1a;




参考资料

数据挖掘&#xff1a;概念与技术 http://book.douban.com/subject/2038599/

数据挖掘导论&#xff1a;http://book.douban.com/subject/5377669/







推荐阅读
  • GetWindowLong函数
    今天在看一个代码里头写了GetWindowLong(hwnd,0),我当时就有点费解,靠,上网搜索函数原型说明,死活找不到第 ... [详细]
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • 使用Ubuntu中的Python获取浏览器历史记录原文: ... [详细]
  • sklearn数据集库中的常用数据集类型介绍
    本文介绍了sklearn数据集库中常用的数据集类型,包括玩具数据集和样本生成器。其中详细介绍了波士顿房价数据集,包含了波士顿506处房屋的13种不同特征以及房屋价格,适用于回归任务。 ... [详细]
  • 本文介绍了如何使用python从列表中删除所有的零,并将结果以列表形式输出,同时提供了示例格式。 ... [详细]
  • 本文介绍了Python爬虫技术基础篇面向对象高级编程(中)中的多重继承概念。通过继承,子类可以扩展父类的功能。文章以动物类层次的设计为例,讨论了按照不同分类方式设计类层次的复杂性和多重继承的优势。最后给出了哺乳动物和鸟类的设计示例,以及能跑、能飞、宠物类和非宠物类的增加对类数量的影响。 ... [详细]
  • 超级简单加解密工具的方案和功能
    本文介绍了一个超级简单的加解密工具的方案和功能。该工具可以读取文件头,并根据特定长度进行加密,加密后将加密部分写入源文件。同时,该工具也支持解密操作。加密和解密过程是可逆的。本文还提到了一些相关的功能和使用方法,并给出了Python代码示例。 ... [详细]
  • YOLOv7基于自己的数据集从零构建模型完整训练、推理计算超详细教程
    本文介绍了关于人工智能、神经网络和深度学习的知识点,并提供了YOLOv7基于自己的数据集从零构建模型完整训练、推理计算的详细教程。文章还提到了郑州最低生活保障的话题。对于从事目标检测任务的人来说,YOLO是一个熟悉的模型。文章还提到了yolov4和yolov6的相关内容,以及选择模型的优化思路。 ... [详细]
  • Spring源码解密之默认标签的解析方式分析
    本文分析了Spring源码解密中默认标签的解析方式。通过对命名空间的判断,区分默认命名空间和自定义命名空间,并采用不同的解析方式。其中,bean标签的解析最为复杂和重要。 ... [详细]
  • Linux重启网络命令实例及关机和重启示例教程
    本文介绍了Linux系统中重启网络命令的实例,以及使用不同方式关机和重启系统的示例教程。包括使用图形界面和控制台访问系统的方法,以及使用shutdown命令进行系统关机和重启的句法和用法。 ... [详细]
  • 开发笔记:加密&json&StringIO模块&BytesIO模块
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了加密&json&StringIO模块&BytesIO模块相关的知识,希望对你有一定的参考价值。一、加密加密 ... [详细]
  • Java容器中的compareto方法排序原理解析
    本文从源码解析Java容器中的compareto方法的排序原理,讲解了在使用数组存储数据时的限制以及存储效率的问题。同时提到了Redis的五大数据结构和list、set等知识点,回忆了作者大学时代的Java学习经历。文章以作者做的思维导图作为目录,展示了整个讲解过程。 ... [详细]
  • 本文讨论了一个关于cuowu类的问题,作者在使用cuowu类时遇到了错误提示和使用AdjustmentListener的问题。文章提供了16个解决方案,并给出了两个可能导致错误的原因。 ... [详细]
  • importjava.util.ArrayList;publicclassPageIndex{privateintpageSize;每页要显示的行privateintpageNum ... [详细]
  • 浏览器中的异常检测算法及其在深度学习中的应用
    本文介绍了在浏览器中进行异常检测的算法,包括统计学方法和机器学习方法,并探讨了异常检测在深度学习中的应用。异常检测在金融领域的信用卡欺诈、企业安全领域的非法入侵、IT运维中的设备维护时间点预测等方面具有广泛的应用。通过使用TensorFlow.js进行异常检测,可以实现对单变量和多变量异常的检测。统计学方法通过估计数据的分布概率来计算数据点的异常概率,而机器学习方法则通过训练数据来建立异常检测模型。 ... [详细]
author-avatar
xillb_486
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有