libsvm处理多分类的问题】的更多相关文章

@Hcy(黄灿奕) 文本分类,首先它是分类问题,应该对应着分类过程的两个重要的步骤,一个是使用训练数据集训练分类器,另一个就是使用测试数据集来评价分类器的分类精度.然而,作为文本分类,它还具有文本这样的约束,所以对于文本来说,需要额外的处理过程,我们结合使用libsvm从宏观上总结一下,基于libsvm实现文本分类实现的基本过程,如下所示: 选择文本训练数据集和测试数据集:训练集和测试集都是类标签已知的: 训练集文本预处理:这里主要包括分词.去停用词.建立词袋模型(倒排表): 选择文本分类使用的…
SVM是一个二分类器,当遇到多类别的时候,一般采取如下两种策略. a.一对多法(one-versus-rest,简称1-v-r SVMs).训练时依次把某个类别的样本归为一类,其他剩余的样本归为另一类,这样k个类别的样本就构造出了k个SVM.分类时将未知样本分类为具有最大分类函数值的那类. b.一对一法(one-versus-one,简称1-v-1 SVMs).其做法是在任意两类样本之间设计一个SVM,因此k个类别的样本就需要设计k(k-1)/2个SVM.当对一个未知样本进行分类时,最后得 票最…
The 'svmtrain' function returns a model which can be used for futureprediction.  It is a structure and is organized as [Parameters, nr_class,totalSV, rho, Label, ProbA, ProbB, nSV, sv_coef, SVs]: -Parameters: parameters        -nr_class: number of cl…
    本篇博客转自 http://www.cppblog.com/guijie/archive/2013/09/05/169034.html     在电脑文件夹E:\other\matlab 2007a\work\SVM\libsvm-mat-3.0-1 ,这个是已经编译好的,到64位机上要重新编译(不要利用别人传的,因为可能改过SVM程序,例如Libing wang他改过其中程序,最原始版本:E:\other\matlab 2007a\work\SVM\libsvm-mat-3.0-1.z…
