Libsvm分类实验报告

合集下载

svm实验报告总结

svm实验报告总结

svm实验报告总结SVM实验报告总结支持向量机(SVM)是一种常用的机器学习算法,它在模式识别、分类、回归等领域有着广泛的应用。

本文将对SVM算法进行实验,旨在探究SVM算法的原理、应用和优缺点。

一、实验原理SVM的基本思想是将低维度的数据映射到高维度的空间中,从而使数据在高维空间中更容易被线性分隔。

SVM算法的核心是支持向量,这些支持向量是距离分类决策边界最近的数据点。

SVM通过找到这些支持向量来建立分类器,从而实现数据分类。

二、实验步骤1. 数据预处理本实验使用的数据集是Iris花卉数据集,该数据集包含了三种不同种类的花朵,每种花朵有四个属性:花萼长度、花萼宽度、花瓣长度、花瓣宽度。

首先需要将数据集划分为训练集和测试集,以便在训练模型时进行验证。

2. 模型训练本实验使用Python中的sklearn库来构建SVM分类器。

首先需要选择SVM的核函数,有线性核函数、多项式核函数、径向基核函数等。

在本实验中,我们选择径向基核函数作为SVM的核函数。

接着需要设置SVM的参数,包括C值和gamma值。

C值是惩罚系数,用于平衡模型的分类精度和泛化能力;gamma值是径向基函数的系数,用于控制支持向量的影响范围。

3. 模型评估本实验使用准确率和混淆矩阵来评估模型的性能。

准确率是指模型在测试集上的分类精度,而混淆矩阵则可以用来分析模型在不同类别上的分类情况。

三、实验结果本实验使用径向基核函数的SVM分类器在Iris数据集上进行了实验。

实验结果表明,SVM分类器的准确率达到了97.78%,同时在混淆矩阵中也可以看出模型在不同花朵种类上的分类情况。

实验结果表明,SVM分类器在分类问题上有着较好的表现。

四、实验总结SVM算法是一种常用的机器学习算法,它在模式识别、分类、回归等领域有着广泛的应用。

本实验通过对Iris数据集的实验,探究了SVM算法的原理、应用和优缺点。

实验结果表明,在SVM算法中,径向基核函数是一种比较适用的核函数,在设置SVM参数时需要平衡模型的分类精度和泛化能力。

最新LibSVM分类的实用指南

最新LibSVM分类的实用指南

L i b S V M分类的实用指南LibSVM分类的实用指南摘要SVM(support vector machine)是一项流行的分类技术。

然而,初学者由于不熟悉SVM,常常得不到满意的结果,原因在于丢失了一些简单但是非常必要的步骤。

在这篇文档中,我们给出了一个简单的操作流程,得到合理的结果。

(译者注:本文中大部分SVM实际指的是LibSVM)1入门知识SVM是一项非常实用的数据分类技术。

虽然SVM比起神经网络(Neural Networks)要相对容易一些,但对于不熟悉该方法的用户而言,开始阶段通常很难得到满意的结果。

这里,我们给出了一份指南,根据它可以得到合理结果。

需要注意,此指南不适用SVM的研究者,并且也不保证一定能够获得最高精度结果。

同时,我们也没有打算要解决有挑战性的或者非常复杂的问题。

我们的目的,仅在于给初学者提供快速获得可接受结果的秘诀。

虽然用户不是一定要深入理解SVM背后的理论,但为了后文解释操作过程,我们还是先给出必要的基础的介绍。

一项分类任务通常将数据划分成训练集和测试集。

训练集的每个实例,包含一个"目标值(target value)"(例如,分类标注)和一些"属性(attribute)"(例如,特征或者观测变量)。

SVM的目标是基于训练数据产出一个模型(model),用来预测只给出属性的测试数据的目标值。

给定一个训练集,"实例-标注"对,,支持向量机需要解决如下的优化问题:在这里,训练向量xi通过函数Φ被映射到一个更高维(甚至有可能无穷维)空间。

SVM在这个高维空间里寻找一个线性的最大间隔的超平面。

C 0是分错项的惩罚因子(penalty parameter of the error term)。

被称之为核函数(kernel function)。

新的核函数还在研究中,初学者可以在SVM书中找到如下四个最基本的核函数:(线性、多项式、径向基函数、S型)1.1实例表1是一些现实生活中的实例。

Libsvm分类实验报告

Libsvm分类实验报告

