決策樹是以樹的形式表示選擇及其結(jié)果的圖形。圖中的節(jié)點(diǎn)表示事件或選擇,并且圖形的邊緣表示決策規(guī)則或條件。它主要用于使用R的機(jī)器學(xué)習(xí)和數(shù)據(jù)挖掘應(yīng)用程序。
使用決策的例子是 - 將接收的郵件預(yù)測是否為垃圾郵件,根據(jù)這些信息中的因素,預(yù)測腫瘤是癌癥或預(yù)測貸款作為良好或不良的信用風(fēng)險(xiǎn)。 通常,使用觀察數(shù)據(jù)也稱為訓(xùn)練數(shù)據(jù)創(chuàng)建模型。 然后使用一組驗(yàn)證數(shù)據(jù)來驗(yàn)證和改進(jìn)模型。 R具有用于創(chuàng)建和可視化決策樹的包。 對于新的預(yù)測變量,我們使用該模型來確定數(shù)據(jù)的類別(是/否,垃圾郵件/非垃圾郵件)。
R包“party”用于創(chuàng)建決策樹。
在R控制臺中使用以下命令安裝軟件包,還必須安裝依賴軟件包(如果有的話)。
install.packages("party")
包“party”中包含用于創(chuàng)建和分析決策樹的ctree()函數(shù)。
在R中創(chuàng)建決策樹的基本語法是 -
ctree(formula, data)
以下是使用的參數(shù)的描述 -
我們將使用一個(gè)名為readingSkills的R內(nèi)置數(shù)據(jù)集創(chuàng)建一個(gè)決策樹。如果要知道變量:"age","shoesize","score"以及該人員是否是母語者,則描述某人員的閱讀技能的得分。
以下是樣本數(shù)據(jù) -
# Load the party package. It will automatically load other dependent packages.
library("party")
# Print some records from data set readingSkills.
print(head(readingSkills))
執(zhí)行上面示例代碼,得到以下結(jié)果 -
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
我們將使用ctree()函數(shù)創(chuàng)建決策樹并查看其生成的圖表。
# 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()
當(dāng)我們執(zhí)行上述代碼時(shí),會產(chǎn)生以下結(jié)果 -
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
生成如下圖形 -

結(jié)論
從上面所示的決策樹,我們可以得出結(jié)論,任何閱讀技巧(readingSkills)評分小于38.3,年齡超過6歲的人不是本地(使用母語)演講者。