R - デシジョンツリー:入門ガイド

こんにちは、未来のデータサイエンティスト们!今日は、Rを使用したデシジョンツリーの世界に一緒に踏み出します。コードを書いたことがない方も心配しないでください。私はあなたの親切なガイドとして、ステップバイステップで案内します。このチュートリアルの終わりまでに、あなた自身でデシジョンツリーを作成し、まるでデータの魔法師のようになるでしょう!

R - Decision Tree

デシジョンツリーとは?

コードに取り組む前に、デシジョンツリーとは何かを理解しましょう。例えば、ランニングするかどうかを決めるとしましょう。あなたは次のような質問を自分に問うかもしれません:

  1. 雨が降っているか?
  2. 時間が十分にあるか?
  3. エネルギーがあるか?

あなたの答えに基づいて決定します。これがデシジョンツリーがやっていることです。質問のシリーズに基づいて決定を行います!

必要なRパッケージのインストール

まず最初に、適切なツールを用意しましょう。Rでは、これらのツールはパッケージと呼ばれます。私たちのデシジョンツリーの冒険には、主に2つのパッケージが必要です:rpartrpart.plot

それではインストールしましょう:

install.packages("rpart")
install.packages("rpart.plot")

次に、これらのパッケージをロードしましょう:

library(rpart)
library(rpart.plot)

おめでとうございます!あなたはRプログラミングの最初の一歩を踏み出しました。自分を褒めてあげてください!

シンプルなデータセットの作成

ツールが準備できたので、簡単なデータセットを作成して取り組んでみましょう。例えば、温度と週末かどうかに基づいてアイスクリームを買うかどうかを予測するものです。

# データフレームを作成
ice_cream_data <- data.frame(
temperature = c(68, 85, 72, 90, 60, 78, 82, 75, 68, 71),
is_weekend = c(0, 1, 0, 1, 0, 1, 1, 0, 1, 0),
buy_icecream = c(0, 1, 0, 1, 0, 1, 1, 0, 1, 0)
)

# データを表示
print(ice_cream_data)

このデータセットでは:

  • temperatureは華氏度です
  • is_weekendは週末が1、平日が0です
  • buy_icecreamはアイスクリームを買ったら1、買わなかったら0です

初めてのデシジョンツリーを構築

さて、エキサイティングな部分です。デシジョンツリーを作成しましょう!

# デシジョンツリーモデルを作成
ice_cream_tree <- rpart(buy_icecream ~ temperature + is_weekend,
data = ice_cream_data,
method = "class")

# 木をプロット
rpart.plot(ice_cream_tree, extra = 106)

ここで发生していることを分解しましょう:

  1. rpart()はデシジョンツリーを作成するための関数です。
  2. buy_icecream ~ temperature + is_weekendは、buy_icecreamtemperatureis_weekendに基づいて予測することをRに指示します。
  3. data = ice_cream_dataは私たちのデータセットを指定します。
  4. method = "class"は、分類タスク(カテゴリの予測)を行っていることをRに伝えます。
  5. rpart.plot()は私たちの木の視覚的な表現を作成します。

このコードを実行すると、美しい木の図が表示されます。各ノードには決定規則が表示され、リーフには予測が表示されます。まるでアイスクリームの決定フローチャートのようです!

木の理解

アイスクリームのデシジョンツリーを解釈しましょう:

  1. 最上段のノード(ルート)は最初の分割を示しています。例えば「temperature < 76」といったものです。
  2. True(はい)の場合は左の枝に進み、False(いいえ)の場合は右の枝に進みます。
  3. このプロセスはリーフノードに達するまで続けられ、最終的な予測を给出します。

ノードの数字は以下を示します:

  • 予測されるクラス(0または1)
  • そのクラスの確率
  • そのノードの観測値の割合

予測を行う

木が完成したので、予測を行ってみましょう!

# 新しいデータを作成
new_data <- data.frame(
temperature = c(70, 95),
is_weekend = c(1, 0)
)

# 予測を行う
predictions <- predict(ice_cream_tree, new_data, type = "class")

# 予測を表示
print(predictions)

このコードは、70°Fの週末と95°Fの平日にアイスクリームを買うかどうかを予測します。

モデルの評価

モデルの性能を確認するために、混乱行列を使用します:

# 元のデータに対して予測を行う
predictions <- predict(ice_cream_tree, ice_cream_data, type = "class")

# 混乱行列を作成
confusion_matrix <- table(Actual = ice_cream_data$buy_icecream, Predicted = predictions)

# 混乱行列を表示
print(confusion_matrix)

# 正確度を計算
accuracy <- sum(diag(confusion_matrix)) / sum(confusion_matrix)
print(paste("正確度:", accuracy))

これにより、正しい予測と間違った予測の数を簡単に確認できます。

結論

おめでとうございます!あなたはRで初めてのデシジョンツリーを作成しました。パッケージのインストールから予測まで、多くのことをカバーしました。練習は完璧を生みますので、異なるデータセットやパラメータで実験を恐れずに挑戦してください。

以下は私たちが使用した方法の簡単なまとめです:

メソッド 説明
install.packages() Rパッケージをインストール
library() インストールされたパッケージをロード
data.frame() データフレームを作成
rpart() デシジョンツリーを構築
rpart.plot() デシジョンツリーを視覚化
predict() 木を使用して予測を行う
table() 混乱行列を作成

探索を続け、学びを続け、最も重要なのは、データサイエンスを楽しむことです!

Credits: Image by storyset