R語言 決策樹演算法(C4 5和CART)的實現

2021-07-31 06:14:33 字數 2537 閱讀 6260

決策樹演算法的實現:

一、c4.5演算法的實現

a、需要的包:sampling、party

library(sampling)

library(party)

sampling用於實現資料分層隨機抽樣,構造訓練集和測試集。

party用於實現決策樹演算法

另外,還可以設定隨機數種子,可以獲得相同的隨機數。方便資料重複檢驗。

#設定隨機數種子,可以獲得相同的隨機數

set.seed(100)

b、資料準備

我們使用iris資料集作為演算法使用的資料集,通過下列各方法可以檢視資料集的各種指標。

head(iris)

str(iris)

dim(iris)

然後構造訓練集和測試集

sub_train = strata(iris,

stratanames = "species",

size = rep(35, 3),

method = "srswor")

data_train = iris[sub_train$id_unit, ]

data_test = iris[-sub_train$id_unit, ]

抽樣方法是分層不放回抽樣。

c、訓練模型

iris_tree = ctree(species ~ ., data = data_train)
我們可以通過方法print()或者plot()檢視模型:

#檢視模型

print(iris_tree)

plot(iris_tree)

plot(iris_tree,type="******")

得到的結果如下:

d、用測試集檢驗模型

test_pre = predict(iris_tree,newdata = data_test)

table(test_pre,data_test$species)

correct = sum(as.numeric(test_pre)==as.numeric(data_test$species))/nrow(data_test)

得到的結果如下圖:

對測試集的判斷準確率0.9333。

我們也可以看一下模型對訓練集的判斷準確率:

table(predict(iris_tree),data_train$species)

correct = sum(as.numeric(predict(iris_tree))==as.numeric(data_train$species))/nrow(data_train)

得到結果:

準確率0.97143。

二、cart演算法的實現

新增以來的包

library(xts)

library(ttr)

library(quantmod)

library(rocr)

library(dmwr)

可用於檢視連續變數的相關性

#檢視所有連續變數的相關性,所有分類變數的卡方值

#連續變數

idx.num

correlation=cor(algae$a1,algae[,idx.num],use = "pairwise.complete.obs")

correlation

correlation=abs(correlation)

correlation=correlation[,order(correlation,decreasing = t)]

correlation

分類變數的卡方值

# 所有分類變數的卡方值

idx.factor

class(idx.factor)

algae[,idx.factor]

t1=table(algae$season,algae$size)

t1chisq.test(t1)

決策樹 C4 5演算法

c4.5演算法是用於生成決策樹的的一種經典演算法,是id3演算法的一種延伸和優化。改進了點 1 通過資訊增益率選擇 屬性,克服了id3演算法中通過資訊增益傾向於選擇擁有多個屬性值的屬性作為 屬性的不足 2 能夠處理離散型和連續型的屬性型別,即將連續型的屬性進行離散化處理 3 構造決策樹之後進行剪枝操...

決策樹之C4 5演算法

c4.5演算法是機器學習中的乙個重要的決策樹演算法,它是對id3演算法的改進,相對於id3演算法主要有以下幾個改進 1 用資訊增益率來選擇屬性 2 在決策樹的構造過程中對樹進行剪枝 3 對非離散資料也能處理 4 能夠對不完整資料進行處理 接下來分別詳細講述這幾點的改進方案 1 用資訊增益率來選擇屬性...

C4 5決策樹演算法思想

前幾天有小夥伴問到這個演算法,於是想總結一下好了,畢竟是乙個如此著名的演算法,這裡就重在思想啦 建議配合實際例子學習。參考 1 周志華 機器學習 2 決策樹 decision tree 是在已知各種情況發生概率的基礎上,通過構成決策樹來評價專案風險,判斷其可行性的決策分析方法,是直觀運用概率分析的一...