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歳を超える人はネイティブスピーカーではないと結論付けることができます。