在Java中使用Apache Mahout测试随机梯度下降模型

时间:2014-06-04 11:23:40

标签: java classification mahout

我是Apache Mahout的新手,我想知道如何测试我用随机梯度下降算法训练的模型。

我有一个Java示例,我正在使用20个新闻组数据集训练OnlineLogisticRegression算法。

您可以在此处看到此示例:

https://github.com/jpatanooga/MahoutExamples/blob/master/src/main/java/com/cloudera/mahout/classification/sgd/TwentyNewsgroups.java

现在我没有java代码来测试我训练过的算法。如您所知,在训练算法之后,我们需要对其进行测试。

在命令行中,mahout文档建议这样做(这个例子是针对nayve bayes分类器,但我假设在SGD中它应该是相同的):

  $ mahout testnb 
        -i ${WORK_DIR}/20news-test-vectors
        -m ${WORK_DIR}/model 
        -l ${WORK_DIR}/labelindex 
        -ow 
        -o ${WORK_DIR}/20news-testing 
        -c

我有我的测试数据集和训练有素的模型。我该怎么办?

1 个答案:

答案 0 :(得分:0)

20 newsgroups tutorial中,讨论了testing script for running the examples。查看此脚本,您可以看到 testnb 命令不用于测试随机下降。

如果你按照那里的说明(引用如下),你可以运行随机下降模型 -

  

If running Hadoop in cluster mode, start the hadoop daemons by executing the following commands:

    $ cd $HADOOP_HOME/bin
    $ ./start-all.sh

Otherwise:

    $ export MAHOUT_LOCAL=true

In the trunk directory of Mahout, compile and install Mahout:

    $ cd $MAHOUT_HOME
    $ mvn -DskipTests clean install

Run the 20 newsgroups example script by executing:

    $ ./examples/bin/classify-20newsgroups.sh

如果你想知道他们在做什么,关键在于我上面提到的脚本的最后几行。替换 testnb 的命令如下:

  

./ bin / mahout org.apache.mahout.classifier.sgd.TestNewsGroups --input $ {WORK_DIR} / 20news-bydate / 20news-bydate-test / --model /tmp/news-group.model