标签: svm

e1071 R包的SVM方程?

我有兴趣测试SVM性能,将几个人分为四组/每组.当使用MATLAB中的svmtrain LibSVM函数时,我能够根据该等式的值得到用于对这4个组中的个体进行分类的三个方程式.计划如下:

                All individuals (N)*
                      |
 Group 1 (n1) <--- equation 1 --->  (N-n1)
                                      |
                   (N-n1-n2) <--- equation 2 ---> Group 2 (n2)
                      |
Group 3 (n3) <--- equation 3 ---> Group 4(n4)

*N = n1+n2+n3+n4
Run Code Online (Sandbox Code Playgroud)

有没有办法在e1071 R包中使用svm函数来获得这些方程式?

r machine-learning svm libsvm

17
推荐指数
1
解决办法
2万
查看次数

使用libsvm进行交叉验证后重新培训

我知道交叉验证用于选择好的参数.找到它们之后,我需要在不使用-v选项的情况下重新训练整个数据.

但我面临的问题是,在使用-v选项训练后,我获得了交叉验证的准确性(例如85%).没有模型,我看不到C和gamma的值.在那种情况下,我如何重新训练?

顺便说一句,我应用10倍交叉验证.例如

optimization finished, #iter = 138
nu = 0.612233
obj = -90.291046, rho = -0.367013
nSV = 165, nBSV = 128
Total nSV = 165
Cross Validation Accuracy = 98.1273%
Run Code Online (Sandbox Code Playgroud)

需要一些帮助..

为了获得最佳的C和gamma,我使用LIBSVM FAQ中提供的代码

bestcv = 0;
for log2c = -6:10,
  for log2g = -6:3,
    cmd = ['-v 5 -c ', num2str(2^log2c), ' -g ', num2str(2^log2g)];
    cv = svmtrain(TrainLabel,TrainVec, cmd);
    if (cv >= bestcv),
      bestcv = cv; bestc = 2^log2c; bestg = 2^log2g;
    end
    fprintf('(best c=%g, g=%g, rate=%g)\n',bestc, bestg, …
Run Code Online (Sandbox Code Playgroud)

matlab classification machine-learning svm libsvm

17
推荐指数
1
解决办法
2万
查看次数

Matlab libsvm - 如何找到w系数

如何找到矢量w是什么,即垂直于分离平面?

matlab svm libsvm

17
推荐指数
1
解决办法
2万
查看次数

SVM - 什么是功能边际?

几何边界只是某个x(数据点)与高速公路之间的欧氏距离.

什么是功能边际的直观解释是什么?

注意:我意识到这里有一个类似的问题: 如何理解SVM中的功能边界?

然而,那里给出的答案解释了等式,但没有解释它的含义(正如我所理解的那样).

machine-learning svm

17
推荐指数
2
解决办法
1万
查看次数

从sklearn导入check_arrays

我正在尝试使用scikit学习包中的svm函数来获取python,但是我收到了错误消息:

from sklearn.utils.validation import check_arrays
Run Code Online (Sandbox Code Playgroud)

ImportError:无法导入名称'check_arrays'

我正在使用python 3.4.任何人都可以给我一个建议吗?提前致谢.

python svm scikit-learn

17
推荐指数
2
解决办法
1万
查看次数

在sklearn中,具有线性内核的SVM模型与具有loss = hinge的SGD分类器之间的区别是什么

我看到在scikit-learn中我可以用最后3种不同的方式构建一个带线性内核的SVM分类器:

现在,我看到前两个分类器之间的区别在于前者是用liblinear实现的,后者是用libsvm实现的.

前两个分类器与第三个分类器有何不同?

machine-learning svm scikit-learn

17
推荐指数
1
解决办法
5371
查看次数

用于规范化sklearn SVM输入的正确功能

我发现了几个与此相关的问题,但没有人解决我的疑虑.特别是,这个问题的两个答案让我更加困惑.

我正在基于一组特征训练线性SVM - 由图像产生的卷积神经网络特征.例如,我有一个3500x4096 X矩阵,像往常一样在列上的行和特征上有例子.

我想知道在输入SVM之前如何正确地标准化/规范化这个矩阵.我看到两种方式(使用sklearn):

  1. 标准化功能.它导致具有0均值和单一标准的特征.

    X = sklearn.preprocessing.scale(X)
    
    Run Code Online (Sandbox Code Playgroud)
  2. 规范化功能.它导致具有单一规范的特征.

    X = sklearn.preprocessing.normalize(X, axis=0)
    
    Run Code Online (Sandbox Code Playgroud)

归一化(76%准确度)比标准化(68%准确度)明显更好.

它是完全依赖数据集的选择吗?或者如何在这两种技术之间做出选择?

python statistics machine-learning svm scikit-learn

17
推荐指数
1
解决办法
7477
查看次数

如何利用高维输入空间来解决机器学习问题?

当我尝试在一些高维输入上应用一些ML算法(分类,更具体地说,特别是SVM)时,我应该如何处理,我得到的结果不太令人满意?

可以显示1,2或3维数据以及算法的结果,这样您就可以了解正在发生的事情,并了解如何解决问题.一旦数据超过3个维度,除了直观地使用参数,我不确定如何攻击它?

classification machine-learning svm

16
推荐指数
2
解决办法
2万
查看次数

ValueError:使用序列设置数组元素.而在scikit-learn中使用SVM

我一直致力于scikit-learn SVM的二进制分类问题.我已经计算了音频文件的功能并将它们写入CSV文件.这就是CSV文件中每一行的样子:

"13_10 The Long And Winding Road " "[-6.5633095666136669e-16,-1.56E-15,-3.21E-15,-2.20E-
15,-2.52E-15,-3.04E-15,-3.39E-15,-3.47E-15,-3.07E-15,-6.02E-15,-3.00E-15,-4.77E-15,-3.05E-
15,-2.13E-15,-1.57E-15,-1.87E-15,-2.05E-15,-1.76E-15,-1.38E-15,-9.89E-16,-7.89E-16,-8.99E-
16,-1.09E-15,-7.26E-16,-8.68E-16,-4.68E-16,-2.82E-16,-1.99E-16,-1.75E-16,-2.18E-16,-1.43E-
16,-1.56E-16,-1.91E-16,-1.21E-16,-4.82E-17,-4.39E-17,-2.89E-17,-2.05E-17,0.0]" 0
Run Code Online (Sandbox Code Playgroud)

