2016-07-13 25 views
0

Ich verwende Googles Vorhersage-API. Ich habe einige Modelle trainiert und über das Webinterface von Google Vorhersagen gemacht. Ich möchte ein paar tausend Vorhersagen machen, aber das Webinterface lässt nur eine Vorhersage gleichzeitig zu. Ich habe daher das "prediction-cmdline-sample", ein Beispiel für die Verwendung der Java-Bibliothek als Schnittstelle zur Google-Vorhersage-API, leicht angepasst. Die Ergebnisse, die ich mit der Java-Bibliothek erhalte, unterscheiden sich jedoch von denen des Web-Interface.Google-Vorhersage API, Java, die unterschiedliche Ergebnisse zu Web-Schnittstelle geben

Der Code, den ich eine Vorhersage machen verwenden ist:

private static String predict(Prediction prediction, String text) throws IOException { 
    Input input = new Input(); 
    InputInput inputInput = new InputInput(); 
    inputInput.setCsvInstance(Collections.<Object>singletonList(text)); 
    input.setInput(inputInput); 
    Output output = prediction.trainedmodels().predict(PROJECT_ID, MODEL_ID, input).execute(); 
    return output.getOutputValue(); 
} 

Die Methode gibt 0.500305 unabhängig davon, was den Eingang I geben (0,500305 etwa der Mittelwert der ersten Spalte der Trainingsdaten).

Alle Vorschläge zur Behebung dieses Problems sind sehr willkommen.

Wenn jemand eine andere Möglichkeit weiß, ein paar tausend Vorhersagen zu machen, lassen Sie es mich auch wissen.

Antwort

0

Ich habe mein Problem gefunden: Ich formatierte meine Eingabe nicht korrekt. Der Code

Collections.singletonList (Text)

ist falsch für Doppeltyp-Eingänge, für String-Eingänge korrekt ist. Was es schwierig gemacht hat, diesen Fehler zu finden, ist, dass die Vorhersage-API keinen Fehler auslöst, wenn falsche Eingaben gegeben werden, sie gibt nur ein Ergebnis zurück.