2016-07-24 4 views
0

Ich bin neu in der Verwendung von deeplearning4j. Ich führe den paragraphvector-Klassifikator auf einem Datensatz mit beschrifteten und unmarkierten Daten aus und erhalte ein Ergebnis. Wenn ich es erneut auf demselben Dataset mit derselben Konfiguration ausführe, erhalte ich weitere Ergebnisse! Die neuen Ergebnisse liegen nahe bei den vorherigen, aber warum werden leicht unterschiedliche Ergebnisse erzielt ?! Was ich mit geringfügig anderen Ergebnissen meine, ist wie beim ersten Durchlauf, dass es zwei Test-Samples zu der ersten Klasse, die wir haben, erkennt und zuweist und im zweiten Lauf diese zwei Samples oder wahrscheinlich eines von ihnen einer anderen Klasse zuweist. Es passiert normalerweise nur für eine oder zwei oder drei Proben. Vielleicht musste ich Sie im Voraus darüber informieren, dass wir drei Klassen haben, die alle mit Krebserkrankungen in Verbindung stehen. Jeder Hinweis/Hilfe/Beratung würde sehr geschätzt werden.ParagraphVectors in deeplearning4j

Ich benutze eine solche Konfiguration unter:

paragraphVectors = new ParagraphVectors.Builder() 
.learningRate(0.2) 
.minLearningRate(0.001) 
.windowSize(2) 
.iterations(3) 
.batchSize(500) 
.workers(4) 
.stopWords(stopWords()) 
.minWordFrequency(10) 
.layerSize(100) 
.epochs(1) 
.iterate(iterator) 
.trainWordVectors(true) 
.tokenizerFactory(tokenizerFactory) 
.build(); 

Antwort

0

Problem stellte sich heraus, mit dem tokenizer schlecht eingegeben werden.

+0

Danke für die Antwort! Ich verwende StemmingPreprocessor anstelle von CommonPreprocessor, um den Tokenisierungsteil zu lösen. Was meinst du mit schlechtem Input? –

+0

Ich überschreibe auch den StemminPreprocessor wie folgt, um aufeinanderfolgende Ziffern in Leerzeichen zu konvertieren: @Override public String preProcess (Zeichenfolge-Token) { token = token.toLowerCase(); String base = super.preProcess (Token); base = base.replaceAll ("\\ d +. *", ""); Rückkehrbasis; } –

Verwandte Themen