一、LIBSVM介绍LIBSVM是台湾大学林智仁(Chih-Jen Lin)副教授等开发设计的一个简单、易于使用和快速有效的SVM模式识别与回归的软件包,他不但提供了编译好的可在Windows系列系统的执行文件,还提供了源代码,方便改进、修改以及在其它操作系统上应用;该软件还有一个特点,就是对SVM所涉及的参数调节相对比较少,提供了很多的默认参数,利用这些默认参数就可以解决很多问题;并且提供了交互检验(Cross Validation)的功能。

二、准备工作2.1软件下载安装使用的平台是Windows XP,从命令列执行。

先把一些需要的东西装好,总共需要三个软件:libsvm, python, gnuplot。

这里我选择的版本是libsvm-2.88,python26。

Libsvm:到.tw/~cjlin/libsvm/下载libsvm,然后解压缩就好了。

Python:到/download/下载完直接安装就好了。

Gnuplot:下载ftp:///pub/gnuplot/gp400win32.zip解压缩。

这里全部解压安装在c盘c:\libsvm-2.88c:\python26c:\gnuplot2.2参数修改(1)把c:\libsvm-2.88\tools中的easy.py和grid.py复制到c:\libsvm-2.91\python中(2)在c:\libsvm-2.88\python中修改easy.py和grid.py的路径:①点中easy.py在右键中选Edit with IDLE打开,将else下面的路径修改如下:else:# example for windowssvmscale_exe = r"c:\libsvm-2.88\windows\svm-scale.exe"svmtrain_exe = r"c:\libsvm-2.88\windows\svm-train.exe"svmpredict_exe = r"c:\libsvm-2.88\windows\svm-predict.exe"gnuplot_exe = r"c:\gnuplot\bin\pgnuplot.exe"grid_py = r"c:\libsvm-2.88\python\grid.py"②点中grid.py在右键中选Edit with IDLE打开,将else下面的路径修改如下: else:# example for windowssvmtrain_exe = r"c:\libsvm-2.91\windows\svm-train.exe"gnuplot_exe = r"c:\gnuplot\bin\pgnuplot.exe"三、实验步骤(1)按照LIBSVM软件包所要求的格式准备数据集;(2)对数据进行缩放操作;(3)选用适当的核函数;(4)采用交叉验证选择惩罚系数C与g的最佳参数;(5)采用获得的最佳参数对整个训练集进行训练获取支持向量机模型;(6)利用获取的模型进行测试与预测。

支持向量机 libsvm python三分类问题实例

支持向量机 libsvm python三分类问题实例

2:EXCEL下的数据处理
Libsvm所需的数据格式应该是 <lable_value> <index1>:<value1> <index2>:<value2>.....。 (lable_value,index,value变量的值全部为数值型,lable_value表示样本的类 型,在二分类其中,其值一般取-1和1或者0和1,当然取其他值也是可以的,只要能 区分就行。index可以理解为遥感影像中的波段序列或者特征序列。value可以理解 为对应的像元值或者特征值)。 也就是类似于 1 1:0.302000 2:0.67200 2 1:0.568000 2:0.668000 3 1:0.568000 2:0.668000 这样的,如果你的数据不是这样,请下载FormatDataLibsvmaa.xlsm这个自带宏 命令的表格来转换,其中标签向量根据分类的类别自己定义
注意,正确率为零是因为在TESTD文件中所有数据标签为均4,而train数据的三个标 签为1,2,3,肯定都是对不上的(在SVM-PREDICT中你需要分类的数据必须给出 任意一个标签数据)。
在C:\libsvm-3.21\windows下调用SVM-TRAIN,输入优化后的参数,ibsvm-3.21\windows下调用SVM-PREDICT,按照用法输入,可以得出
输出的最后结果储存在OUT222这个文件中。
4)最重要的是GRID.py 设置好各项参数进行参数寻优(预设值就是RBF核函数) 具体数值区间我是采用的默认值 根据README里面的用法,同时调用GNUPLOT和SVMTRAIN两个地址,可以得 出.out和.png两个结果 最后可以得出一个最好的G C两个参数的数值

(完整word版)数据挖掘文本分类实验报告

(完整word版)数据挖掘文本分类实验报告

北京邮电大学****学年第1学期实验报告课程名称:数据仓库与数据挖掘实验名称: 文本的分类实验完成人:姓名:***学号:*&***姓名:** 学号:**日期:实验一:文本的分类1.实验目的◆掌握数据预处理的方法,对训练集数据进行预处理;◆掌握文本分类建模的方法,对语料库的文档进行建模;◆掌握分类算法的原理,基于有监督的机器学习方法,训练文本分类器;◆了解SVM机器学习方法,可以运用开源工具完成文本分类过程。

