J'utilise Steam pour tenter de construire un service de prédiction en utilisant un script de pré-traitement python. Lorsque python transmet les données nettoyées au service de prédiction dans leh2o Servlet de prédiction de vapeur n'acceptant pas les valeurs de caractères du script python
variable:value var2:value2 var3:value3
le format
(comme on le voit dans le Spam Detection Example) Je reçois un
ERROR PredictPythonServlet - Failed to parse
erreur du service. Quand je regarde le fichier PredictPythonServlet.java il semble utiliser uniquement la fonction strMapToRowData
qui prend chaque valeur dans la chaîne d'entrée est un nombre:
for (String p : pairs) {
String[] a = p.split(":");
String term = a[0];
double value = Float.parseFloat(a[1]);
row.put(term, value);
}
sont des valeurs de caractères ne peuvent pas être envoyés dans ce format? Si oui, existe-t-il un moyen d'obtenir le fichier PredictPythonServlet
pour utiliser la fonction csvToRowData
définie mais jamais utilisée? Je ne voudrais pas avoir à utiliser l'encodage One-Hot pour mes modèles, donc être capable de passer la représentation réelle de la chaîne de caractères serait idéal.
De plus, je suis passé à la représentation numérique trouvée dans le fichier pojo modèle pour les variables et reçu l'erreur:
hex.genmodel.easy.exception.PredictUnknownTypeException: Unexpected object type java.lang.Double for categorical column home_team
il ressemble le service attend une chaîne de caractères, mais je ne peux pas comprendre comment le transmettre au modèle actuel. Toute aide serait grandement appréciée!
J'utilise un modèle GBM et utilise la gestion catégorielle 'Enum' pour que le modèle sache accepter des chaînes pour ces variables, et non des valeurs numériques. –
Salut Matt, j'ai modifié le code pour revenir à l'utilisation de la chaîne si elle ne peut pas l'analyser comme un flotteur. Le code a été poussé donc cela devrait fonctionner pour vous maintenant. – Magnus
J'ai soumis un PR (https://github.com/h2oai/steam/pull/375) pour ajouter également cette modification à la fonction strMapToRowData. Le modèle GBM que j'utilise semble être par défaut strMapToRowData pas la fonction sparseToRowData –