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

LIBSVM使用心得(JAVA)

    博客分类:
  • SVM
 
阅读更多

libsvm 是著名的SVM开源组件,目前有JAVA.C/C++,.NET 等多个版本,本人使用的是2.9
libsvm 命名空间下主要使用类:

svm_model 为模型类,通过训练或加载训练好的模型文件获得

svm_parameter 为参数类,主要为支持向量机设定参数,具体参数如下:

svm_parameter.svm_type
svm类型:SVM设置类型(默认svm_parameter.C_SVC)
svm_parameter.C_SVC -- C-SVC n(n>=2)分类器,允许用异常值惩罚因子C进行不完全分类。
svm_parameter.NU_SVC -- ν-SVC n类似然不完全分类的分类器。参数nu取代了c,其值在区间【0,1】中,nu越大,决策边界越平滑。
svm_parameter.ONE_CLASS – 一类SVM 单分类器,所有的训练数据提取自同一个类里,然後SVM建立了一个分界线以分割该类在特征空间中所占区域和其它类在特征空间中所占区域。
svm_parameter.EPSILON_SVR -- ε -SVR 回归。 训练集中的特征向量和拟合出来的超平面的距离需要小于p。异常值惩罚因子C被采用。
svm_parameter.NU_SVR -- ν-SVR 回归;nu 代替了p

