【问题标题】:how make files training and testing in svm multi label?如何在 svm 多标签中进行文件训练和测试?
【发布时间】:2017-02-25 06:38:00
【问题描述】:

如何在 svm 多标签中进行文件训练和测试? 我的问题是https://www.quora.com/Can-anyone-give-me-some-pointers-for-using-SVM-for-user-recognition-using-keystroke-timing/answer/Chomba-Bupe?snid3=364610243&nsrc=1&filter=all

我的项目是动态键盘,一个用户与所有用户进行培训 例如,如果您有三个类 A、B 和 C,那么您将拥有 3 个 SVM,每个都有自己的参数,即权重和偏差以及分别对应于 3 个类的 3 个单独的输出。在训练 SVM-A 时,另外两个类 B 和 C 作为负训练集,而 A 作为正训练集,那么在训练 SVM-B 时,A 和 C 是负训练集,而对于 SVM-C,A 和 B 是负训练集。这就是所谓的 one vs all 训练过程。

我试了,结果出错了

我的训练文件是 .csv,包含:

65 134,+1

70 98,+1

73 69,+1

82 122,+1

82 95,+1

83 127,+1

84 7,+1

85 64,+1

65 123,-1

71 115,-1

73 154,-1

73 156,-1

77 164,-1

77 144,-1

79 112,-1

83 91,-1

我要测试的文件是 .csv,内容是:

65 111

68 88

70103

73 89

82 111

82 79

83 112

84 36

85 71

我的代码是

    'use strict';

var so = require('stringify-object');
var Q = require('q');
var svm = require('../lib');
var trainingFile = './archivos/training/340.txt';
var testingFile = './archivos/present/340.txt';

var clf = new svm.CSVC({
    gamma: 0.25,
    c: 1, // allow you to evaluate several values during training
    normalize: false,
    reduce: false,
    kFold: 1 // disable k-fold cross-validation
});

Q.all([
    svm.read(trainingFile),
    svm.read(testingFile)
]).spread(function (trainingSet, testingSet) {
    return clf.train(trainingSet)
        .progress(function(progress){
            console.log('training progress: %d%', Math.round(progress*100));
        })
        .then(function () {
            return clf.evaluate(testingSet);
        });
}).done(function (evaluationReport) {
    console.log('Accuracy against the testset:\n', so(evaluationReport));
});

enter code here

【问题讨论】:

    标签: machine-learning svm libsvm


    【解决方案1】:

    你的标签是 1 和 -1 吗?如果是这样,您还需要了解测试数据的这些类。测试你的分类器的目的是看它对看不见的数据的预测能力。

    作为一个小例子,您可以使用训练数据构建分类器: x_train = [65, 134], [70,98]....... [79, 112], [83, 91] y_train = [ 1, 1, ....-1, -1]

    然后您通过传入您的测试数据来测试您的分类器。假设您通过了测试数据中的前三个示例,它会做出以下预测。 [65, 111] --> 1 [68, 88] -->-1 [70,103] -->-1 然后,您计算它预测正确的测试数据的数量,但为了做到这一点,您首先需要知道测试数据的类别。如果您没有,也许您想尝试对您的训练数据进行交叉验证。

    【讨论】:

    • 我有很多用户,每个用户都有一个文件训练,第一列表示ascii中的key,第二列表示按下的时间,在输入文本中获取静态
    猜你喜欢
    • 2013-08-05
    • 2021-05-19
    • 2014-01-31
    • 1970-01-01
    • 1970-01-01
    • 2018-05-28
    • 2012-08-23
    • 2018-05-17
    • 2019-07-22
    相关资源
    最近更新 更多