2016-10-16 2 views
0

Wie machen Dateien Schulungen und Tests in SVM-Multi-Label? meine Frage ist 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=allwie machen dateien training und testen in svm multi label?

mein Projekt dynamische Tastatur, ein Benutzer gegen alle Benutzer für die Ausbildung Wenn Sie zum Beispiel drei Klassen A, B und C haben Sie dann 3 SVM mit jeweils eigenen Parametern haben also Gewichtungen und Bias und 3 getrennte Ausgänge entsprechend den 3 Klassen. Beim Training von SVM-A wirken die anderen beiden Klassen B und C als negative Trainingssätze, während A positiv ist, dann wenn Training SVM-B A und C negative Trainingssätze sind und für SVM-C A und B die negativen sind. Dies ist das sogenannte Eins-gegen-alle-Training-Verfahren.

Ich versuche aber das Ergebnis schief geht

die Ausbildung meiner Datei .csv und enthält:

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

und meine Datei-Tests ist.CSV und Inhalt ist:

mein Code

'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 

Antwort

1

Ihre Etiketten 1 und -1 sind? Wenn ja, müssen Sie diese Klassen auch für Ihre Testdaten kennen. Der Punkt, an dem Sie Ihren Klassifikator testen, ist, zu sehen, wie gut er ungesehene Daten vorhersagen kann.

Als kleines Beispiel, das Sie Ihren Klassifikator mit Trainingsdaten aufbauen könnten: x_train = [65, 134], [70,98]....... [79, 112], [83, 91] y_train = [ 1, 1, ....-1, -1]

Dann testen Sie Ihren Klassifikator indem Sie in Ihren Testdaten übergeben. Angenommen, Sie geben die ersten drei Beispiele in Ihren Testdaten an und machen die folgenden Vorhersagen. [65, 111] --> 1 [68, 88] -->-1 [70,103] -->-1 Sie dann Tally, wie viele Stücke von Testdaten es richtig vorhergesagt, aber um das zu tun, dass Sie die Klassen Ihrer Testdaten wissen müssen, um mit zu beginnen. Wenn Sie das nicht haben, möchten Sie vielleicht eine Überprü- fung Ihrer Trainingsdaten durchführen.

+0

Ich habe viele Benutzer, jeder Benutzer haben eine Datei Ausbildung, die erste Spalte bedeutet den Schlüssel in ascii und zweiten Spalten bedeutet die Zeit gedrückt, erhalten in getippt einen Text statisch – hubman

Verwandte Themen