第一列具有Audio的名称,第二列具有要素数组,最后一个要素是用于二进制分类的标签{0,1}.

数组中有39个浮点值.我使用以下代码从CSV文件中提取它们.

with open('File.csv', 'rb') as csvfile:
    albumreader = csv.reader(csvfile, delimiter=' ')
    data = list()
    for row in albumreader:
        data.append(row[0:]) 
data = np.array(data)

X_train = list()
Y_train = list()
k = data.shape[0]

for i in range(k):
    feature = data[i][1]
    x = map(float, feature[1:-2].split(','))
    X_train.append(x)
    label = data[i][2]
    y = float(label)
    Y_train.append(y)    
Run Code Online (Sandbox Code Playgroud)

因此,当我打印X_train和Y_train时,我得到数组中的确切值.但是当我使用时

clf = svm.SVC(C=1.0, cache_size=200,kernel='linear', max_iter=-1)
clf.fit(X_train,Y_train)
Run Code Online (Sandbox Code Playgroud)

我得到错误说

Traceback (most recent call last):
File …
Run Code Online (Sandbox Code Playgroud)

csv arrays svm python-2.7 scikit-learn

16
推荐指数
2
解决办法
4万
查看次数

libsvm java实现

我正在尝试使用libsvm的java绑定:

http://www.csie.ntu.edu.tw/~cjlin/libsvm/
Run Code Online (Sandbox Code Playgroud)

我已经实现了一个"平凡"的例子,它可以在y中轻松地线性分离.数据定义为:

double[][] train = new double[1000][]; 
double[][] test = new double[10][];

for (int i = 0; i < train.length; i++){
    if (i+1 > (train.length/2)){        // 50% positive
        double[] vals = {1,0,i+i};
        train[i] = vals;
    } else {
        double[] vals = {0,0,i-i-i-2}; // 50% negative
        train[i] = vals;
    }           
}
Run Code Online (Sandbox Code Playgroud)

第一个"特征"是类,并且训练集类似地定义.

训练模型:

private svm_model svmTrain() {
    svm_problem prob = new svm_problem();
    int dataCount = train.length;
    prob.y = new double[dataCount];
    prob.l = dataCount;
    prob.x = new svm_node[dataCount][];     

    for (int i …
Run Code Online (Sandbox Code Playgroud)

java svm libsvm

15
推荐指数
1
解决办法
3万
查看次数