質問: 機械学習の際に、データ型をベクトル型から、因子型にas.factor()を用いて変換されたと思います。あとで、機械学習させたときにめんどくさいと聞いたのですが、それはなぜなのでしょうか。ご回答、よろしくお願い致します。
回答: 今回使用した{e1071}パッケージのsvm関数も、{randomForest}パッケージのrandomForest関数も、実は機械学習「分類」だけでなく、重回帰分析と同じように「回帰」もできるようになっています。そして、これらの関数はformula式を引数に受け取った際に、Rの動的型付けにのっとって > 目的変数がカテゴリ型(factor型)の場合は分類 > 目的変数が数値型(numeric型:つまり連続値)の場合は回帰 というように自動的に計算方式を変更してしまうのです。 特に目的変数が0/1の二値の場合だと見かけ上どちらにも受け取れてしまうため、numeric型のままだと「回帰」になってしまうことが多いです。これを避けるためにas.factor関数を使ってfactor型に直すよう推奨しています。 ちなみに目的変数がYes/Noのように文字列で与えられている場合はsvmもrandomForestも勝手にfactor型であるとみなして「分類」の演算を行います。