2

私はmahoutを初めて使用します。そして、ここにリストされている標準の「ドーナツ」の例を試しています。

http://imiloainf.wordpress.com/2011/11/02/mahout-logistic-regression/

したがって、この例は魅力のように機能します。

しかし、データセットに実装しようとすると(whcihは巨大なデータセットです)、機能しません。

データセットは1つのcsvファイルにあります。多くの機能(〜100)があり、1TBのファイルであることを除いて、すべて同じです。

このエラーが発生します。

 bin/mahout trainlogistic  --input /path/mahout_input/complete/input.csv \
--output mahoutmodel --target default --categories 2 --predictors O1 E1 I1 \
 --types numeric --features 30 --passes 100 --rate 50
Running on hadoop, using HADOOP_HOME=/opt/mapr/hadoop/hadoop-0.20.2
No HADOOP_CONF_DIR set, using /opt/mapr/hadoop/hadoop-0.20.2/conf
Exception in thread "main" java.lang.NullPointerException
        at org.apache.mahout.classifier.sgd.CsvRecordFactory.firstLine(CsvRecordFactory.java:167)
        at org.apache.mahout.classifier.sgd.TrainLogistic.main(TrainLogistic.java:75)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.apache.hadoop.util.ProgramDriver$ProgramDescription.invoke(ProgramDriver.java:68)
        at org.apache.hadoop.util.ProgramDriver.driver(ProgramDriver.java:139)
        at org.apache.mahout.driver.MahoutDriver.main(MahoutDriver.java:187)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.apache.hadoop.util.RunJar.main(RunJar.java:186)

私は何が間違っているのですか?

これをどのようにデバッグしますか..エラーは何ですか?

ありがとう

4

3 に答える 3

3

私の推測では、入力が存在しないか、空です。それ/path/mahout_input/complete/input.csvが本当にあなたの言っていることだと思います。

于 2012-11-15T20:40:17.103 に答える
3

入力パスをチェックするか、入力パスの最初の行の値が「x1」、「x2」、「x3」、「lablel」などのようになっていることを確認してください。

于 2013-02-05T09:41:32.437 に答える
0

私にも起こりました。

私のせいは、列に存在しない誤った--targetパラメーターをバイパスすることでした。具体的には私のヘッダー行は

myColumn1,myColumn2,myColumn3

そして私のコマンドラインは

mahout trainlogistic --input ./input.csv --output ./logistic_model
--target myMisTypedColumn1 --predictors myColumn2 myColumn3 --types www --features 2 --passes 100 --rate 50 --categories 2

もう1つのヒントは、「(引用符)または長い列名を使用しないでください。したがって、「mahoutは私の列名が気に入らなかったのですか?」などの頭痛の種を避ける必要があります。

そしてMAHOUTへのフィードバックとして:エラーメッセージはひどいです。このような有望なフレームワークでは、「NullPointerException」が発生することはありません。

于 2015-07-01T07:54:43.433 に答える