对于多分类问题以及核函数的选取,以下经验规则可以借鉴: 如果如果特征数远远大于样本数的情况下,使用线性核就可以了. 如果特征数和样本数都很大,例如文档分类,一般使用线性核, LIBLINEAR比LIBSVM速度要快很多. 如果特征数远小于样本数,这种情况一般使用RBF.但是如果一定要用线性核,则选择LIBLINEAR较好,而且使用-s 2选项 原文: http://orangeprince.info/2014/11/23/libsvm-liblinear-2/ http://orangeprin…
支持向量机(support vector machine,SVM)是机器学习中一种流行的学习算法,在分类与回归分析中发挥着重要作用.基于SVM算法开发的工具箱有很多种,下面我们要安装的是十分受欢迎的libsvm工具箱. libsvm简介 LIBSVM 是台湾大学林智仁(Lin Chih-Jen)副教授等开发设计的一个简单.易于使用和快速有效的 SVM 模式识别与回归的软件包,它不仅提供了编译好的可在 Windows 系列系统的执行文件,还提供了源代码,方便改进.修改以及在其它操作系统上应用: 该…
使用libSvm实现文本分类的基本过程,此文参考 使用libsvm实现文本分类 对前期数据准备及后续的分类测试进行了验证,同时对文中作者的分词组件修改成hanLP分词,对数字进行过滤,仅保留长度大于1的词进行处理. 转上文作者写的分类流程: 选择文本训练数据集和测试数据集:训练集和测试集都是类标签已知的: 训练集文本预处理:这里主要包括分词.去停用词.建立词袋模型(倒排表): 选择文本分类使用的特征向量(词向量):最终的目标是使得最终选出的特征向量在多个类别之间具有一定的类别区分度,可以使用相关…
Libliner 中的-s 参数选择:primal 和dual LIBLINEAR的优化算法主要分为两大类,即求解原问题(primal problem)和对偶问题(dual problem).求解原问题使用的是TRON的优化算法,对偶问题使用的是Coordinate Descent优化算法.总的来说,两个算法的优化效率都较高,但还是有各自更加擅长的场景.对于样本量不大,但是维度特别高的场景,如文本分类,更适合对偶问题求解,因为由于样本量小,计算出来的Kernel Matrix也不大,后面的优化也…
SVM软件包 LIBSVM -- A Library for Support Vector Machines(本项目所用到的SVM包)(目前最新版:libsvm-3.21,2016年7月8日) C-SVC(C-support vector classification), nu-SVC(nu-support vector classification), one-class SVM(distribution estimation), epsilon-SVR(epsilon-support vec…
每每以为攀得众山小,可.每每又切实来到起点,大牛们,缓缓脚步来俺笔记葩分享一下吧,please~ --------------------------- 关于相似性以及文档特征.词特征有太多种说法.弄得好乱,而且没有一个清晰逻辑与归类,包括一些经典书籍里面也分得概念模糊,所以擅自分一分. ---------------------------------------------- 一.单词的表示方式 1.词向量 词向量是现行较为多的方式,另外一篇博客已经写了四种词向量的表达方式,两两之间也有递进…
简单原理流程转自:http://wenku.baidu.com/link?url=57aywD0Q6WTnl7XKbIHuEwWENnSuPS32QO8X0a0gHpOOzdnNt_K0mK2cucVaEHVSAjHvBCvQNZGhe_TEgWoDeVoWNBATyAa0bc5eDZQweEm 详细原理和实验1:PMTK ToolBox和实验2:LibSVM转自:http://blog.163.com/huai_jing@126/blog/static/17186198320117141083…
准备工作: https://www.csie.ntu.edu.tw/~cjlin/libsvm/,下载LIBSVM:(LIBSVM工具相较于MATLAB自带的工具:1).支持多分类及回归(‘-s 0’ ,‘-s 1' -> 多分类'-s 3':'-s 4' -> 回归:'-s 2' -> one-class SVM),matlab自带的仅支持二分类,且不支持回归2).支持核函数种类多样(linear;polynomial;RBF(radial basis function);sigmoi…
最近一个图像识别项目里需要对分类的结果进行打分,因为使用的是libsvm3.12,一开始决定直接将svm_predict_values函数的dec_values作为评分返回,后来研究了之后才觉得里面有的东西还挺有趣. 首先介绍一下SVM中的多分类方法.目前SVM多分类流行的策略有one-against-all以及one-against-one两种,libsvm中的多分类是采用的one-against-one策略,其他有一些开源库如SVM-Light采用one-against-all.对于N类的数…
前言: 对于SVM的了解,看前辈写的博客加上读论文对于SVM的皮毛知识总算有点了解,比如线性分类器,和求凸二次规划中用到的高等数学知识.然而SVM最核心的地方应该在于核函数和求关于α函数的极值的方法:SMO算法(当然还有很多别的算法.libsvm使用的是SMO,SMO算法也是最高效和简单的),还有松弛变量..毕设答辩在即,这两个难点只能拖到后面慢慢去研究了. 于是我便是用了LibSvm,也就是台湾大学某某教授写的一个专门用于svm的工具包,其中有java语言的,python语言的,c语言的.我只…
最近在做基于无线感知的身份识别这个工作,在后期数据处理阶段,需要使用二分类的方法进行训练模型.本身使用matlab做,所以看了一下网上很多都是使用libsvm这个工具箱,就去下载了,既然用到了想着就把这个东西梳理一下,顺便记录一下过程中的遇到的问题. 1.  Libsvm下载与安装 Libsvm这个工具箱是台湾大学林智仁(Lin Chih-Jen)教授等开发的一套基于SVM的模式识别的软件包,网上也有详细的介绍,还有源代码,很方便学习. 下载:https://www.csie.ntu.edu.t…
前言 此教程专注于刚入门的小白, 且博客拥有时效性, 发布于2019年3月份, 可能后面的读者会发现一些问题, 欢迎底下评论出现的问题,我将尽可能更新解决方案. 我开始也在如何安装libsvm上出现了很多问题, 而网上的解决方案大都有一些问题,且发布时间比较早, 方案已经过时,于是我把经历的坑总结起来,供大家学习 版本声明 我的matlab版本为2016a, win10系统, 安装的是最新版的libsvm, version3.2.3 一,配置libsvm 1.首先需要下载libsvm包: htt…
从前面SVM学习中可以看出来,SVM是一种典型的两类分类器.而现实中要解决的问题,往往是多类的问题.如何由两类分类器得到多类分类器,就是一个值得研究的问题. 以文本分类为例,现成的方法有很多,其中一劳永逸的方法,就是真的一次性考虑所有样本,并求解一个多目标函数的优化问题,一次性得到多个分类面,就像下图这样: 多个超平面把空间划分为多个区域,每个区域对应一个类别,给一篇文章,看它落在哪个区域就知道了它的分类. 只可惜这种算法还基本停留在纸面上,因为一次性求解的方法计算量实在太大,大到无法实用的地步…
libsvm的核函数类型(svmtrain.c注释部分): "-t kernel_type : set type of kernel function (default 2)\n" "    0 -- linear: u'*v\n" "    1 -- polynomial: (gamma*u'*v + coef0)^degree\n" "    2 -- radial basis function: exp(-gamma*|u-v|^…
SVM(支撑向量机模型)是二(多)分类问题中经常使用的方法,思想比较简单,但是具体实现与求解细节对工程人员来说比较复杂,如需了解SVM的入门知识和中级进阶可点此下载.本文从应用的角度出发,使用Libsvm函数库解决SVM模型的分类与回归问题. 说明:libsvm是实现svm的便捷开源工具,应用广泛,由国立台湾大学Chih-Chung Chang和Chih-Jen Lin编写,可以实现基于SVM的分类和回归. 1.分类 在Matlab下下载测试数据heart_sacle运行程序: load hea…
1.libsvm数据格式 libsvm使用的训练数据和检验数据文件格式如下: [label] [index1]:[value1] [index2]:[value2] … [label] [index1]:[value1] [index2]:[value2] … label  目标值,就是说class(属于哪一类),就是你要分类的种类,通常是一些整数. index 是有顺序的索引,通常是连续的整数.就是指特征编号,必须按照升序排列 value 就是特征值,用来train的数据,通常是一堆实数组成.…
    数据模型:并不是简单地二维数据,多个维度或者对象的数据聚合起来      {           persion1's attr1:value1,...,persion1's attrN:valueN,persion2's attr1:value1,...,persion2's attrN:value1,whetherSuccess:value      }   同一个问题:不同的分类方法的类比           决策树:存在多个数值型输入,且这些数值所呈现的关系并不简单,决策树往往不…
下载的libsvm包里面已经为我们编译好了(windows).进入libsvm\windows,可以看到这几个exe文件: a.svm-toy.exe:图形界面,可以自己画点,产生数据等. b.svm-scale.exe:对特征值进行缩放. c.svm-train.exe:接收特定格式的输入,产生一个model文件. d.svm-predict.exe:依照已经train好的model,输入新的数据,并输出预测新数据的类别. svm-toy.exe 可以自己生成数据,双击svm-toy,点击ch…
#写libsvm格式 数据 write libsvm     #!/usr/bin/env python #coding=gbk # ============================================================================== # \file gen-records.py # \author chenghuige # \date 2016-08-12 11:52:01.952044 # \Description # ========…
经历手写SVM的惨烈教训(还是太年轻)之后,我决定使用工具箱/第三方库 Python libsvm的GitHub仓库 LibSVM是开源的SVM实现,支持C, C++, Java,Python , R 和 Matlab 等, 这里选择使用Python版本. 安装LibSVM 将LibSVM仓库的所有内容放入Python的包目录\Lib\site-packages或者工程目录中. 在libsvm根目录和python子目录下中分别新建名为__init__.py的空文件,这两个空文件将标识所在的目录为…
1.      libSVM简介 libSVM是台湾林智仁(Chih-Jen Lin) 教授2001年开发的一套支持向量机库,这套库运算速度挺快,可以很方便的对数据做分类或回归.由于libSVM程序小,运用灵活,输入参数少,并且是开源的,易于扩展,因此成为目前国内应用最多的SVM的库.    本实验使用libSVM3.18版本. 2.      libSVM 3.18包含的内容(1)Java文件夹  ,主要应用于java平台:  (2)Python文件夹,是用来参数优选的工具,稍后介绍:  (3…
这里做了一些小的修改,感谢谷歌rd的帮助,使得能够统一处理dense的数据,或者类似文本分类这样sparse的输入数据.后续会做进一步学习优化,比如如何多线程处理. 具体如何处理sparse 主要是使用embedding_lookup_sparse,参考 https://github.com/tensorflow/tensorflow/issues/342 两个文件 melt.py binary_classification.py 代码和数据已经上传到 https://github.com/ch…
一.参数说明 English libsvm_options: -s svm_type : set type of SVM (default 0) 0 -- C-SVC        1 -- nu-SVC        2 -- one-class SVM        3 -- epsilon-SVR        4 -- nu-SVR-t kernel_type : set type of kernel function (default 2)        0 -- linear: u'…
主要就是讲解利用libsvm-mat工具箱建立分类(回归模型)后,得到的模型model里面参数的意义都是神马?以及如果通过model得到相应模型的表达式,这里主要以分类问题为例子.测试数据使用的是libsvm-mat自带的heart_scale.mat数据(270*13的一个属性据矩阵,共有270个样本,每个样本有13个属性),方便大家自己测试学习.首先上一个简短的测试代码: %% ModelDecryption % by faruto @ faruto's Studio~ % http://b…
LIBSVM 数据格式需要---------------------- 决策属性 条件属性a 条件属性b ... 2 1:7 2:5 ... 1 1:4 2:2 ... 数据格式转换---------------------- 当数据较少时,可以用formatdatalibsvm轻松地将文本数据转换成为svm工具使用的数据. 使用方法为: 1,打开FormatDataLibsvm.xls然后将数据粘贴到sheet1的topleft单元. 输入格式为: 条件属性a 条件属性b ... 决策属性 7…
以上是我上一篇文章中的代码实现,里面分别用了opencv中的SVM和LibSVM,opencv的SVM用起来更方便,但貌似内部其实也是基于Libsvm,同样的参数训练出来的结果是一致的,里面有Libsvm的调用过程,如果用libsvm需要在工程里面添加libsvm的源码文件分别是svm.h和svm.cpp,林智仁的库里自带的那两个核心文件即可. libsvm的用法让人更感觉是在用C的写法,opencv封装过的易用性更好,稍后我会把工程文件放到github上供大家下载,若有什么错误,还请批评指教~…