Rで同じプログラム(関数)なのに結果が変わる時は?

[記事公開日]2016/12/05 [カテゴリー]R言語入門 Written by  IMIN

R言語では、同じプログラム、同じ関数を使って、同じデータを解析しているのに、その解析結果が変わることがあります。

例えば、Rのパッケージ、"ada"に入っている関数ada()を使って、AdaBoostを行うとき、実行するたびに、結果が変わることがあります。

 
 

対処法

解析ごとに結果が変わってしまうのは、関数の中でR側が用意した乱数を使っているから、であることがあります。

そして、乱数はシードと呼ばれるものによって決定されます。Rでは何も設定しなければ、シードはランダムに決まります。そこで、シードをこちら側で固定してあげることで、結果が変わるのを防げます。それは、プログラムの最初に次のように記載します。

プログラム

set.seed(125)

この場合ではシードを125に設定していますが、ここの値はなんでも大丈夫です。プログラムにこの1行を加えることで、結果が変わる問題が解決することがあります。

 

もし、「同じプログラムで、同じ関数、同じデータなのに、なんで毎回結果が違うんだ!」とお悩みの方がいましたら、是非お試しください。

  • スポンサーリンク

  • コメントを残す

    メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

    CAPTCHA