ロジスティック回帰モデルを当てはめる
ランダムに作成した学習用セットとテストセットが用意できたら、glm() 関数を使って学習用セットにロジスティック回帰モデルを当てはめます。glm() は lm() の発展版で、通常の最小二乗回帰以外にも、さまざまな回帰モデルに対応しています。
ロジスティック回帰(線形回帰ではなく)を行うには、必ず glm() に引数 family = "binomial" を渡してください。例:
glm(Target ~ ., family = "binomial", dataset)
glm.fit: algorithm did not converge や glm.fit: fitted probabilities numerically 0 or 1 occurred といった警告は心配しなくて大丈夫です。これは小規模なデータセットでよく見られ、通常は問題になりません。典型的にはデータセットが「完全に分離可能」であることを示し、モデルの背後にある数理にとっては都合が悪い場合がありますが、R の glm() 関数はこのケースにもたいてい十分にロバストに対応できます。
データセットに glm() モデルを当てはめたら、predict() 関数に引数 type = "response" を指定して、test セット上で(例:rock か mine かの)予測を行えます:
predict(my_model, test, type = "response")
この演習はコースの一部です
Rで学ぶ caret を使った Machine Learning
演習の手順
- 学習用の
Sonarを使い、他のすべての変数を説明変数としてClassを予測するロジスティック回帰をmodelという名前で当てはめてください。 - そのモデルで
testセットに対して予測を行い、結果をこれまでと同様にpと名付けてください。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# Fit glm model: model
# Predict on test: p