R - デシジョンツリー:入門ガイド
こんにちは、未来のデータサイエンティスト们!今日は、Rを使用したデシジョンツリーの世界に一緒に踏み出します。コードを書いたことがない方も心配しないでください。私はあなたの親切なガイドとして、ステップバイステップで案内します。このチュートリアルの終わりまでに、あなた自身でデシジョンツリーを作成し、まるでデータの魔法師のようになるでしょう!
デシジョンツリーとは?
コードに取り組む前に、デシジョンツリーとは何かを理解しましょう。例えば、ランニングするかどうかを決めるとしましょう。あなたは次のような質問を自分に問うかもしれません:
- 雨が降っているか?
- 時間が十分にあるか?
- エネルギーがあるか?
あなたの答えに基づいて決定します。これがデシジョンツリーがやっていることです。質問のシリーズに基づいて決定を行います!
必要なRパッケージのインストール
まず最初に、適切なツールを用意しましょう。Rでは、これらのツールはパッケージと呼ばれます。私たちのデシジョンツリーの冒険には、主に2つのパッケージが必要です:rpart
とrpart.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)
ここで发生していることを分解しましょう:
-
rpart()
はデシジョンツリーを作成するための関数です。 -
buy_icecream ~ temperature + is_weekend
は、buy_icecream
をtemperature
とis_weekend
に基づいて予測することをRに指示します。 -
data = ice_cream_data
は私たちのデータセットを指定します。 -
method = "class"
は、分類タスク(カテゴリの予測)を行っていることをRに伝えます。 -
rpart.plot()
は私たちの木の視覚的な表現を作成します。
このコードを実行すると、美しい木の図が表示されます。各ノードには決定規則が表示され、リーフには予測が表示されます。まるでアイスクリームの決定フローチャートのようです!
木の理解
アイスクリームのデシジョンツリーを解釈しましょう:
- 最上段のノード(ルート)は最初の分割を示しています。例えば「temperature < 76」といったものです。
- True(はい)の場合は左の枝に進み、False(いいえ)の場合は右の枝に進みます。
- このプロセスはリーフノードに達するまで続けられ、最終的な予測を给出します。
ノードの数字は以下を示します:
- 予測されるクラス(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