0
我是利用deeplearning4j中的新功能。我正在包含标记和未标记数据的数据集上运行paragraphvector分类器,并获得结果。当我使用相同的配置再次在相同的数据集上运行它时,我会得到另一个结果!新的结果接近前一个,但它为什么会产生稍微不同的结果?!我的意思是,结果几乎不同,就像第一次运行时一样,它会检测并分配两个测试样本给我们的第一个类,第二次运行时,它将这两个样本或可能其中一个分配给另一个类。它通常只发生一两个或三个样本。也许我需要事先通知你,我们有三个班,他们都与癌症类型有关。 任何提示/帮助/建议将不胜感激。deeplearning4j中的段落插图
我使用了这样的配置如下:
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();
感谢您的回复!我使用StemmingPreprocessor而不是CommonPreprocessor来处理标记化部分。你的意思是不好的输入是什么意思? –
我也覆盖了StemminPreprocessor,如下所示将连续的数字转换为空格:@Override \t public String preProcess(String token){ token = token.toLowerCase(); String base = super.preProcess(token); base = base.replaceAll(“\\ d +。*”,“”); 返回基地; } –