ID3(事例集合 S, 属性名のリスト Alist) { node=決定木の節点を生成する if(S中の全ての事例が同じクラス) { nodeにそのクラスをラベル付けする return(node); } if(Alistが空) { nodeにS中の事例が最も多くとるクラスをラベル付けする return(node); } A=Alistの中でSを最も良く分類する(例えば,獲得情報量最大の)属性 nodeの判定のための属性をAとする for(each 属性値v of A) { nodeにA=vという判定を行う枝を追加する Sv=S中でA=vとなる事例の集合 if(Svが空) { new=新しい節点を生成する newにS中の事例が最も多くとるクラスをラベル付けする } else new=ID3(Sv, Alist-{A}); 追加した枝にnewを接続する } return(node); }