svm_parameter.kernel_type
核函数类型:核函数设置类型(svm_parameter.LINEAR)
svm_parameter.LINEAR – 线性:u'×v - 没有任何向映射至高维空间,线性区分(或回归)在原始特征空间中被完成,这是最快的选择。 d(x,y) = x?y == (x,y)
svm_parameter.POLY– 多项式:(γ×u'×v + coef0)^degree - 多项式核: d(x,y) = (gamma*(x?y)+coef0)degree
svm_parameter.RBF – RBF函数:exp(-γ×|u-v|^2) - 径向基,对于大多数情况都是一个较好的选择:d(x,y) = exp(-gamma*|x-y|2)
svm_parameter.SIGMOID – sigmoid:tanh(γ×u'×v + coef0) - sigmoid函数被用作核函数: d(x,y) = tanh(gamma*(x?y)+coef0)
degree, gamma, coef0:都是核函数的参数,具体的参见上面的核函数的方程。

svm_parameter.degree
核函数中的degree设置(默认3)

svm_parameter.coef0
核函数中的coef0设置(默认0)

svm_parameter.shrinking
是否使用启发式,0或1(默认1)

svm_parameter.nu
设置ν-SVC,一类SVM和ν- SVR的参数(默认0.5)

svm_parameter.C
设置C-SVC,ε -SVR和ν-SVR的参数(默认1)

svm_parameter.cache_size
设置cache内�Py�}POST /admin/article/article_post.php HTTP/1.1 Accept: */* ThreadID: 4580 Referer: http://control.blog.sina.com.cn/admin/article/article_add.php Accept-Language: zh-cn Content-Type: application/x-www-form-urlencoded Accept-Encoding: gzip, deflate User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; SE 2.X; .NET CLR 2.0.50727; InfoPath.2; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022) Host: control.blog.sina.com.cn Content-Length: 8012 Connection: Keep-Alive Cache-Control: no-cache Cookie: EditorToolType=base; SUE=es=60b677c68b6e51e2af4da352

a8b15ae8&ev=v0&es2=111c348d629197909438df021c085a8c; SUP=cv=1&bt=1292207497&et=1292293897<=7&uid=1877042557&user=416180381@qq.com&ag=4&name=416180381@qq.com&nick=416180381&sex=&ps=0&email=&dob=&ln=; U_TRS2=7dd8f890.6f136496.4d058594.41f896dd; _s_upa=11; Apache=125.216.248.144.26014129220750920; PHPSESSID=f77beb3eba760943ba6d9f42c6052c25; SINABLOGNUINFO=1877042557.6fe1657d.lyybolg; ; ucMemList_1877042557=_38176; U_TRS1=ca6c2bf1.ed762323.4ceb3c7b.2f874877; UOR=,ishare.iask,spr_sw_sq_lm1_weibo_p001226:1290941662671; ULV=1292207511814:15:7:1:125.216.248.144.26014129220750920:1291891219654; vjuids=3c68a9280.12c788e02f9.0.7da3222070977c; vjlast=1291336644.1292207512.11; SINAGLOBAL=120.196.50.88.266561290512750295; ALLYESID4=00101128193241961440406; ALF=1294194943; SUR=uid=1877042557&user=416180381@qq.com&nick=416180381&email=&dob=&ag=4&sex=&ssl=0; _u_poll=blog,1,50; SessionID=884c952a640ad5a2f488431e354da9e5; msnBindInfo=1877042557_0; noMoreMsnTips1877042557=1; SSCSum=1; SinaRot//=69; tblogt=1; BILS=c; rpb_1_1=1292207512108; iCast_Rotator_1_1





libsvm 是著名的SVM开源组件,目前有JAVA.C/C++,.NET 等多个版本,本人使用的是2.9
libsvm 命名空间下主要使用类:

svm_model 为模型类,通过训练或加载训练好的模型文件获得

svm_parameter 为参数类,主要为支持向量机设定参数,具体参数如下:

svm_parameter.svm_type
svm类型:SVM设置类型(默认svm_parameter.C_SVC)
svm_parameter.C_SVC -- C-SVC n(n>=2)分类器,允许用异常值惩罚因子C进行不完全分类。
svm_parameter.NU_SVC -- ν-SVC n类似然不完全分类的分类器。参数nu取代了c,其值在区间【0,1】中,nu越大,决策边界越平滑。
svm_parameter.ONE_CLASS – 一类SVM 单分类器,所有的训练数据提取自同一个类里,然後SVM建立了一个分界线以分割该类在特征空间中所占区域和其它类在特征空间中所占区域。
svm_parameter.EPSILON_SVR -- ε -SVR 回归。 训练集中的特征向量和拟合出来的超平面的距离需要小于p。异常值惩罚因子C被采用。
svm_parameter.NU_SVR -- ν-SVR 回归;nu 代替了p

svm_parameter.kernel_type
核函数类型:核函数设置类型(svm_parameter.LINEAR)
svm_parameter.LINEAR – 线性:u'×v - 没有任何向映射至高维空间,线性区分(或回归)在原始特征空间中被完成,这是最快的选择。 d(x,y) = x?y == (x,y)
svm_parameter.POLY– 多项式:(γ×u'×v + coef0)^degree - 多项式核: d(x,y) = (gamma*(x?y)+coef0)degree
svm_parameter.RBF – RBF函数:exp(-γ×|u-v|^2) - 径向基,对于大多数情况都是一个较好的选择:d(x,y) = exp(-gamma*|x-y|2)
svm_parameter.SIGMOID – sigmoid:tanh(γ×u'×v + coef0) - sigmoid函数被用作核函数: d(x,y) = tanh(gamma*(x?y)+coef0)
degree, gamma, coef0:都是核函数的参数,具体的参见上面的核函数的方程。

svm_parameter.degree
核函数中的degree设置(默认3)

svm_parameter.coef0
核函数中的coef0设置(默认0)

svm_parameter.shrinking
是否使用启发式,0或1(默认1)

svm_parameter.nu
设置ν-SVC,一类SVM和ν- SVR的参数(默认0.5)

svm_parameter.C
设置C-SVC,ε -SVR和ν-SVR的参数(默认1)

svm_parameter.cache_size
设置cache内�Py�}POST /admin/article/article_post.php HTTP/1.1 Accept: */* ThreadID: 4580 Referer: http://control.blog.sina.com.cn/admin/article/article_add.php Accept-Language: zh-cn Content-Type: application/x-www-form-urlencoded Accept-Encoding: gzip, deflate User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; SE 2.X; .NET CLR 2.0.50727; InfoPath.2; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022) Host: control.blog.sina.com.cn Content-Length: 8012 Connection: Keep-Alive Cache-Control: no-cache Cookie: EditorToolType=base; SUE=es=60b677c68b6e51e2af4da352
a8b15ae8&ev=v0&es2=111c348d629197909438df021c085a8c; SUP=cv=1&bt=1292207497&et=1292293897<=7&uid=1877042557&user=416180381@qq.com&ag=4&name=416180381@qq.com&nick=416180381&sex=&ps=0&email=&dob=&ln=; U_TRS2=7dd8f890.6f136496.4d058594.41f896dd; _s_upa=11; Apache=125.216.248.144.26014129220750920; PHPSESSID=f77beb3eba760943ba6d9f42c6052c25; SINABLOGNUINFO=1877042557.6fe1657d.lyybolg; ; ucMemList_1877042557=_38176; U_TRS1=ca6c2bf1.ed762323.4ceb3c7b.2f874877; UOR=,ishare.iask,spr_sw_sq_lm1_weibo_p001226:1290941662671; ULV=1292207511814:15:7:1:125.216.248.144.26014129220750920:1291891219654; vjuids=3c68a9280.12c788e02f9.0.7da3222070977c; vjlast=1291336644.1292207512.11; SINAGLOBAL=120.196.50.88.266561290512750295; ALLYESID4=00101128193241961440406; ALF=1294194943; SUR=uid=1877042557&user=416180381@qq.com&nick=416180381&email=&dob=&ag=4&sex=&ssl=0; _u_poll=blog,1,50; SessionID=884c952a640ad5a2f488431e354da9e5; msnBindInfo=1877042557_0; noMoreMsnTips1877042557=1; SSCSum=1; SinaRot//=69; tblogt=1; BILS=c; rpb_1_1=1292207512108; iCast_Rotator_1_1
分享到:
评论

相关推荐

    libsvm java实用说明

    在这个文档中,我们将重点讨论如何在Java环境下使用LibSVM进行二次开发。 首先,你需要从官方网站(http://www.csie.ntu.edu.tw/~cjlin/libsvm/)下载LibSVM的源代码包。解压后,找到`java`文件夹,并将其导入到...

    libSVM的Java版本

    libSVM是开源的,可以在各种编程语言中使用,包括C、Python、R和Java等。在本案例中,我们关注的是Java版本的libsvm,它为Java开发者提供了一种高效且灵活的方式来实现SVM算法。 **支持向量机(SVM)** 支持向量机...

    libsvm-2.32.rar_LibSVM_libsvm Java_libsvm java

    在这里,我们主要讨论的是针对Java环境的LibSVM版本,即"libsvm-2.32.jar"。 支持向量机是一种监督学习算法,广泛应用于分类和回归问题,尤其在小样本、非线性及高维模式识别中表现出色。其核心思想是找到一个超...

    libsvm的java文件

    标题"libsvm的java文件"指的是一个使用Java编写的库,用于与LibSVM(Library for Support Vector Machines)交互。LibSVM是一个广泛使用的开源工具,主要用于支持向量机(SVM)的学习和预测,特别是在机器学习和数据...

    libsvm java版

    libsvm java版,这是台湾大学林智仁教授开发的一个 工具箱,不过这是个java版,方便大家下载和学习

    java libsvm3.22工具包

    Java LibSVM 3.22工具包是一个用于支持向量机(SVM)的高效、灵活且广泛使用的库,特别适用于分类和回归任务。LibSVM由Chih-Chung Chang和Chih-Jen Lin开发,是机器学习领域中一个非常重要的开源项目。这个工具包...

    libsvm-mat-2.89-3 和 LibSvm 使用说明 学习心得

    该库不仅提供了C/C++接口,还支持其他编程语言如Python、Java等,而在MATLAB环境中的libsvm-mat-2.89-3则是专为MATLAB用户设计的版本,让SVM模型的构建和训练更为便捷。 一、libsvm-mat-2.89-3简介 libsvm-mat-2.89...

    LibSVM Java API调用示例程序

    LibSVM Java API调用示例程序 Eclipse 完整工程可以运行 相关详情见http://blog.csdn.net/yangliuy/article/details/8041343#comments 3行程序搞定SVM分类-用JAVA程序调用LibSVM API 最简单的示例 欢迎关注我的博客...

    将数据转化成libsvm所需要的格式

    在Java中,可以使用诸如`BufferedReader`或`Scanner`类来读取LibSVM格式的文件,然后通过解析每一行,创建相应的数据结构,如`Map, Double&gt;`,以存储特征索引和对应的值。完成转换后,这些数据可以通过`MatlabWriter...

    libsvm学习心得

    《libsvm学习心得》 libsvm,全称“Library for Support Vector Machines”,是由台湾大学的Chih-Chung Chang和Chih-Jen Lin开发的一款开源工具,主要用于支持向量机(SVM)的学习与预测。这款强大的库在机器学习...

    LibSvm_使用过程心得

    #### 五、使用心得与技巧分享 1. **数据预处理的重要性**:正确的数据预处理可以显著提高模型性能。 2. **选择合适的核函数**:根据问题的性质选择最适合的核函数。 3. **参数选择的影响**:合理设置惩罚系数`C`和...

    libsvm-2.88.rar_Libsvm2.88_libsvm Python_libsvm java_python libs

    Java版本的LibSVM不仅能够处理大规模数据集,还具有良好的跨平台兼容性,使得Java开发者能够在各种操作系统上利用SVM技术。 在Windows环境下,LibSVM的安装和使用也十分便捷。用户可以通过提供的安装指南,按照步骤...

    libsvm-2.8.rar_Java 8_libsvm 2_libsvm 2.8_svm lib

    本文将深入探讨libsvm 2.8版本,以及如何在Java 8环境中进行使用。 一、libsvm 2.8概述 libsvm 2.8是该库的一个稳定版本,提供了多种编程语言接口,包括C、Python、Java等。在Java 8环境下,libsvm提供了简洁且...

    libsvm-介绍及使用说明(教程),内附中英文两版

    5. **集成到项目**:LibSVM提供了API接口,可以方便地将其集成到其他编程语言(如Python、Java)的项目中,实现自定义的应用。 **SVM与其它分类算法对比** SVM的优势在于其对高维数据的处理能力和泛化能力,尤其是...

    【LIBSVM】使用C++和LIBSVM实现机器学习+样本分类

    在本主题中,我们将深入探讨如何使用C++和LIBSVM库来实现机器学习和样本分类。 1. **支持向量机(SVM)基本概念**: - SVM是一种基于结构风险最小化的分类模型,它的核心思想是找到一个超平面,使得两类样本之间的...

    libsvm(Java版)

    LIBSVM是台湾大学林智仁(Lin Chih-Jen)教授等开发设计的一个简单、易于使用和快速有效的SVM模式识别与回归的软件包,他不但提供了编译好的可在Windows系列系统的执行文件,还提供了源代码,方便改进、修改以及在其它...

    Python下的LibSVM的使用

    ### Python 下的 LibSVM 使用详解 #### 一、引言 LibSVM 是由台湾学者林智仁教授团队开发的一款支持向量机(Support Vector Machine, SVM)软件包,它以其高效性和易于使用性而著称。通常情况下,LibSVM 的应用集中在...

    libsvm-2.82.rar_LibSVM_java 支持向量机_支持向量机_支持向量机 java

    这个版本的LibSVM是专门为Java开发者设计的,提供了在Java环境中应用SVM算法的能力。 支持向量机(SVM)是一种监督学习模型,广泛应用于分类和回归分析。它的核心思想是找到一个超平面,使得两类样本点之间的间隔...

    LIBSVM使用介绍

    - **接口语言选择**:除了C++,LIBSVM还支持多种语言接口,如Python、Java等,方便不同编程背景的用户使用。 总之,LIBSVM以其强大的功能、简便的操作和优秀的性能,在支持向量机领域内占据了一席之地,成为众多...

Global site tag (gtag.js) - Google Analytics