プロが教える店舗&オフィスのセキュリティ対策術

機械学習C4.5について調べているのですが
調べ方が悪いせいか、Webに公開されいるもののほとんどが
ID3に関するものばかりで
調べたいC4.5については見つけることができませんでした。

C4.5の決定木アルゴリズムを理解して
実際にプログラムを組んでみたいと思っているので
どなたかアルゴリズムを教授いただけないでしょうか?


ID3の説明ページを読む限りでは
(http://ja.wikipedia.org/wiki/ID3)
離散値については計算できそうなのですが
連続値に関して理解ができていません。


仮に以下のようなデータがあった場合に
どのように計算するのでしょうか?


----------------------------------------------
生徒 国語 数学 英語 進学校
A 50 50 60 S
B 30 40 50 T
C 90 80 90 U
D 80 70 70 U
E 60 40 70 S
----------------------------------------------



以上よろしくお願いいたします。

A 回答 (2件)

あいかわらずソースも読まず回答してみますが、御容赦くださいませ。


(解読していると永遠に回答できそうにないので)
ですのでC4.5というより2分木の一般論ですが、

どこで分けるのか?と言う事に関しては、
たとえば国語だったら
C>D>E>A>B
の順なので、4つの不等号のどこかで分けることになります。
数学や英語も含めて一番きれいに分かれるところをとればよい、
ということになろうかと思います。

たとえばCとDの間でわけるとして、具体的なしきい値をどこにするか?
は本質的にはどこでもよいと思います。
うろ覚えですが実際には、
「意味のある値」ということで与えられたデータにある値を使っている
ケースが多かったと印象があります。
(具体的にC4.5がどうだったか覚えていませんが)

C4.5がどうなっているかは、公開されているコードを解読されるのが
おすすめです。
    • good
    • 0
この回答へのお礼

たびたびのごかいとうありがとうございます。
あれからさらに調べてみたのですがなんとも言えずという状態のため
本を購入してアルゴリズムをしっかりと勉強使用と思いました。

やはりコードを読んでしまうと作る意味をあまり感じなくなってしまうので
あくまでもプログラムの先入観をなしで挑戦したいと思います。

お礼日時:2010/08/02 00:02

C4.5は使ったことがあるだけなので、正確なところが解説できず申し訳ありませんが、


C4.5はQuinlan自身がソースを公開してますから、
それを試してみる&解読するのが最も正確だと思います。

大昔はソースコード付きの解説本があったそうですが絶版だと思います。
(少なくとも日本語版は。再販とかしてなければ)

勉強のために自力でコーディングしたいと言うことであればこの回答は忘れてください。

C4.5が正確にどうなっているか分かりませんが、連続値なら好きなところしきい値をきめて
2分してしまえばあとは2カテゴリの離散のケースと一緒ではないでしょうか。

参考URL:http://www.rulequest.com/Personal/
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

自力でコーディングしてみたいと思っています・・・。

>連続値なら好きなところしきい値をきめて
>2分してしまえばあとは2カテゴリの離散のケースと一緒ではないでしょうか。

C4.5の説明が記載されているページを読んで
ソートを行ってから分ける場所を決めるということは理解できたのですが
閾値はどうやって決めるのでしょうか?
(やっぱり単純に計算をするのだと思うのですが…)

お礼日時:2010/07/22 01:12

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


人気Q&Aランキング