1 / 25

Eclipse で Weka の API を呼び出す

Eclipse で Weka の API を呼び出す. Eclipse で Weka の API を呼び出す. Weka ではライブラリーが公開されていて、自分 で作ったプログラムから Weka の API ( Weka の製作者が用意したクラスやメソッド等)を呼び出すことができます さっそく Eclipse を起動しましょう. Eclipse で Weka の API を呼び出す. 適当な名前で Java プロジェクトを作ります   画像は WekaProject にしています. Eclipse で Weka の API を呼び出す. プロジェクトフォルダを右クリックし、

makala
Download Presentation

Eclipse で Weka の API を呼び出す

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. EclipseでWekaのAPIを呼び出す

  2. EclipseでWekaのAPIを呼び出す • Wekaではライブラリーが公開されていて、自分で作ったプログラムからWekaのAPI(Wekaの製作者が用意したクラスやメソッド等)を呼び出すことができます • さっそくEclipseを起動しましょう

  3. EclipseでWekaのAPIを呼び出す • 適当な名前でJavaプロジェクトを作ります   画像はWekaProjectにしています

  4. EclipseでWekaのAPIを呼び出す プロジェクトフォルダを右クリックし、 ビルド・パス→ ビルドパスの構成と開いていきます

  5. EclipseでWekaのAPIを呼び出す • 図のような画面が出るので、外部jarの追加をクリックします

  6. EclipseでWekaのAPIを呼び出す • Wekaをインストールしたところにあるweka.jarを選択して開きます

  7. EclipseでWekaのAPIを呼び出す • ライブラリーの欄にweka.jarが表示されていれば成功です。OKを押して閉じます

  8. EclipseでWekaのAPIを呼び出す • プロジェクトの欄からもweka.jarが追加されていることがわかります ※weka.jarの場所を変更した場合は追加し直す必要があります

  9. サンプルコードの実行 • 参考資料からJ48Test.javaをダウンロードして実行してみましょう ※作成したball.arffをコピーしてプロジェクト直下に置くこと

  10. 実行結果 Ball.csvの解析結果が出力されました

  11. プログラムの流れ データの読み込み・クラスの設定 ↓ (フィルターの設定) ↓ アルゴルズムの設定 ↓ 結果の評価

  12. データの読み込み データを読み込みます。 Instancesは扱うデータの集合の情報をもつクラスです 読み込んだ後にインデックス(何を出力するか)を設定します DataSourcesource = new DataSource(“ball.arff"); Instances data = source.getDataSet(); data.setClassIndex(data.numAttributes() - 1);

  13. フィルターの設定 データの属性を減らしたり、値を補正する場合はフィルターの設定をします。 今回の例では設定をしていません

  14. アルゴリズムの設定 • フィルターの設定ができたら、アルゴリズムの指定をしてデータマイニングを行います • アルゴリズム毎にクラスが用意されています J48 j48 = new J48(); j48.buildClassifier(data);

  15. 結果の評価 • マイニングの具体的な評価を見たい時はEvaluationクラスを呼び出して出力します Evaluation eval = new Evaluation(data); eval.evaluateModel(j48, data); System.out.println(eval.toSummaryString()); System.out.println(eval.toClassDetailsString()); System.out.println(eval.toMatrixString());

  16. 木の図示 • 木のビジュアライズをするTreeVisualizerクラスを使うことで木の図示も可能です

  17. 木の図示 図示する木の情報やノードの設定をしてフレームに載せます TreeVisualizertv = new TreeVisualizer(null, j48.graph(), new PlaceNode2()); jf.getContentPane().add(tv, BorderLayout.CENTER); jf.setVisible(true); tv.fitToScreen();

  18. 決定木からルールを取り出す • 生成した木からルールを抽出し、新しく得られたボールのデータを評価してみましょう

  19. J48クラスのtoSourceメソッドを使う • J48クラスには、Javaコード形式のIF-THEN形式のルールを出力するtoSourceメソッドがあります String source =j48.toSource(クラス名);

  20. ルールを出力するコード // 生成するjavaファイル名 String className = "BounceBallRule"; // javaコードの生成 String cl = j48.toSource(className); // ファイルの生成(同じフォルダに出力) PrintWriter pw = new PrintWriter(new BufferedWriter(new FileWriter( new File("src/" + className + ".java")))); // ファイルにルールを書き込む pw.println(cl); // ファイルを閉じる pw.close();

  21. 実行結果 • プログラムを実行するとソースフォルダにBounceBallRule.javaというのが作成されています

  22. 実行結果 • Eclipse上でも確認できます。 表示されていない場合は、パッケージを右クリックしてリフレッシュを押す

  23. 生成されたクラス class BounceBallRule { public static double classify(Object[] i) throws Exception { double p = Double.NaN; p = BounceBallRule.N1100d7a0(i); return p; } static double N1100d7a0(Object []i) { double p = Double.NaN; if (i[3] == null) { p = 0; } else if (i[3].equals("Yes")) { p = 0; } else if (i[3].equals("No")) { p = 1; } return p; } } 革製かどうかによる分類

  24. ルールクラスの使い方 • 新しいデータの値を引数にして、classifyメソッドを呼び出します 図は、Size:Small, Color:Blue, Weight:Light, Rubber?:No というボールの情報を設定

  25. 新しいデータの評価 • さっそく新しいデータを評価してみましょう このボールは弾まないという結果が得られた

More Related