4

自分のプログラムでWEKAクラスを使用して、さまざまなクラスによって生成された決定木を表示しようとしています。具体的には、J48(C4.5実装)とRandomTreeの2つの異なるものを使用しています。1つには関数graph()があり、もう1つには関数toGraph()があり、それぞれのクラスで同じ機能を持っているように見えます。

どちらも戻り型としてjava.lang.Stringを示しているので、Explorerアプリを使用したときに表示されるようなものが表示されることを期待していました。

act = STRETCH
|   size = SMALL
|   |   Color = YELLOW
|   |   |   age = ADULT : T (1/0)
|   |   |   age = CHILD : F (1/0)
|   |   Color = PURPLE
|   |   |   age = ADULT : T (2/0)
|   |   |   age = CHILD : F (1/0)
|   size = LARGE
|   |   age = ADULT : T (4/0)
|   |   age = CHILD : F (2/0)
act = DIP : F (8/0)

代わりに、次のようなものが表示されます。

digraph Tree {
edge [style=bold]
N13aaa14a [label="1: T"]
N13aaa14a->N268b819f [label="act = STRETCH"]
N268b819f [label="2: T"shape=box]
N13aaa14a->N10eb017e [label="act = DIP"]
N10eb017e [label="3: F"]
N10eb017e->N34aeffdf [label="age = CHILD"]
N34aeffdf [label="4: F"shape=box]
N10eb017e->N4d20a47e [label="age = ADULT"]
N4d20a47e [label="5: T"shape=box]
}

これはWEKAライブラリに固有のものですか、それともある種の標準Java形式ですか?別のプロジェクトで作業しているのを見たJSONのもののいくつかに似ていますが、私はそれに慣れていませんでした。

これをより人間が読める形式で表示する関数を簡単に作成する方法はありますか?

4

1 に答える 1

2

取得する出力は、graphvizによってコンパイルされるように設計されたいわゆる「ドット」形式です。アスキーアートよりも良い結果が得られることは確かです。

ファイルをに保存してから、次のout.dotコマンドを試してください。

$ dot -Tpng -oout.png out.dot 

次に、out.pngで取得したものを確認します

于 2011-02-01T02:12:13.420 に答える