琥珀色呑んだくれ備忘録

メモとか備忘録とか

random forestを予測以外の目的で使う

数年ほど前には最強と言われて一世を風靡していたrandom forestだが、予測以外にも使い道が提案されている。Rのパッケージから紹介したい。

 予測全体の把握と仮説ルールの抽出

決定木分析が便利な理由の一つは「どういうルールでその予測が成り立っているのか」を極めて簡単に可視化出来る点。inTreesパッケージは予測ルールを集計し、適当に枝狩りして全体を要約することで、アンサンブルモデルにおいても決定木と同じような情報を可視化してくれる。

www.slideshare.net

このパッケージではもう一つ、すべての木から取り出した1つずつの枝をトランザクションとみなしてアソシエーション分析する機能を提供する。メジャーな関連ルールを取り出す方に力点が置かれているが、変数同士の稀な関係が意外なアウトカムを導いてる方が、(研究上は)見つかったときに面白いので、欲を言えばLift値も評価してくれると良かった。

ノンパラメトリックな欠損値の補完

randomForestパッケージには、rfImputeという欠損値を補完する関数が用意されている。ところが、rfImputeは同じルールにより同じ予測をされる別の観察データを使って補完するため、目的変数が欠損しているデータには適用できない。

既知のデータにおいて欠測部分を推定するにはこれで構わないのだが、予測をしたいデータの前処理に使おうとするとこれでは困る。

missForestでは、補完対象の変数を目的変数とみなすことで、random forestにより欠損値を直接予測する。

www.slideshare.net

もともと予測したい変数も補完プロセスに含めることができるので半教師学習と言える。その場合、イテレーションの回数と過学習の関係が気になるが、元の論文にはその言及はなかったように思う。