我正在使用R中的包e1071来构建一个类SVM模型.我不知道该怎么做,我也没有在互联网上找到任何例子.
有人可以给出一个示例代码来表征,例如,使用一类分类模型在"虹膜"数据集中表示"setosa"类,然后测试同一数据集中的所有示例(以便检查哪些示例属于"setosa"类的特征和哪些例子没有)?
我目前使用MATLAB版本的LIBSVM支持向量机来对我的数据进行分类.LIBSVM文档提到在应用SVM之前进行扩展非常重要,我们必须使用相同的方法来扩展训练和测试数据.
"相同的缩放方法"解释如下:例如,假设我们将训练数据的第一个属性缩放[-10, +10]为[-1, +1].如果测试数据的第一个属性位于范围内[-11, +8],我们必须将测试数据缩放到[-1.1, +0.8]
[0,1]可以使用以下MATLAB代码缩放范围内的训练数据:
(data - repmat(min(data,[],1),size(data,1),1))*spdiags(1./(max(data,[],1)-min(data,[],1))',0,size(data,2),size(data,2))
Run Code Online (Sandbox Code Playgroud)
但我不知道如何正确地扩展测试数据.
非常感谢您的帮助.
我试图用我自己的数据集运行LibSVMAndroidClassification Android项目.它与已经提供的数据集完美配合,当我使用100行(小于原始大小的1%)的csv时,它也可以正常工作.但是当我尝试使用例如1000行的"Train CSV"时,我看到了这个错误.我甚至试图在Manifest.xml中设置android:largeHeap ="true"但没有任何改进.
这是我的logcat转储.
10-31 17:49:06.745: E/dalvikvm(2008): JNI ERROR (app bug): local reference table overflow (max=512)
10-31 17:49:06.745: W/dalvikvm(2008): JNI local reference table (0x754057e0) dump:
10-31 17:49:06.745: W/dalvikvm(2008): Last 10 entries (of 512):
10-31 17:49:06.745: W/dalvikvm(2008): 511: 0x42d900b0 double
10-31 17:49:06.745: W/dalvikvm(2008): 510: 0x42a19698 int
10-31 17:49:06.745: W/dalvikvm(2008): 509: 0x42d8ff78 double
10-31 17:49:06.745: W/dalvikvm(2008): 508: 0x42a195f0 int
10-31 17:49:06.745: W/dalvikvm(2008): 507: 0x42d8fe40 double
10-31 17:49:06.745: W/dalvikvm(2008): 506: 0x42a19548 int
10-31 17:49:06.745: W/dalvikvm(2008): 505: 0x42d8fd08 double
10-31 17:49:06.745: W/dalvikvm(2008): …Run Code Online (Sandbox Code Playgroud) 我是matlab的新手,不知道如何使用libsvm.是否有任何示例代码用于使用SVM对某些数据(具有2个功能)进行分类,然后可视化结果?内核(RBF,多项式和Sigmoid)怎么样?我在libsvm包中看到了自述文件,但我无法做出它的头或尾请你在matlab中使用支持向量机(SVM)给出一个2类分类的例子:
Attribute_1 Attribute_2 Class
170 66 -1
160 50 -1
170 63 -1
173 61 -1
168 58 -1
184 88 +1
189 94 +1
185 88 +1
Run Code Online (Sandbox Code Playgroud)
任何帮助将非常感激.
我试图以并行模式运行LIBSVM,但我的问题一般是在OpenMP中.根据LIBSVM常见问题解答,我使用#pragma调用修改了代码以使用OpenMP.我还通过添加-fopenmp参数修改了Makefile(对于un*x),因此它变为:
CFLAGS = -Wall -Wconversion -O3 -fPIC -fopenmp
Run Code Online (Sandbox Code Playgroud)
代码汇编得很好.我检查(因为它不是我的电脑)是否安装了OpenMP:
/sbin/ldconfig -p | grep gomp
Run Code Online (Sandbox Code Playgroud)
并看到它是 - 可能安装的:
libgomp.so.1 (libc6,x86-64) => /usr/lib64/libgomp.so.1
libgomp.so.1 (libc6) => /usr/lib/libgomp.so.1
Run Code Online (Sandbox Code Playgroud)
现在; 当我运行程序时,我没有看到任何速度改进.此外,当我检查"顶部"时,该进程最多使用%100 CPU(有8个内核),也没有CPU瓶颈(只有一个用户使用%100 CPU),我期待看到超过%100(或不同的指标)该进程正在使用多个核心.
有没有办法检查它是否正在运行多个核心?
如何在MATLAB下开始使用libsvm?
我已下载了该库,并将其解压缩C:\Program Files\MATLAB\R2012a\toolbox\,但后来我不知道如何在MATLAB中使用它.
我使用Make在Mac OS X上构建了libsvm.
$ tar xzfv libsvm-3.17.tar.gz
$ cd libsvm-3.17
$ make
Run Code Online (Sandbox Code Playgroud)
这构建了各种libsvm二进制文件:
$ ls
COPYRIGHT heart_scale svm-predict.c svm-train.c tools
FAQ.html java svm-scale svm.cpp windows
Makefile matlab svm-scale.c svm.def
Makefile.win python svm-toy svm.h
README svm-predict svm-train svm.o
Run Code Online (Sandbox Code Playgroud)
我还与此相关/usr/local:
$ ls -la /usr/local/
...
svm -> /usr/local/libsvm-3.17/
Run Code Online (Sandbox Code Playgroud)
并将Python绑定附加到我的路径:
import sys
sys.path.append('/usr/local/svm/python')
Run Code Online (Sandbox Code Playgroud)
但是Python绑定找不到"LIBSVM"库:
$ python test.py
Traceback (most recent call last):
File "test.py", line 8, in <module>
import svmutil
File "/usr/local/svm/python/svmutil.py", line 5, in <module>
from svm import …Run Code Online (Sandbox Code Playgroud) 我已经为libsvm实现了一个OpenCV/C++包装器.在对SVM参数(RBF内核)进行网格搜索时,预测始终返回相同的标签.我创建了人工数据集,这些数据集具有非常容易分离的数据(并尝试预测我刚训练过的数据),但仍然会返回相同的标签.
我使用了libsvm的MATLAB实现,并在同一数据集上实现了高精度.我一定是在设置问题时做错了,但我已多次阅读README并且我找不到问题.
以下是我设置libsvm问题的方法,其中数据是OpenCV Mat:
const int rowSize = data.rows;
const int colSize = data.cols;
this->_svmProblem = new svm_problem;
std::memset(this->_svmProblem,0,sizeof(svm_problem));
//dynamically allocate the X matrix...
this->_svmProblem->x = new svm_node*[rowSize];
for(int row = 0; row < rowSize; ++row)
this->_svmProblem->x[row] = new svm_node[colSize + 1];
//...and the y vector
this->_svmProblem->y = new double[rowSize];
this->_svmProblem->l = rowSize;
for(int row = 0; row < rowSize; ++row)
{
for(int col = 0; col < colSize; ++col)
{
//set the index and the value. indexing …Run Code Online (Sandbox Code Playgroud) 我正在使用LIBSVM.在下载包中是一个svm_toy.java文件.我无法弄清楚它是如何工作的.这是源代码:
import libsvm.*;
import java.applet.*;
import java.awt.*;
import java.util.*;
import java.awt.event.*;
import java.io.*;
/**
* SVM package
* @author unknown
*
*/
public class svm_toy extends Applet {
static final String DEFAULT_PARAM="-t 2 -c 100";
int XLEN;
int YLEN;
// off-screen buffer
Image buffer;
Graphics buffer_gc;
// pre-allocated colors
final static Color colors[] =
{
new Color(0,0,0),
new Color(0,120,120),
new Color(120,120,0),
new Color(120,0,120),
new Color(0,200,200),
new Color(200,200,0),
new Color(200,0,200)
};
class point {
point(double x, double y, byte …Run Code Online (Sandbox Code Playgroud)