`
grunt1223
  • 浏览: 419792 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

我的数学之美(三) —— 使用支持向量机进行预测

阅读更多
现实生活中充满着预测问题,即对未知世界的大胆猜测。我们基于什么根据来推测呢?最多的当然是已有的经验,即之前所做的一些已知结果的推测,这就是所谓的“有监督的学习”。

这里,我举一个最简单的例子,就是公务员考试中那种最常见的数字推理题:1,4,9,16,?

当然,你一眼就看出了这是一个平方序列,下一个数字一定是25,但是,这是唯一的答案吗?

应该说,平方序列只是一个模型,比方说,我们可以假定这样一个多项式模型,
引用
a * x * x * x + b * x * x + c * x + d

其中a、b、c、d为未知数,而x分别为1、2、3、4,采用初中数学所学的待定系数法,就可以算得abcd的值,从而得到符合上述规律一个模型。对于上面我给出的多项式模型,由于我们有四个未知数和四个方程,因此解是唯一的。但是如果我们变换模型的样式(比如说采用更高阶或低阶或是指数或是对数的模型),总的来说,其解是无限的。

如果上述例子还不够有说服力的话,请看下面的例子:



这是一个回归的例子,即根据已有的数据点得出合理的模型,并预测新数据点的问题。由上图看出,我们可以使用sin函数完美拟合所有的已知点,但是,得出的模型却和真实函数大相径庭,预测出来的结果也肯定是有问题的。

那么,既然存在着多种可能的解释,我们如何来确保,所选用的模型一定是正确的呢?很遗憾,不存在一定的答案,除非模型是已知的,但如果是这样的话,有何必需要预测呢?

两个可能的努力方向,一是提高样本数量,这是显而易见的,可供训练的数量越多,模型一定是越可靠。另一点是降低模型的复杂度(VC维),这一点或许比较难以理解,但是我们可以这样去思考,越是复杂的模型或者分类器,输入的变化引起输出的波动也就越大。

下面再来细谈一下VC维。考虑平面内的N个点,需要进行简单的“是或否”的分类,总共会有2的N次方种划分方式。对于任何一种分类模型来说,其N的最大值就是该模型的VC维。例如对于直线来说,其VC维等于3,可以如下证明:假设平面内有四个点,而直线无法将处于对角的点两两分开。

接下来谈谈SVM,通常来说,它采用直线模型将数据分类,并且只有处于分界线附近的支撑向量才会对最后的分类结果又贡献,因此特别适合于处理高维向量分类问题(比如说文本分类等等)。



但是,现实生活中,许多复杂的问题并不是线性可分的。为了解决这类问题,SVM引入了核函数(kernal)的理念,将输入集映射到更高维度的另一个空间。在原始空间不可分的问题,总会存在另一个空间其实线性可分的,如图所示:



此外,在SVM的学习过程中,会遇到惩罚因子这个参数,通常是用来处理噪声问题的。现实的数据当中,往往会存在少量的噪声问题,我们与其寻找一个相当复杂的kernal,不如在训练过程中允许一定的误差,这样往往会简化问题的处理。

最后,这里给出一个使用OPENCV-SVM实现平面点预测的例子:



其中白色圈圈是支撑向量,十字点为训练数据,着色区域为训练器计算出来的区域。
  • 大小: 39.2 KB
  • 大小: 35.4 KB
  • 大小: 31.8 KB
  • 大小: 58.1 KB
8
1
分享到:
评论
2 楼 grunt1223 2011-04-14  
谢谢你的回复
恩,的确,sin函数是一个较为极端的例子
我的观点是:
1、是否覆盖到拐点,目前也没有好的方法,只能提高采样数目
2、在采样数目确定的情况下,选择VC维度小的模型,有利于降低风险;sin函数的那个例子,想说明的是,也许我们用很复杂的模型完美拟合出实验数据,但在真实运作时往往很糟糕
1 楼 ppgunjack 2011-04-14  
sin函数如果提供了极值拐点采样则不会出现混淆
我觉得关键不在采样数目,而在曲率变化处是否被采样点覆盖,当然采样数目的提高自然会提高这个的概率
了解模型大致情况应该是必要的,如果没覆盖到拐点情况,即使最简单的分段线性函数也不可能单凭数目获得准确拟合

相关推荐

    基于支持向量机的大型水泵性能预测 (2008年)

    为了预测大型水泵在运行中的性能,采用了统计学习理论中的核心算法——支持向量机。针对某一全调节轴流水泵,建立了水泵扬程计算模型和效率计算模型,并绘制出了不同叶片角度时的性能曲线。结果表明,基于支持向量机...

    基于分类算法的糖尿病疾病预测模型-研究论文

    使用 Python 编程语言,结合五种分类算法应用特征选择技术:支持向量机 (SVM)、多层感知器 (MLP)、逻辑回归、随机森林和决策树。 本文的目的是比较不同的分类算法,以便更准确地预测患者的糖尿病。 应用 K 折交叉...

    30个数学建模智能算法及MATLAB程序代码.zip

    chapter29支持向量机的回归拟合——混凝土抗压强度预测.rar chapter2基于遗传算法和非线性规划的函数寻优算法 .rar chapter30极限学习机的回归拟合及分类.rar chapter3基于遗传算法的BP神经网络优化算法 .rar ...

    集体智慧编程中文版

    前言 第1章 集体智慧导言 什么是集体智慧 什么是机器学习 机器...算法总结 贝叶斯分类器 决策树分类器 神经网络 支持向量机 k-最近邻 聚类 多维缩放 非负矩阵因式分解 优化 附录A:第三方函数库 附录B:数学公式 索引

    Excel公式与函数大辞典.宋翔(带书签高清文字版).pdf

    本书从函数功能、函数格式、参数说明、注意事项、Excel 版本提醒、案例应用、交叉参考7 个方面,全面、细致地介绍了Excel 2016/2013/2010/2007/2003 中公式和函数的使用方法、实际应用和操作技巧。最后3 章还将公式...

    集体智慧编程.[美]西格兰(带详细书签) PDF 下载

    支持向量机 215 使用 LIBSVM 217 基于 Facebook 的匹配 219 第10章 寻找独立特征 226 搜集一组新闻 227 先前的方法 231 非负矩阵因式分解 232 结果呈现 240 利用股票市场的数据 243 第11章 智能进化 250 ...

    NLP大作业-词向量模型+源代码+文档说明+pdf

    1、资源内容:NLP大作业——词向量模型+源代码+文档说明 2、代码特点:内含运行结果,不会运行可私信,参数化编程、参数可方便更改、代码编程思路清晰、注释明细,都经过测试运行成功,功能ok的情况下才上传的。 3、...

    围岩松动圈理论计算方法的评述与展望

    数学模型法主要是基于对松动圈影响因素的研究,常采用神经网络模型和支持向量机模型,以及未确知聚类模型和多元回归函数拟合等,其关键在于松动圈影响因素的选择和建模选型。松动圈影响因素选择的重点在于次要因素,...

    数学建模方法:蚁群算法

    基于蚁群智能和支持向量机的人脸性别分类方法 蚁群算法在啤酒发酵控制优化中的应用 一种基于时延信息的多QoS快速自适应路由算法 蚁群算法中参数α、β、ρ设置的研究——以TSP问题为例 基于人工蚁群优化的矢量...

    围岩松动圈理论计算方法的评述与展望-论文

    数学模型法主要是基于对松动圈影响因素的研究,常采用神经网络模型和支持向量机模型,以及未确知聚类模型和多元回归函数拟合等,其关键在于松动圈影响因素的选择和建模选型。松动圈影响因素选择的重点在于次要因素,而...

    颜色分类leetcode-DS-ML-Books:数据科学、机器学习、数据挖掘和统计学习书籍

    许多主题包括神经网络、支持向量机、分类树和提升——这是任何书中对这个主题的第一次综合处理。 R 中应用统计学习简介 作者:Gareth James、Daniela Witten、Trevor Hastie 和 Robert Tibshirani 本书介绍了统计...

    算法:算法C语言实现 第1-4部分 基础知识、数据结构、排序及搜索

    本书可作为高等院校计算机相关专业算法与数据结构课程的教材和补充读物,也可供自学之用。 目录 出版者的话 译者序 前言 第一部分 基础知识  第1章 引言  1.1 算法  1.2 典型问题——连通性  1.3 合并一...

Global site tag (gtag.js) - Google Analytics