R-ディシジョンツリー
デシジョンツリーは、選択肢とその結果をツリー形式で表すグラフです。グラフのノードはイベントまたは選択を表し、グラフのエッジは決定ルールまたは条件を表します。これは主に、Rを使用する機械学習およびデータマイニングアプリケーションで使用されます。
デシジョントレスの使用例は、電子メールをスパムまたは非スパムとして予測する、腫瘍が癌性であると予測する、またはこれらのそれぞれの要因に基づいてローンを信用リスクの良し悪しとして予測することです。一般に、モデルは、トレーニングデータとも呼ばれる観測データを使用して作成されます。次に、一連の検証データを使用して、モデルを検証および改善します。Rには、決定木を作成および視覚化するために使用されるパッケージがあります。予測変数の新しいセットについては、このモデルを使用して、データのカテゴリ(yes / No、スパム/非スパム)を決定します。
Rパッケージ "party" デシジョンツリーを作成するために使用されます。
Rパッケージをインストールする
パッケージをインストールするには、Rコンソールで以下のコマンドを使用します。依存パッケージがある場合は、それもインストールする必要があります。
install.packages("party")
パッケージ「パーティー」には機能があります ctree() これは、決定木を作成および分析するために使用されます。
構文
Rで決定木を作成するための基本的な構文は次のとおりです。
ctree(formula, data)
以下は、使用されるパラメーターの説明です-
formula は、予測変数と応答変数を説明する式です。
data 使用されるデータセットの名前です。
入力データ
名前の付いたRの組み込みデータセットを使用します readingSkillsデシジョンツリーを作成します。変数「age」、「shoesize」、「score」がわかっている場合、およびその人がネイティブスピーカーであるかどうかを知っている場合、それは誰かのreadingSkillsのスコアを記述します。
これがサンプルデータです。
# Load the party package. It will automatically load other
# dependent packages.
library(party)
# Print some records from data set readingSkills.
print(head(readingSkills))
上記のコードを実行すると、次の結果とチャートが生成されます-
nativeSpeaker age shoeSize score
1 yes 5 24.83189 32.29385
2 yes 6 25.95238 36.63105
3 no 11 30.42170 49.60593
4 yes 7 28.66450 40.28456
5 yes 11 31.88207 55.46085
6 yes 10 30.07843 52.83124
Loading required package: methods
Loading required package: grid
...............................
...............................
例
を使用します ctree() 決定木を作成し、そのグラフを表示する関数。
# Load the party package. It will automatically load other
# dependent packages.
library(party)
# Create the input data frame.
input.dat <- readingSkills[c(1:105),]
# Give the chart file a name.
png(file = "decision_tree.png")
# Create the tree.
output.tree <- ctree(
nativeSpeaker ~ age + shoeSize + score,
data = input.dat)
# Plot the tree.
plot(output.tree)
# Save the file.
dev.off()
上記のコードを実行すると、次の結果が生成されます-
null device
1
Loading required package: methods
Loading required package: grid
Loading required package: mvtnorm
Loading required package: modeltools
Loading required package: stats4
Loading required package: strucchange
Loading required package: zoo
Attaching package: ‘zoo’
The following objects are masked from ‘package:base’:
as.Date, as.Date.numeric
Loading required package: sandwich
結論
上記の決定木から、readingSkillsスコアが38.3未満で、年齢が6歳を超える人はネイティブスピーカーではないと結論付けることができます。