2016/12/05
2020/05/04
Rで同じプログラム(関数)なのに結果が変わる時は?
R言語では、同じプログラム、同じ関数を使って、同じデータを解析しているのに、その解析結果が変わることがあります。
例えば、Rのパッケージ、”ada”に入っている関数ada()を使って、AdaBoostを行うとき、実行するたびに、結果が変わることがあります。
※R言語入門のトップページはこちら
対処法
解析ごとに結果が変わってしまうのは、関数の中でR側が用意した乱数を使っているから、であることがあります。
そして、乱数はシードと呼ばれるものによって決定されます。Rでは何も設定しなければ、シードはランダムに決まります。そこで、シードをこちら側で固定してあげることで、結果が変わるのを防げます。それは、プログラムの最初に次のように記載します。
プログラム
set.seed(125)
この場合ではシードを125に設定していますが、ここの値はなんでも大丈夫です。プログラムにこの1行を加えることで、結果が変わる問題が解決することがあります。
もし、「同じプログラムで、同じ関数、同じデータなのに、なんで毎回結果が違うんだ!」とお悩みの方がいましたら、是非お試しください。
※R言語入門のトップページはこちら
(totalcount 14,464 回, dailycount 35回 , overallcount 16,640,710 回)
Recommended