2.实验分工***:(1)对经过分词的文本进行特征提取并用lisvm进行训练(2)用训练的模型对测试数据进行预测***:(1)数据采集和预处理(2)分词3.实验环境Ubuntu 13.04+jdk1.74.主要设计思想4.1 实验工具介绍1.NLPIR_ICTCLAS2013NLPIR (又名ICTCLAS2013),是由中科院张华平博士倾力打造的汉语分词系统。

其主要功能包括中文分词、词性标注、命名实体识别、用户词典功能、支持GBK编码、UTF8编码、BIG5编码等.从NLPIR官网可以下载其最新版的Java发布包,然后导入Eclipse,配置运行环境,实现对于语料库的分词。

最新的NLPIR可以通过更改源代码实现新增新词识别、关键词提取、微博分词等功能,极大地方便了使用.2. Eclipse for JavaEclipse 是一个开放源代码的、基于Java的可扩展开发平台。

就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。

幸运的是,Eclipse 附带了一个标准的插件集,包括Java开发工具(Java Development Kit,JDK).3. LibSVM本次实验中我们采用的是台湾大学林智仁博士等开发设计的LIBSVM方法。

这是一个操作简单、易于使用、快速有效的通用SVM 软件包,可以解决分类问题(包括C−SVC 、ν−SVC ),回归问题(包括ε − SVR 、v− SVR )以及分布估计(one − class − SVM )等问题,提供了线性、多项式、径向基和S 形函数四种常用的核函数供选择,可以有效地解决多类问题、交叉验证选择参数、对不平衡样本加权、多类问题的概率估计等。

关于libsvm分类结果的可视化及分类曲线的可视化

关于libsvm分类结果的可视化及分类曲线的可视化

关于libsvm分类结果的可视化及分类曲线的可视化关于libsvvm分类结果的可视化及分类曲线的可视化by faruto论坛里曾有多位朋友询问过,有关libsvvm分类结果的可视化及分类曲线的可视化(可能大家感觉这个放在自己的paper里面会比较拉风,个人感觉可视化这些东西真的很虚幻,看着拉风,实则无用)。

整体过程我心中明了,但实在是对可视化这种东西的鄙视,所以一直未将关于libsvm分类结果的可视化及分类曲线的可视化的结果实现,并以插件函数的形式放在自己的faruto -libsvm工具箱里面。

本质其实就是用contour来实现。

今天下午把科学社会主义理论翘掉了【我还记得代课老师说让大家查看一下科学社会主义理论和空想社会主义的区别。

囧!】。

在宿舍搞了一下。

原本想法是要搞就搞高级一点的,想把对于任意维的测试数据的任意两维(或任意三维)进行可视化,并给出分类超曲面,但最终未果,无法实现。

【具体原因我就不说了,深入想过这个的应该会明的。

】【搞的我从下午一直搞到晚上六点,晚饭都没吃,就直接去上的《概率论的数学基础》课。

囧!】你别看代码就几行。

但里面的想法挺巧妙的。

所以,我在这里要说的是,下面的函数插件 svmplot.m 只对两分类,且属性数据是两维的,给出的分类结果的可视化及分类曲线的可视化才是有意义和准确的。

对于不是两分类或属性数据不是两维的,我这个也可以给出个图,但那个的没有实际意义!切记!!切记!!{近期还想弄的就是专门对于 un-balanced data的处理的函数插件。

!}测试图:代码:要的直接拿去【拿去在paper里面拉风吧!】。

放在libsvm -faruto版本里面就能直接用。

复制内容到剪贴板代码:function svmplot(labels,dataset,model,demension1,demension2)% svmplot by faruto% 2009.12.03%Email:*************************:516667408if nargin == 3demension1 = 1;demension2 = 2;end%%minX = min(dataset(:, demension1));maxX = max(dataset(:, demension1));minY = min(dataset(:, demension2));maxY = max(dataset(:, demension2));gridX = (maxX - minX) ./ 100;gridY = (maxY - minY) ./ 100;minX = minX - 10 * gridX;maxX = maxX + 10 * gridX;minY = minY - 10 * gridY;maxY = maxY + 10 * gridY;[bigX, bigY] = meshgrid(minX:gridX:maxX, minY:gridY:maxY);%%model.Parameters(1) = 3;ntest=size(bigX, 1) * size(bigX, 2);test_dataset=[reshape(bigX, ntest, 1), reshape(bigY, ntest, 1)]; test_label = zeros(size(test_dataset,1), 1);[Z, acc] = svmpredict(test_label, test_dataset, model);bigZ = reshape(Z, size(bigX, 1), size(bigX, 2));%%clf;hold on;grid on;ispos = ( labels == labels(1) );pos = find(ispos);neg = find(~ispos);h1 = plot(dataset(pos, demension1), dataset(pos, demension2), 'r+'); h2 = plot(dataset(neg, demension1), dataset(neg, demension2), 'g*'); h3 = plot( model.SVs(:,demension1),model.SVs(:,demension2),'o' ); legend([h1,h2,h3],'class1','class2','Support Vectors');[C,h] = contour(bigX, bigY, bigZ,-1:0.5:1);clabel(C,h,'Color','r');xlabel('demension1','FontSize',12);ylabel('demension2','FontSize',12);title('The visualization of classification','FontSize',12);代码的有一个小trick是参照了svmtoy 的思路。

