二、三年として、私は本当にPMMLモデルファナを呼び出すために、突然のJavaを使用して、Javaのデータマイニング技術を使用していません。
インターネットは、あなたがより良い皆を助けることができるならば、あなたは、いつでも使用することができ、実行が成功する前に、彼は、週に独自のレコードのプロセスをしようとしたコードの一部を検索します。
ソフトウェアのインストールから言えば、それはあまりにも面倒を見ていません。
まず、ツールをダウンロード(ことわざとして、その利益の事前の良い仕事!ハハ)
私はちょうど日食をインストールし始めたが、解決できない多くの問題がIDEAを使用し、そこにある、とPycharmは会社によって発行されました。
http://www.jetbrains.com/products.html#lang=java:公式サイトを入力する最初の
IDEAのダウンロードを選択します。
コミュニティ版は、あまりにも特徴以来、私は、Enterprise Editionをダウンロードし、背後には、メソッドを割れ教えてくれます。
IDEAのインストールは通常のインストールと同様に、オンラインチュートリアルを持っています。
エンタープライズアクティベーションコード我々は公共の数を集中することができ、私はまた、オンラインで見つけます。
http://idea.medeming.com/
社会的関心の後数は、ライン上に貼り付けます。
二、Javaのインストール環境
チュートリアルします。https://blog.csdn.net/weixin_38381149/article/details/89668578
ブログを参照するには、その時点でのブログを探していますが、見つかった場合は、これは非常に広い、JDK、TOMCAT、そこにMavenの。
最初は私にMavenをインストールするには長い時間がかかりました。。。
第三に、新しいMavenプロジェクト(私が言うことかわかりません...)
ファイル== "新しい=="プロジェクト== "Mavenの
第四に、依存関係を追加
私はモデルに呼んでいるので、これだけの数を追加し、多くの依存がありません
<依存性> <依存> <groupIdを> org.jpmml </ groupIdを> <たartifactId> PMML-評価</たartifactId> <バージョン> 1.4.1 </バージョン> </依存関係> <依存> <groupIdを> org.jpmml </ groupIdを> <たartifactId> PMML-評価拡張</たartifactId> <バージョン> 1.4.1 </バージョン> </依存関係> <依存> <groupIdを> javax.xml.bindの</ groupIdを> <たartifactId> JAXB-API </たartifactId> <バージョン> 2.3.0 </バージョン> </依存関係> <依存> <groupIdを> com.sun.xml.bind </ groupIdを> <たartifactId> JAXBコア</たartifactId> <バージョン> 2.3.0 </バージョン> </依存関係> <依存> <groupIdを> com.sun.xml.bind </ groupIdを> <たartifactId> JAXB-IMPL </たartifactId> <バージョン> 2.3.0 </バージョン> </依存関係> </依存関係>
第五に、PythonのトレーニングのJavaコールアウトのコードPMMLモデル
輸入org.dmg.pmml.FieldName; 輸入org.dmg.pmml.PMML; 輸入 org.jpmml.evaluator *。; 輸入org.jpmml.model.PMMLUtil; 輸入org.xml.sax.SAXException。 輸入javax.xml.bind.JAXBException。 輸入java.io.FileInputStream; 輸入java.io.FileNotFoundException。 インポートにjava.io.IOException; 輸入java.io.InputStreamを。 輸入はjava.util.ArrayList; 輸入java.util.HashMapを; 輸入はjava.util.List; 輸入java.util.Map; パブリック クラスClassificationModel { プライベート評価者modelEvaluator。 / ** * PMMLファイルのパスを渡すことによって、機械学習モデルを生成するには * * @Param pmmlFileName PMMLファイルパス * / パブリックClassificationModel(文字列pmmlFileName){ PMML PMML = nullを。 してみてください{ 場合(pmmlFileName!= nullの){ InputStreamがある = 新しいFileInputStreamを(pmmlFileName)。 PMML = PMMLUtil.unmarshal(です)。 してみてください{ 近くにあります(); } キャッチ(IOExceptionを電子){ System.out.println( "入力ストリームクローズエラー!" ); } ModelEvaluatorFactory modelEvaluatorFactory = ModelEvaluatorFactory.newInstance()。 この .modelEvaluator = (評価者)modelEvaluatorFactory.newModelEvaluator(PMML)。 modelEvaluator.verify(); System.out.println( "負荷モデルの成功!" ); } } キャッチ(SAXExceptionの電子){ e.printStackTrace(); } キャッチ(持つJAXBException電子){ e.printStackTrace(); } キャッチ(にFileNotFoundException電子){ e.printStackTrace(); } } // 特徴モデルの名前が必要です 公共の一覧<文字列> {)(getFeatureNamesを 一覧 <文字列> featureNames = 新しいのArrayList <文字列> (); リスト <のInputField> inputFields = modelEvaluator.getInputFields(); 用{(inputFieldsのInputField入力フィールド) featureNames.add(inputField.getName()のtoString())。 } リターンfeatureNames。 } // ターゲット・フィールド名の取得 、パブリック文字列GetTargetName(){ リターン modelEvaluator.getTargetFields()GET(0 ).GetName()toString()を; } // 確率分布を生成するためにモデルを使用して プライベート確率分布getProbabilityDistribution(地図<フィールド名、?> 引数){ 地図 evaluateResult = <フィールド名、?> modelEvaluator.evaluate(引数); フィールド名フィールド名 = 新しいフィールド名(getTargetName()); リターン(確率分布)evaluateResult.get(フィールド名); } // の異なるカテゴリの確率を予測するために 、公開(地図<フィールド名、ナンバー> ValueMapの<文字列、ナンバー> predictProba {引数) 確率分布確率分布 = getProbabilityDistribution(引数)。 リターンprobabilityDistribution.getValues(); } // 予測は分類 パブリックオブジェクトは、(地図<フィールド名、?>予測引数){ 確率分布確率分布 = getProbabilityDistribution(引数)。 リターンprobabilityDistribution.getPrediction(); } パブリック 静的 ボイドメイン(文字列[]引数){ CLF ClassificationModel = 新新 ClassificationModel( "D:/JupyterSpace/RandomForestClassifier_Iris.pmml" ); //アドレスモデル 一覧 <文字列> featureNames = clf.getFeatureNames(); System.out.println( "機能:" + featureNames)。 // 構築物は、予測データと 地図<フィールド名、ナンバー> = waitPreSample 新しい新しい HashMapの<> (); waitPreSample.put(新しいフィールド名( "がく片の長さ(cm)")、10 )。 waitPreSample.put(新しいフィールド名( "がく片の幅(センチ)")、1 ); waitPreSample.put(新しいフィールド名( "花弁の長さ(cm)")、3 )。 waitPreSample.put(新しいフィールド名( "花びらの幅(センチ)")、2 ); System.out.println( "waitPreSample結果を予測する:" + clf.predict(waitPreSample).toString()); System.out.println( "waitPreSample predictProba結果:" + clf.predictProba(waitPreSample).toString()); } }
注意事項:
一貫性を保つために1、クラス名とファイル名
2、ファイルを開く==「プロジェクト構造
お使いのJDKのバージョンを参照してください、ここで同じです
エラーかどうかを確認するために、プログラムを実行します。
これは私が報告間違いです。
NoClassDefFoundErrorが:javaxの/活性化/データソース
activation.jarのパッケージ:ソリューションは、ダウンロードすることです。
ダウンロード:
リンクします。https://pan.baidu.com/s/14D8cQWIJp2d7h2iljAPZ2Aの
抽出コード:6f37
それは問題になりません。質問がある、メッセージを残してください、私たちは返信。(我々はまだそれを使用することを教えてください問題が...)