热门标签 | 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/







推荐阅读
  • AI炼金术:KNN分类器的构建与应用
    本文介绍了如何使用Python及其相关库(如NumPy、scikit-learn和matplotlib)构建KNN分类器模型。通过详细的数据准备、模型训练及新样本预测的过程,展示KNN算法的实际操作步骤。 ... [详细]
  • 在OpenCV 3.1.0中实现SIFT与SURF特征检测
    本文介绍如何在OpenCV 3.1.0版本中通过Python 2.7环境使用SIFT和SURF算法进行图像特征点检测。由于这些高级功能在OpenCV 3.0.0及更高版本中被移至额外的contrib模块,因此需要特别处理才能正常使用。 ... [详细]
  • 本文介绍如何使用OpenCV和线性支持向量机(SVM)模型来开发一个简单的人脸识别系统,特别关注在只有一个用户数据集时的处理方法。 ... [详细]
  • 在机器学习领域,深入探讨了概率论与数理统计的基础知识,特别是这些理论在数据挖掘中的应用。文章重点分析了偏差(Bias)与方差(Variance)之间的平衡问题,强调了方差反映了不同训练模型之间的差异,例如在K折交叉验证中,不同模型之间的性能差异显著。此外,还讨论了如何通过优化模型选择和参数调整来有效控制这一平衡,以提高模型的泛化能力。 ... [详细]
  • 探索聚类分析中的K-Means与DBSCAN算法及其应用
    聚类分析是一种用于解决样本或特征分类问题的统计分析方法,也是数据挖掘领域的重要算法之一。本文主要探讨了K-Means和DBSCAN两种聚类算法的原理及其应用场景。K-Means算法通过迭代优化簇中心来实现数据点的划分,适用于球形分布的数据集;而DBSCAN算法则基于密度进行聚类,能够有效识别任意形状的簇,并且对噪声数据具有较好的鲁棒性。通过对这两种算法的对比分析,本文旨在为实际应用中选择合适的聚类方法提供参考。 ... [详细]
  • 关于进程的复习:#管道#数据的共享Managerdictlist#进程池#cpu个数1#retmap(func,iterable)#异步自带close和join#所有 ... [详细]
  • 机器学习算法:SVM(支持向量机)
    SVM算法(SupportVectorMachine,支持向量机)的核心思想有2点:1、如果数据线性可分,那么基于最大间隔的方式来确定超平面,以确保全局最优, ... [详细]
  • 如何高效启动大数据应用之旅?
    在前一篇文章中,我探讨了大数据的定义及其与数据挖掘的区别。本文将重点介绍如何高效启动大数据应用项目,涵盖关键步骤和最佳实践,帮助读者快速踏上大数据之旅。 ... [详细]
  • Python与R语言在功能和应用场景上各有优势。尽管R语言在统计分析和数据可视化方面具有更强的专业性,但Python作为一种通用编程语言,适用于更广泛的领域,包括Web开发、自动化脚本和机器学习等。对于初学者而言,Python的学习曲线更为平缓,上手更加容易。此外,Python拥有庞大的社区支持和丰富的第三方库,使其在实际应用中更具灵活性和扩展性。 ... [详细]
  • Matplotlib在数据科学中的可视化应用与技术解析
    Matplotlib和数据可视化 数据的处理、分析和可视化已经成为Python近年来最为重要的应用领域之一,其中数据的可视化指的是将数据呈现为漂亮的统计图表ÿ ... [详细]
  • 吴裕雄数据挖掘实战案例(13):GBDT模型的深入应用与解析
    #导入第三方包importpandasaspdimportmatplotlib.pyplotasplt#读入数据defaultpd.read_excel(r&amp;# ... [详细]
  • 本文介绍了多维缩放(MDS)技术,这是一种将高维数据映射到低维空间的方法,通过保持原始数据间的关系,以便于可视化和分析。文章详细描述了MDS的原理和实现过程,并提供了Python代码示例。 ... [详细]
  • 本文通过复旦大学自然语言处理课程中的一个具体案例,详细解析了中文词汇分割技术的实现方法。该案例利用Java编程语言,结合词典和算法模型,展示了如何高效地进行中文文本的词汇分割,为相关研究和应用提供了宝贵的参考。 ... [详细]
  • 第五章5.4安全设备防火墙防火墙是网络关联的重要设备,用于控制网络之间的语言。外部网络用户的访问必须先经过安全策略过滤,而内部网络用户对外部网络的访 ... [详细]
  • 第三届人工智能、网络与信息技术国际学术会议(AINIT 2022)
    20223rdInternationalSeminaronArtificialIntelligence,NetworkingandInformationTechnology第三届 ... [详细]
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社区 版权所有