【精编范文】svm算法实验实验报告-优秀word范文 (13页)

【精编范文】svm算法实验实验报告-优秀word范文 (13页)

本文部分内容来自网络整理,本司不为其真实性负责,如有异议或侵权请及时联系,本司将立即删除!== 本文为word格式,下载后可方便编辑和修改! ==svm算法实验实验报告篇一:SVM 实验报告SVM分类算法一、数据源说明1、数据源说远和理解:采用的实验数据源为第6组:The Insurance Company Benchmark (COIL 201X) TICDATA201X.txt: 这个数据集用来训练和检验预测模型,并且建立了一个5822个客户的记录的描述。

每个记录由86个属性组成,包含社会人口数据(属性1-43)和产品的所有关系(属性44-86 )。

社会人口数据是由派生邮政编码派生而来的,生活在具有相同邮政编码地区的所有客户都具有相同的社会人口属性。

第86个属性:“大篷车:家庭移动政策” ,是我们的目标变量。

共有5822条记录,根据要求,全部用来训练。

TICEVAL201X.txt: 这个数据集是需要预测( 4000个客户记录)的数据集。

它和TICDATA201X.txt它具有相同的格式,只是没有最后一列的目标记录。

我们只希望返回预测目标的列表集,所有数据集都用制表符进行分隔。

共有4003(自己加了三条数据),根据要求,用来做预测。

TICTGTS201X.txt:最终的目标评估数据。

这是一个实际情况下的目标数据,将与我们预测的结果进行校验。

我们的预测结果将放在result.txt文件中。

数据集理解:本实验任务可以理解为分类问题,即分为2类,也就是数据源的第86列,可以分为0、1两类。

我们首先需要对TICDATA201X.txt进行训练,生成model,再根据model进行预测。

2、数据清理代码中需要对数据集进行缩放的目的在于:A、避免一些特征值范围过大而另一些特征值范围过小;B、避免在训练时为了计算核函数而计算内积的时候引起数值计算的困难。

因此,通常将数据缩放到 [ -1,1] 或者是 [0,1] 之间。

svm 实验报告

svm 实验报告

svm 实验报告SVM 实验报告摘要:支持向量机(SVM)是一种常用的机器学习算法,广泛应用于模式识别、文本分类、图像识别等领域。

本实验旨在通过对SVM算法的实验研究,探讨其在不同数据集上的分类性能和泛化能力。

实验结果表明,在合适的参数设置下,SVM算法能够有效地对数据进行分类,并且在处理高维数据和小样本数据方面表现出优异的性能。

本文将详细介绍实验设计、实验数据、实验结果和分析讨论,旨在为读者提供对SVM算法的深入理解和应用指导。

1. 实验设计本实验选取了两个经典的数据集,分别是Iris数据集和MNIST手写数字数据集。

Iris数据集是一个经典的分类数据集,包含了150个样本,分为3类,每类有50个样本,每个样本有4个特征。

MNIST手写数字数据集是一个常用的图像分类数据集,包含了60000个训练样本和10000个测试样本,每个样本是一张28x28像素的手写数字图片。

在实验中,我们使用Python编程语言和Scikit-learn机器学习库进行实验。

对于Iris数据集,我们将数据集分为训练集和测试集,然后使用SVM算法进行训练和测试。

对于MNIST数据集,我们将数据集进行预处理,然后使用SVM算法进行训练和测试。

2. 实验数据在实验中,我们使用了Iris数据集和MNIST数据集作为实验数据。

Iris数据集是一个经典的分类数据集,包含了150个样本,分为3类,每类有50个样本,每个样本有4个特征。

