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);
}