1

ここ数週間、不適切な構文または論理エラーのある PMML ファイルの処理に多くの時間を費やしてきました。私の現在のプロセスでは、PMML ファイルを調べて、何が問題なのかがわかるまで JPMML コードをステップ実行しています。

私が見つけた一般的な問題、

  • PMML の変数がどこにも定義されていません
  • DerivedField If-Else ステートメントは欠落変数にフォールスルーし、missingValueReplacement を使用しません
  • 文字列値の乗算を試みました
  • DataDictionary で列挙されていないカテゴリ変数の MiningSchema で定義された invalidValueTreatment は、invalidValueTreatment が使用されないことを意味します。

PMML で使用できるデバッグ ツールは何ですか?

構文またはロジックのデバッグに役立つツールがあれば役立ちます。

4

1 に答える 1

1

おそらく、そのようなツールはまだ利用可能ではありません。私の論理では、デバッガーはエバリュエーターの上に構築されます。JPMML-Evaluator ライブラリは最先端の評価ツールであり、専用のデバッグ ツールを提供していないため、この分野で他のツールがどのように優れているかを理解するのは困難です。

PMML をデバッグする場合、2 種類の問題が発生する可能性があります。まず、XML 要素や属性の欠落、無効、または配置ミスなど、PMML ドキュメントの構造に関連する「静的エラー」があります。これらは、PMML XSD ファイルに対して XML 検証を実行するか、JPMML モデル ビジター API を使用して検出できます。第 2 に、一部のデータ レコードの評価パスに関連する「動的エラー」があります。たとえば、ご指摘のとおり、カテゴリ フィールドにハンドラのない値が割り当てられることがあります。

JPMML-Evaluator ライブラリは、エラー状態を検出するたびに例外をスローする必要があります。SAX Locator 情報を有効にしている場合、例外メッセージには、問題のある PMML コンテンツの行番号が示されます。もちろん、JPMML-Evaluator ライブラリが適切にロギングを行っていれば、デバッグ作業ははるかに簡単になります。

PMML プロデューサー アプリケーションのソース コードを分析することもできます。そもそもなぜそうしているのでしょうか?

于 2015-11-10T18:52:25.057 に答える