Exploratory コミュニティ

ランダムフォレストの結果がfactor型予測変数のベースレベルによって変わる

#1

ランダムフォレストの予測変数をfactorにして、ベースレベルを変更した場合に変数重要度の順位などの結果が変わるようです。

ランダムフォレストの場合は、線形回帰やロジスティック回帰などの統計モデルと違い、カテゴリデータのベースレベルという概念がないので、ベースレベルを変更しても結果に違いは出ないはずではないのでしょうか?

※こちらは、カスタマーサポートに寄せられた質問を、個別の事情を伏せた上で公開させていただいたものです。

#2

ランダムフォレストは、ランダム変数を利用したアルゴリズムなので、本来、結果にある程度ばらつきがあります。

Exploratoryで同じ設定で繰り返し走らせたときは何度走らせても同じ結果が出るとおもいますが、これはランダム変数のシードをデフォルトで固定して、同じランダム変数列を繰り返し使用することにより、結果が再現するようにしてあるためです。
この、同じランダム変数列を繰り返し使用したときに全く同じ結果がでるということが起きるには、アルゴリズムの動きとして、全く同じことが全く同じ順序で起きる必要があるのですが、列のfactorとしての順序が変わると、ランダム変数列が同じでも、それによって何が起きるかは全く同じにはならないため、結果に違いがでてきます。

ただ、この違いは、本来ランダムフォレストが持つ程度のばらつきの範囲内であるはずなので、データにもよりますが、通常は細かな数値は違えど、同じような解釈ができる結果になるということが多いです。

また、データの数が少ないほど、ランダム性の影響が大きくなり、データの数が大きくなるほど、結果は安定してきます。

ランダム性の影響がどの程度出る状況なのかを確認するには、こちらのランダム・シードを変更して結果を見てみるということもできます。

image

ランダムシードを変更したときの結果のばらつきと同程度以下の違いであれば、これは期待される程度のばらつきであるということになります。

1 Like