新人求助大手关于ns左摇杆有问题的问题

如何将数据转换libsvm格式文件(转)
转自;/link?url=2tOh41rPz04AiDbnUbJC6scWYnlCU3ZLsZmg9xYmgL41eLKKpqtiM17VnsL5Vd_aEYzWBAbHopzmsn1EoiqnnVAlFdBk02ies0mOjetj5BS
如何将数据转换libsvm格式文件
( 18:17:29)
有三种工具可用
1.网上有一个xls文FormatDataLibsvm.xls具有宏命令,可以利用其中的宏命令来实现。对于属性数据只有一二百的,这种工具简单方便。
2.对于一两千的就需要借助代码之类的工具了。
其实仔细看cjlin的libsvm网站http://www.csie.ntu.edu.tw/~cjlin/libsvm/,从网站的Libsvm
FAQ中有提到的格式转换的方法
Q: How to convert other data formats to LIBSVM format?
It depends on your data format. We have a simple C code to
transfer space/colon separated format to libsvm format. Please
contact us if needed.
Alternatively, a simple way is to use libsvmwrite in the
libsvm matlab/octave interface. Take a CSV (colon separated format)
file in UCI machine learning repository as an example. We download
SPECTF.train. Labels are in the first column. The following steps
produce a file in the libsvm format.
matlab& SPECTF = csvread('SPECTF.train'); % read a csv
matlab& labels = SPECTF(:, 1); % labels from the 1st
matlab& features = SPECTF(:, 2:end);
matlab& features_sparse = sparse(features); % features must
be in a sparse matrix
matlab& libsvmwrite('SPECTFlibsvm.train', labels,
features_sparse);
The tranformed data are stored in SPECTFlibsvm.train.
按照上面的命令,代入自己的数据则可以达到效果。
3.可以利用weka来转换,用weka打开csv文件,再将文件重新保存为libsvm格式。方便简单,经我测试的结果也是一致的。这个方法很好,多列属性也可行。&
使用宏命令FormatDataLibsvm.xls将数据转成LIBSVM格式
( 23:52:23)&
毕业设计做的是svm,虽然不是很新的东西,但是能把它弄懂也是好的。要加一点技术含量无非就是用一些搜素算法(遗传、蚁群。。。)加入svm去寻找最优的参数,对于本科生来说还能做一下前期的数据处理,当然是用一些统计方法咯,什么数据挖掘乱七八糟的网上套,没办法,中国的学术永远是这样,不会进步,看看神经网络在中国学术界盛行的时间之长就知道学术水平了,不想多说,只是想把我这次svm的经历写一下,确实学到了很多东西。
因为也是通过网上的论坛还有其他帖子看懂的,可是觉得他们还写的不够详细,或者我自己太笨,所以想详细点从头到尾说一下,还有不明白的尽管问。。。可以交流。
当然做svm首先就要把数据的格式处理好,这么多在excel里的数据用人工的方法输到txt里是不可能的,所以有两个办法:
1,自己编一个小程序(C足够了)说说简单,编起来还是很麻烦的,虽然我专业和cs密切相关,但是真的不会。。。我们惰性很强,有现成的第二个方法干嘛还吃力不讨好?
2,使用人家已经做好的一个类似于软件一样的FormatDataLibsvm.xls(里面包含一个宏命令),没有他你要苦一阵子。
BTY,这个软件不好找,网上看了很多帖子,都是不能下载的,在别人博客上跪求几天也没人给,最后还是在一个隐晦的小网站下载下来了。哎,中国人就这样,自己有的东西就是不想共享出来,搞个p的学术啊。。。真是无语,要的联系我。
其实这个软件就是一个excel工作薄,没什么奇特,打开它就会跳出来一个对话框,选“启用宏”就行了,其他不用管它,把你要的数据拷上去就好了,但是注意下格式,网上帖子也很多,照他们说的办吧。
1,先运行FormatDataLibsvm.xls然后将数据粘贴到sheet1的topleft单元。
2,再"工具"--&"宏"--&执行下面有一个选项(FormatDatatoLibsvm)--&执行,要选中这个然后运行就可以了
,这时数据转换的问题就解决了,可是现在生成的数据是.xls格式,它还是不能做为libsvm的训练文件啊!还需要怎么转换呢?
3,可以copy到一个记事本中即可。但是注意在用libsvm的时候要在命令行输入.txt后缀。&
注意,宏安全性应当设置为中或者低。输入数据的格式是
条件属性a &条件属性b &...
输出数据格式是
决策属性 &条件属性a &条件属性b
2 & &1:7 &
1 & &1:4 &
在第2步时,执行下面还有另一个选项(FormatDatafromLibsvm)这个可以把libsvm数据的格式重新转回来,转到你第1步时刚拷贝到excel里的数据形式。
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。LIBSVM使用方法_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
LIBSVM使用方法
上传于|0|0|文档简介
&&LIBSVM 是台湾大学林智仁(Lin Chih-Jen)副教授等开发设计的一个简单、易于使
用和快速有效的SVM 模式识别与回归的软件包,他不但提供了编译好的可在Windows
系列系统的执行文件,还提供了源代码,方便改进、修改以及在其它操作系统上应用;
该软件还有一个特点,就是对SVM 所涉及的参数调节相对比较少,提供了很多的默
认参数,利用这些默认参数就可以解决很多问题;并且提供了交互检验(Cross -SVM 回
归等问题,包括基于一对
阅读已结束,如果下载本文需要使用1下载券
想免费下载本文?
定制HR最喜欢的简历
下载文档到电脑,查找使用更方便
还剩5页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢用户名:apinetree
文章数:93
访问量:276820
注册日期:
阅读量:1297
阅读量:3317
阅读量:438441
阅读量:1125296
51CTO推荐博文
1.首先从主页上下载libsvm、Python2.5.2和gnuplot 三个软件。2.准备好数据,首先要把数据转换成Libsvm软件包要求的数据格式为:&&&&label index1:value1 index2:value2 ...&&&&其中对于分类来说label为类标识,指定数据的种类&;对于回归来说label为目标值。(我主要要用到回归)&&&&Index是从1开始的自然数,value是每一维的特征值。&&&&该过程可以自己使用excel或者编写程序来完成,也可以使用网络上的FormatDataLibsvm.xls来完成。&&&&FormatDataLibsvm.xls使用说明:先将数据按照下列格式存放(注意label放最后面):value1 value2 ?? labelvalue1 value2 ?? label??&&&&然后将以上数据粘贴到FormatDataLibsvm.xls中的最左上角单元格,接着工具-&宏执行行FormatDataToLibsvm宏。就可以得到libsvm要求的数据格式。将该数据存放到文本文件中进行下一步的处理。3.对数据进行归一化。&&&&该过程要用到libsvm软件包中的svm-scale.exe&&&&Svm-scale用法:&&&&用法:svmscale [-l lower] [-u upper] [-y y_lower y_upper] [-s save_filename] [-r restore_filename] filename &&&&(缺省值: lower = -1,upper = 1,没有对y进行缩放)&&&&&其中, -l:数据下限标记;lower:缩放后数据下限;&&&&&-u:数据上限标记;upper:缩放后数据上限;&&&&&-y:是否对目标值同时进行缩放;y_lower为下限值,y_upper为上限值;&&&&(回归需要对目标进行缩放,因此该参数可以设定为 Cy -1 1 )&&&&&-s save_filename:表示将缩放的规则保存为文件save_filename;&&&&&-r restore_filename:表示将缩放规则文件restore_filename载入后按此缩放;&&&&&filename:待缩放的数据文件(要求满足前面所述的格式)。&&&&缩放规则文件可以用文本浏览器打开,看到其格式为:&&&&y&&&&lower upper min max x&&&&lower upper&&&&index1 min1 max1&&&&index2 min2 max2&&&&其中的lower 与upper 与使用时所设置的lower 与upper 含义相同;&&&&index 表示特征序号;min 转换前该特征的最小值;max 转换前该特征的最大值。&&&&数据集的缩放结果在此情况下通过DOS窗口输出,当然也可以通过DOS的文件重定向符号“&”将结果另存为指定的文件。该文件中的参数可用于最后面对目标值的反归一化。反归一化的公式为:&&&&(Value-lower)*(max-min)/(upper - lower)+lower&&&&其中value为归一化后的值,其他参数与前面介绍的相同。&&&&建议将训练数据集与测试数据集放在同一个文本文件中一起归一化,然后再将归一化结果分成训练集和测试集。4.训练数据,生成模型。&&&&用法: svmtrain [options] training_set_file [model_file]&&&&其中, options(操作参数):可用的选项即表示的涵义如下所示&&&&&-s svm类型:设置SVM 类型,默认值为0,可选类型有(对于回归只能选3或4):&&&&0 -- C- SVC &&&&1 -- n - SVC &&&&2 -- one-class-SVM &&&&3 -- e - SVR &&&&4 -- n - SVR&&&&&-t 核函数类型:设置核函数类型,默认值为2,可选类型有:&&&&&&&&&0 -- 线性核:u'*v&&&&&&&&&1 -- 多项式核: (g*u'*v+ coef 0)deg ree&&&&&&&&&2 -- RBF 核:e( u v 2) g -&&&&&&&&&3 -- sigmoid 核:tanh(g*u'*v+ coef 0)&&&&&&&&&-d degree:核函数中的degree设置,默认值为3;&&&&&&&&-g g :设置核函数中的g ,默认值为1/ k ;&&&&&&&&&-r coef 0:设置核函数中的coef 0,默认值为0;&&&&&&&&&-c cost:设置C- SVC、e - SVR、n - SVR中从惩罚系数C,默认值为1;&&&&&&&&&-n n :设置n - SVC、one-class-SVM 与n - SVR 中参数n ,默认值0.5;&&&&&&&&&-p e :设置n - SVR的损失函数中的e ,默认值为0.1;&&&&&&&&&-m cachesize:设置cache内存大小,以MB为单位,默认值为40;&&&&&&&&&-e e :设置终止准则中的可容忍偏差,默认值为0.001;&&&&&&&&&-h shrinking:是否使用启发式,可选值为0 或1,默认值为1;&&&&&&&&&-b 概率估计:是否计算SVC或SVR的概率估计,可选值0 或1,默认0;&&&&&&&&&-wi weight:对各类样本的惩罚系数C加权,默认值为1;&&&&&&&&&-v n:n折交叉验证模式。&&&&其中-g选项中的k是指输入数据中的属性数。操作参数 -v 随机地将数据剖分为n 部分并计算交叉检验准确度和均方根误差。以上这些参数设置可以按照SVM 的类型和核函数所支持的参数进行任意组合,如果设置的参数在函数或SVM 类型中没有也不会产生影响,程序不会接受该参数;如果应有的参数设置不正确,参数将采用默认值。training_set_file是要进行训练的数据集;model_file是训练结束后产生的模型文件,该参数如果不设置将采用默认的文件名,也可以设置成自己惯用的文件名。&&&&本实验中的参数-s取3,-t取2(默认)还需确定的参数是-c,-g,-p&&&&另, 实验中所需调整的重要参数是-c 和 Cg,-c和-g的调整除了自己根据经验试之外,还可以使用gridregression.py对这两个参数进行优化。(需要补充)&&&&该优化过程需要用到Python(2.5),Gnuplot(4.2),gridregression.py(该文件需要修改路径)。&&&&然后在命令行下面运行:python.exe gridregression.py -log2c -10,10,1 -log2g -10,10,1 -log2p -10,10,1 -s 3 Ct 2 -v 5 -svmtrain &&&&&&&&E:\libsvm\libsvm-2.86\windows\svm-train.exe -gnuplot E:\libsvm\libsvm-2.86\gnuplot\bin\pgnuplot.exe &&&&E:\libsvm\libsvm-2.86\windows\train.txt & gridregression_feature.parameter&&&&以上三个路径根据实际安装情况进行修改。&&&&-log2c是给出参数c的范围和步长&&&&&-log2g是给出参数g的范围和步长&&&&&-log2p是给出参数p的范围和步长上面三个参数可以用默认范围和步长&&&&&-s选择SVM类型,也是只能选3或者4&&&&&-t是选择核函数&&&&&-v 10 将训练数据分成10份做交叉验证。默认为5&&&&为了方便将gridregression.py是存放在python.exe安装目录下trian.txt为训练数据,参数存放在gridregression_feature.parameter中,可以自己命名。搜索结束后可以在gridregression_feature.parameter中最后一行看到最优参数。&&&&其中,最后一行的第一个参数即为-c,第二个为-g,第三个为-p,最后一个参数为均方误差。前三个参数可以直接用于模型的训练。&&&&然后,根据搜索得到的参数,重新训练,得到模型。5.测试&&&&用法:svmpredict [options] test_file model_file output_file options(操作参数): -b probability_estimates:是否需要进行概率估计预测,可选值为0 或者1,默认值为0。 model_file 是由svmtrain 产生的模型文件;&&&&test_file 是要进行预测的数据文件;&&&&output_file 是svmpredict 的输出文件,表示预测的结果值。输出结果包括均方误差(Mean squared error)和相关系数(Squared correlation coefficient)。用LIBSVM做回归和预测的步骤(请指点)用LIBSVM做回归和预测的步骤(请指点)首先说明,我学习SVM才几天,对基本理论还不了解,只是想利用这一工具做自己想做的事情。摸索着做了几个实验,试着把过程写下来,请大家指点。&1& 下载Libsvm、Python和Gnuplot。我用的版本分别是:Libsvm(2.8.1),Python(2.4),Gnuplot(3.7.3)。注意:Gnuplot一定要用3.7.3版,3.7.1版的有bug.&2& 修改训练和测试数据的格式(可以自己用perl编个小程序):目标值 第一维特征编号:第一维特征值 第二维特征编号:第二维特征值 ……例如:2.3 1:5.6 2:3.2表示训练用的特征有两维,第一维是5.6,第二维是3.2,目标值是2.3注意:训练和测试数据的格式必须相同,都如上所示。测试数据中的目标值是为了计算误差用&3& 分别使用Libsvm中的Windows版本的工具svmscale.exe进行训练和测试数据的归一化,svmtrain.exe进行模型训练,svmpredict.exe进行预测(1)svmscale.exe的用法:svmscale.exe feature.txt feature.scaled默认的归一化范围是[-1,1],可以用参数-l和-u分别调整上界和下届,feature.txt是输入特征文件名输出的归一化特征名为feature.scaled(2)svmtrtrain.exe训练模型我习惯写个批处理小程序,处理起来比较方便。例如svm_train.bat中训练语句为:svmtrain.exe -s 3 -p 0.0001 -t 2 -g 32 -c 0.53125 -n 0.99 feature.scaled训练得到的模型为feature.scaled.model具体的参数含义可以参考帮助文档。这里-s是选择SVM的类型。对于回归来说,只能选3或者 4,3表示epsilon-support vector regression, 4表示nu-support vector regression。-t是选择核函数,通常选用RBF核函数,原因在“A Practical Guide support vector classification”中已经简单介绍过了。-p尽量选个比较小的数字。需要仔细调整的重要参数是-c和-g。除非用 gridregression.py来搜索最优参数,否则只能自己慢慢试了。用gridregression.py搜索最优参数的方法如下:python.exe gridregression.py -svmtrain H:\SVM\libsvm-2.81\windows\svmtrain.exe -gnuplot C:\gp373w32\pgnuplot.exe -log2c -10,10,1 -log2g -10,10,1 -log2p -10,10,1 -v 10 -s 3 -t 2 H:\SVM\libsvm-2.81\windows\feature.scaled & gridregression_feature.parameter注意:-svmtrain是给出svmtrain.exe所在路径,一定要是完整的全路径-gnuplot是给出pgnuplot.exe所在路径。这里要用pgnuplot.exe这种命令行形式的,不要用wgnupl32.exe,这个是图形界面的。-log2c是给出参数c的范围和步长-log2g是给出参数g的范围和步长-log2p是给出参数p的范围和步长上面三个参数可以用默认范围和步长-s选择SVM类型,也是只能选3或者4-t是选择核函数-v 10 将训练数据分成10份做交叉验证。默认为5最后给出归一化后训练数据的全路径搜索最优参数的过程写入文件gridregression_feature.parameter(注意别少了这个&符号啊)根据搜索到的最优参数修改feature.scaled.model中的参数(3)用svmpredict.exe进行预测svmpredict.exe feature_test.scaled feature.scaled.model feature_test.predicted其中feature_test.scaled是归一化后的测试特征文件名,feature.scaled.model是训练好的模型,SVM预测的值在feature_test.predicted中核函数方法简介(1)核函数发展历史早在1964年Aizermann等在势函数方法的研究中就将该技术引入到机器学习领域,但是直到1992年Vapnik等利用该技术成功地将线性 SVMs推广到非线性SVMs时其潜力才得以充分挖掘。而核函数的理论则更为古老,Mercer定理可以追溯到1909年,再生核希尔伯特空间 (ReproducingKernel Hilbert Space, RKHS)研究是在20世纪40年代开始的。(2)核函数方法原理根据模式识别理论,低维空间线性不可分的模式通过非线性映射到高维特征空间则可能实现线性可分,但是如果直接采用这种技术在高维空间进行分类或回归,则存 在确定非线性映射函数的形式和参数、特征空间维数等问题,而最大的障碍则是在高维特征空间运算时存在的“维数灾难”。采用核函数技术可以有效地解决这样问 题。设x,z∈X,X属于R(n)空间,非线性函数Φ实现输入间X到特征空间F的映射,其中F属于R(m),n&&m。根据核函数技术有:K(x,z) =&Φ(x),Φ(z) && (1)其中:&, &为内积,K(x,z)为核函数。从式(1)可以看出,核函数将m维高维空间的内积运算转化为n维低维输入空间的核函数计算,从而巧妙地解决了在高 维特征空间中计算的“维数灾难”等问题,从而为在高维特征空间解决复杂的分类或回归问题奠定了理论基础。(3)核函数特点核函数方法的广泛应用,与其特点是分不开的:1)核函数的引入避免了“维数灾难”,大大减小了计算量。而输入空间的维数n对核函数矩阵无影响,因此,核函数方法可以有效处理高维输入。2)无需知道非线性变换函数Φ的形式和参数.3)核函数的形式和参数的变化会隐式地改变从输入空间到特征空间的映射,进而对特征空间的性质产生影响,最终改变各种核函数方法的性能。4)核函数方法可以和不同的算法相结合,形成多种不同的基于核函数技术的方法,且这两部分的设计可以单独进行,并可以为不同的应用选择不同的核函数和算法。(4)常见核函数核函数的确定并不困难,满足Mercer定理的函数都可以作为核函数。常用的核函数可分为两类,即内积核函数和平移不变核函数,如: 1)高斯核函数K(x,xi) =exp(-||x-xi||2/2σ2;2)多项式核函数K(x,xi)=(x?xi+1)^d, d=1,2,…,N;&3)感知器核函数K(x,xi) =tanh(βxi+b);4)样条核函数K(x,xi) = B2n+1(x-xi)。(5)核函数方法实施步骤核函数方法是一种模块化(Modularity)方法,它可分为核函数设计和算法设计两个部分,具体为:1)收集和整理样本,并进行标准化;2)选择或构造核函数;3)用核函数将样本变换成为核函数矩阵,这一步相当于将输入数据通过非线性函数映射到高维特征空间;4)在特征空间对核函数矩阵实施各种线性算法;5)得到输入空间中的非线性模型。显然,将样本数据核化成核函数矩阵是核函数方法中的关键。注意到核函数矩阵是l×l的对称矩阵,其中l为样本数。(6)核函数在模式识别中的应用1)新方法。主要用在基于结构风险最小化(Structural Risk Minimization,SRM)的SVM中。2)传统方法改造。如核主元分析(kernel PCA)、核主元回归(kernel PCR)、核部分最小二乘法(kernel PLS)、核Fisher判别分析(Kernel Fisher Discriminator, KFD)、核独立主元分析(Kernel Independent Component Analysis,KICA)等,这些方法在模式识别等不同领域的应用中都表现了很好的性能。修改自:本文出自 “” 博客,请务必保留此出处
了这篇文章
类别:┆阅读(0)┆评论(0)

我要回帖

更多关于 te2 摇杆 芯片问题 的文章

 

随机推荐