R-decision-tree
提供:Dev Guides
R-決定木
デシジョンツリーは、選択肢とその結果をツリー形式で表すグラフです。 グラフのノードはイベントまたは選択を表し、グラフのエッジは決定ルールまたは条件を表します。 Rを使用した機械学習およびデータマイニングアプリケーションで主に使用されます。
意思決定要素の使用例は、電子メールをスパムまたはスパムではないと予測する、腫瘍の癌を予測する、またはこれらのそれぞれの要因に基づいて融資を良いまたは悪い信用リスクとして予測するなどです。 一般に、モデルはトレーニングデータとも呼ばれる観測データで作成されます。 次に、検証データのセットを使用して、モデルを検証および改善します。 Rには、決定木の作成と視覚化に使用されるパッケージがあります。 新しい予測変数のセットでは、このモデルを使用して、データのカテゴリ(yes/no、spam/not spam)の決定に到達します。
Rパッケージ "party" は、決定木を作成するために使用されます。
Rパッケージをインストールする
Rコンソールで以下のコマンドを使用して、パッケージをインストールします。 また、依存パッケージがある場合はインストールする必要があります。
install.packages("party")
パッケージ「party」には、決定ツリーの作成と分析に使用される関数* ctree()*が含まれています。
構文
Rで決定木を作成するための基本的な構文は次のとおりです-
ctree(formula, data)
以下は、使用されるパラメータの説明です-
- *式*は、予測変数と応答変数を記述する式です。
- data は、使用されるデータセットの名前です。
入力データ
*readingSkills* という名前のR組み込みデータセットを使用して、意思決定ツリーを作成します。 変数 "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歳を超える人はネイティブスピーカーではないと結論付けることができます。