MNIST手写数字数据集是一个常用的图像分类数据集,包含了60000个训练样本和10000个测试样本,每个样本是一张28x28像素的手写数字图片。

3. 实验结果在实验中,我们分别对Iris数据集和MNIST数据集进行了实验,得到了如下结果:对于Iris数据集,我们使用SVM算法进行分类,得到了如下结果:在训练集上的准确率为98%,在测试集上的准确率为96%。

对于MNIST数据集,我们使用SVM算法进行分类,得到了如下结果:在训练集上的准确率为98%,在测试集上的准确率为96%。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一、LIBSVM介绍
LIBSVM是台湾大学林智仁(Chih-Jen Lin)副教授等开发设计的一个简单、易于使用和快速有效的SVM模式识别与回归的软件包,他不但提供了编译好的可在Windows系列系统的执行文件,还提供了源代码,方便改进、修改以及在其它操作系统上应用;该软件还有一个特点,就是对SVM所涉及的参数调节相对比较少,提供了很多的默认参数,利用这些默认参数就可以解决很多问题;并且提供了交互检验(Cross Validation)的功能。

二、准备工作
2.1软件下载安装
使用的平台是Windows XP,从命令列执行。

先把一些需要的东西装好,总共需要三个软件:libsvm, python, gnuplot。

这里我选择的版本是libsvm-2.88,python26。

Libsvm:到.tw/~cjlin/libsvm/下载libsvm,然后解压缩就好了。

Python:到/download/下载完直接安装就好了。

Gnuplot:下载ftp:///pub/gnuplot/gp400win32.zip解压缩。

这里全部解压安装在c盘
c:\libsvm-2.88
c:\python26
c:\gnuplot
2.2参数修改
(1)把c:\libsvm-2.88\tools中的easy.py和grid.py复制到c:\libsvm-2.91\python中
(2)在c:\libsvm-2.88\python中修改easy.py和grid.py的路径:
①点中easy.py在右键中选Edit with IDLE打开,将else下面的路径修改如下:
else:
# example for windows
svmscale_exe = r"c:\libsvm-2.88\windows\svm-scale.exe"
svmtrain_exe = r"c:\libsvm-2.88\windows\svm-train.exe"
svmpredict_exe = r"c:\libsvm-2.88\windows\svm-predict.exe"
gnuplot_exe = r"c:\gnuplot\bin\pgnuplot.exe"
grid_py = r"c:\libsvm-2.88\python\grid.py"
②点中grid.py在右键中选Edit with IDLE打开,将else下面的路径修改如下: else:
# example for windows
svmtrain_exe = r"c:\libsvm-2.91\windows\svm-train.exe"
gnuplot_exe = r"c:\gnuplot\bin\pgnuplot.exe"
三、实验步骤
(1)按照LIBSVM软件包所要求的格式准备数据集;
(2)对数据进行缩放操作;
(3)选用适当的核函数;
(4)采用交叉验证选择惩罚系数C与g的最佳参数;
(5)采用获得的最佳参数对整个训练集进行训练获取支持向量机模型;
(6)利用获取的模型进行测试与预测。

四、实验操作
4.1.数据准备
.tw/~cjlin/libsvmtools/datasets/binary.html#breast-cancer 下载heart.txt作为此次分类的初始数据
heart
Source: Statlog / Heart
# of classes: 2
# of data: 270
# of features: 13
Files:
heart
heart_scale (scaled to [-1,1])
4..2具体操作
(1)据归一化处理
将数据heart.txt保存在c:\libsvm-2.88\windows文件夹下
对原始数据进行归一化,步骤如下:
打开程序--附件—命令提示符,键入
cd c:\libsvm\windows 回车
再键入
svm-scale -l 0 -u 1 heart.txt > heart.scale.txt 回车
在c:\ libsvm-2.88\windows下出现一个heart.scale.txt文件
(2)然后将路径调整到
cd c:\python27
接着输入:python C:\libsvm\python\grid.py -log2c -10,10,1 -log2g 10,-10,-1 c:\libsvm\windows\heart.scale.txt > test.txt 回车
就会产生一个test.txt文件,其中记录了参数寻优的结果
可以看到,参数分别为c 2.0,g 0.03125,正确率mse为84% 在python26文件下有heart.scale.txt.png,得:
(2)然后利用所得到的参数c ,g对heart.scale.txt进行训练,输入
cd c:\libsvm-2.88\windows 回车
svm-train –c 2.0 –g 0.03125 heart.scale.txt
生成训练模型heart.scale.txt.model。

相关文档
最新文档