中央値による欠損値補完を適用する
この章では、Wisconsin Breast Cancer データセットのバージョンを使用します。これは二値分類の典型的な問題で、サンプルの 50% は良性、50% は悪性です。どちらがどちらかを見分けることが課題です。
このデータセットの特徴は、多くの予測変数に欠損値が含まれており、ほとんどの行に少なくとも 1 つの欠損があることです。ほとんどの Machine Learning アルゴリズムはそのままでは欠損値を扱えないため、これはモデリング上の課題になります。たとえば、最初の発想としてロジスティック回帰モデルを当てはめたくなるかもしれませんが、その前に NA をどのように処理するかの方針が必要です。
幸い、caret の train() 関数には preProcess という引数があり、中央値補完を使って欠損値を埋めるよう指定できます。前の章では、y ~ . のような式を使って train() でモデルを作成しました。別の方法として、train() に x と y の引数を指定することもできます。ここで、x は行にサンプル、列に特徴量を持つオブジェクト、y は目的変数を含む数値または因子ベクトルです。言い換えると、x は、たとえば lm() の data 引数に渡す全データ(ただし目的変数の列は除く)を含む行列またはデータフレームで、y は目的変数の列だけを含むベクトルです。
この演習では、train() の引数 x は breast_cancer_x、y は breast_cancer_y としてワークスペースに読み込まれています。
この演習はコースの一部です
Rで学ぶ caret を使った Machine Learning
演習の手順
train()関数を使って、乳がんデータセットにglmモデルを当てはめ、median_modelというオブジェクトに保存してください。欠損値処理にはpreProcess = "medianImpute"を指定します。median_modelをコンソールに出力してください。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# Apply median imputation: median_model
median_model <- train(
x = ___,
y = ___,
method = ___,
trControl = myControl,
preProcess = ___
)
# Print median_model to console