Rの決定木で分類を学ぶ

ロバート-ウッド

フォローしている

2019年7月30日•4分読み取り

分類に関しては、決定木分類器を使用するのが最も簡単な方法の1つです。

意思決定ツリーを使用する理由

  • 解釈が非常に簡単
  • 欠損データ&外れ値を非常によく処理するため、事前のクリーニングがはるかに少なくなります
  • 意思決定ツリーがカテゴリカルをうまく処理するため、カテゴリカル変数エンコーディングを見送ることができます!
  • 再帰的分割の詳細に飛び込むことなく、決定木は非線形関係をモデル化することができます。

意思決定ツリーを使用しない理由

すべての良いことは、彼らが常に完璧な選択肢ではないと述べました。

  • それらは単純であることができるのと同じように、彼らはまた、概念化または解釈することはほぼ不可能になる過度に複雑にすることができます。
  • このアイデアをさらに少し取るために、過度に偏っているか複雑なツリーでは、トレーニングデータにあまりにもうまく対応している可能性があり、結果として過適合になります。

モデルトレーニング

と言って、それに飛び込むことができます。 私は交差検証や列車、テスト分割についてはあまり話しませんが、以下のコードを投稿します。 あなたがより多くの説明をしたい何かがある場合は、コメントしてください。

まず、データをトレーニング&テストセットに分割します。

また、ベースRに含まれている古典的なタイタニックデータセットを使用することに注意してください。

ここで、rpartパッケージのrpart関数を使用してモデ ここで注意すべき重要なことは、予測したい変数が生存しているため、特定の個人がいくつかのデータに従って生存する可能性を理解したいことです。 ~は;によって解釈できるので、言い換えれば、いくつかの変数によって生き残ったことを理解することができます。 後の場合は~があります。 つまり、生存を予測するためにデータセット内の他のすべての変数を使用したいと考えています。 代わりに、以下に示すように、明示的に使用したい変数を呼び出すことができます。

もう一つ注意すべきことは、methodclassであることです。 これは、数値的な結果に使用される回帰木とは対照的に、カテゴリ的な結果を予測する分類木を作成したいからです。 そして最後に、モデルを訓練するために使用しているデータはtrainです。

model <- rpart(formula = Survived ~ Pclass + Sex + Age + SibSp + Parch + Fare + Embarked,
data = titanic_train,
method = "class")

解釈可能性

前述のように、意思決定ツリーを非常に使いやすいものにすることの1つは、解釈が非常に簡単であるということです。 あなたは、異なる結果にツリーの異なる枝をたどることができますしています。

rpart.plot(model)

そこで読むのは少し難しいですが、少し拡大すると、誰かがタイタニック号に住んでいたか死んだ可能性が高いかどうかの最初の基準は、あなたが男性であるかどうかであることがわかります。 あなたが男性であれば、あなたは左の枝に移動し、あなたが大人であり、あなたの兄弟/配偶者がオンボードでカウントされているかどうか、二つのノードを下 あなたが独身の男だったら、あなたは生存の確率はかなりスリムだったです。

パフォーマンス評価

メトリックを調べる前に、テストセットの値を予測しましょう。 Trainの呼び出しと同様に、データと予測のタイプを選択します。 コアの違いは、モデルの仕様です。

test$pred <- predict(object = model, 
newdata = test,
type = "class")

意思決定ツリーの有効性を理解するときに非常に便利なさまざまなパフォーマンス評価指標があります。

精度

この指標は非常に簡単で、予測の何パーセントが正しかったかを示します。 caretの混同行列関数にはこれが含まれています。

混同行列

caretパッケージのconfusionMatrix関数は非常に便利です。 分類モデルの性能を評価するため。 パッケージをロードし、それをあなたの予測&実績を渡します。

library(caret)
confusionMatrix(data = test$pred,
reference = test$Survived)

この関数が最初に示すのは、混同行列と呼ばれるものです。 これは、予測と実績がどのように並んでいるかの表を示しています。 したがって、予測と参照が同じ対角セルは、正しいものを表します。 それらを149(106+43)まで数え、それをレコードの総数で割った178;私たちは83.4%の精度数に到達します。

真陽性:参照と予測の両方が1である象限内のセル。 これは、あなたが生存を予測し、彼らが実際に生存したことを示しています。

偽陽性:ここであなたは陽性を予測しましたが、あなたは間違っていました。

真の負:あなたが負を予測し、あなたが正しいとき。

偽陰性:あなたが陰性を予測し、あなたが間違っているとき。

心に留めておくべきいくつかの重要な指標は、感度と特異性です。 感度は、正しく予測した真のレコードの割合です。

一方、特異性は、実際の偽の記録のどの部分を正しく予測したかを測定することです。

特異性は、不均衡なデータセットで予測するときに心に留めておくべきものです。 これの非常に一般的な例は、電子メールスパムを分類するためのものです。 時間の99%はスパムではないので、何もスパムではないと予測した場合、99%の精度がありますが、特異性は0になり、すべてのスパムが受け入れられます。

結論

あなたは意思決定ツリーでこの簡単なレッスンを楽しんだことを願っています。 あなたがより多くの情報を望んでいたものがあったかどうか、またはあなたが私に別の記事でカバーしたいものがあるかどうかを教えてくださ

ハッピーデータサイエンス-ing! あなたがこれを楽しんだ場合は、このような他の投稿をチェックしてくださdatasciencelessons.com!

コメントを残す

メールアドレスが公開されることはありません。

Previous post WordPress.org
Next post ファバ豆の植え付け–庭でファバ豆を成長させる方法