如何使用R軟體建立C5 0決策樹

2021-07-16 20:46:57 字數 2984 閱讀 3211

決策樹是解決分類問題的一種常用方法,它是一種樹形結構,其中每個內部節點表示乙個屬性上的測試,每個分支代表乙個測試輸出,每個葉節點代表一種類別。

決策樹的建立可以簡單的分為2個過程:

1、決策樹的生長

(1)如何從眾多的輸入變數中找到當前最佳分組變數

(2)如何從分組變數中的眾多值中找到乙個最佳分割點

2、決策樹的剪枝

先剪枝:在建立樹模型的時候就開始限制樹的長大

後剪枝:先建立乙個完整的樹,之後在對該樹進行修剪

不同的決策樹演算法對於上述問題的處理方式不同,下面簡單的列舉了其中3種演算法之間的區別:

接下來,我們介紹一下如何使用r軟體建立c5.0決策樹

r軟體有乙個專門做c5.0的包c50,這裡我們使用的是電信流失使用者的資料。

1、載入資料

由於結果太長,上圖只擷取了部分。由上圖可知,該資料集有1000條記錄,42個變數。

2、資料探索

檢視資料集是否有缺失值和異常值,這裡使用的是summary函式,**如下,

summary(telco)

對於分型別變數,summary輸出的結果是各個變數類別和取值個數;

對於數值型變數,summary輸出的結果是最小值、最小值、均值和三個四分位數;

如果有缺失值的話,summary還會顯示缺失值的個數。

我們擷取了含有缺失值的變數的結果

由上圖可知,telco資料集中,logtoll 有525個缺失值,logequi有614個缺失值 ,logcard有 322個缺失值, logwire 有704 個缺失值。

3、資料預處理

對於缺失值,我們可以採用刪除法、替換法、插補法(回歸插補法、多重插補法等)進行處理,由於上述缺失值比重較大,我們這裡採用刪除法進行處理:

telco2=telco[,-c(35,36,37,38)]

對於異常值,我們的處理方法有(1)刪除含有異常值的記錄

(2)視為缺失值,利用缺失值的處理方法進行處理

(3)平均值修正:用前後兩個觀測值的平均值修正該異常值

(4)不處理,將其看為正常值

具體該如何處理缺失值和異常值,我們應該結合實際情況,選擇合適的處理方法。

4、建模

先把資料拆分為訓練集和測試集

train.indeces

telco2.train

telco2.test

再對訓練集資料建立c5.0決策樹

c5.0tree=c5.0(churn~.,data=tree.train,trials=5,control=c5.0control(winnow = true,cf=0.25))

【trials:模型的迭代次數         winnow :在建模之前是否對變數進行特徵選擇       cf:剪枝時的置信度】

檢視模型結果:summary(c5.0tree)

可知19個變數已經被剔除掉了,還剩19個變數用於模型的構建

5、模型評估

訓練集               測試集

正確率                86.4%                74.5%               正確率:被分對的樣本數除以所有的樣本數;

tpr(召回率)56.2%                40%                  召回率:所有正例中被分對的比例,衡量了分類器對正例的識別能力

準確率                82%                    55%                 準確率:分子是**該類別正確的數量,分母是**為該類別的全部資料的數量。

fpr                    4.6%                   12.4%               fpr:實際為負例,被分類器錯誤判斷為正例的比例。

提公升度                3                           2                       提公升度:準確率/正例比例

對於具體的某個分類器而言,我們不可能同時提高上面的所有指標,例如,很多時候,尤其是資料分類難度較大的情況下,準確率和召回率往往是矛盾的,我們應該根據實際應用場景,在建模的時候,在保證其他指標一定的條件之下,盡量提高我們看重的指標。

在本案例中,我們**流失使用者的目的是為了防止使用者流失減少我們的收益,所以我們應該盡量找出流失使用者,即盡量增大召回率(tpr),同時減少誤判的比例(fpr),那麼tpr和fpr是多少才行呢?

假設我們對**出來的流失使用者進行挽留的成本是a元,成功挽留住給我們帶來的收益是b元,則

訓練集的收益=123*b-(123+27)*a

測試集的收益=22*b-(18+22)*a

對不同的決策樹模型進行評估是,我們可以用收益的值來評估模型。

如何使用Rstudio建立帶c 程式的R語言包

1.環境 安裝rtools 請預設安裝,否則後續會報錯 檢查path是否有2個rtools相關路徑 2.入門1 hello world step 1 在rstudio介面,files new project new directory r package 注意 type一定選擇 package w ...

C 如何呼叫R

1.現在r中安裝rscproxy庫 install.packages rscproxy library rscproxy 2.到這個 statconndcom3.5 1b2 noncommercial.exe 和 rexcelinst3.2.7 noncommercial.exe 按照順序安裝一下 ...

如何使用R的apply

x 是乙個陣列 array 也就是說輸入必須都是相同型別的資料,要麼都是數值型,要麼都是字元型。如果是乙個混合資料型別的data.frame,那麼就會嘗試用as.matrix強制轉換資料 margin 表示對行 1 或者是對列 2 應用函式。fun 可是r自帶函式,如mean,sum等。也可以是自己...