credit1=read.csv("/Users/maxineharlemon/german_credit_data_updated.csv")
str(credit1)
## 'data.frame':    954 obs. of  11 variables:
##  $ X               : int  0 1 2 3 4 5 6 7 8 9 ...
##  $ Age             : int  67 22 49 45 53 35 53 35 61 28 ...
##  $ Sex             : chr  "male" "female" "male" "male" ...
##  $ Job             : int  2 2 1 2 2 1 2 3 1 3 ...
##  $ Housing         : chr  "own" "own" "own" "free" ...
##  $ Saving.accounts : chr  NA "little" "little" "little" ...
##  $ Checking.account: chr  "little" "moderate" NA "little" ...
##  $ Credit.amount   : int  1169 5951 2096 7882 4870 9055 2835 6948 3059 5234 ...
##  $ Duration        : int  6 48 12 42 24 36 24 36 12 30 ...
##  $ Purpose         : chr  "radio/TV" "radio/TV" "education" "furniture/equipment" ...
##  $ Credit.Risk     : int  1 2 1 1 2 1 1 1 1 2 ...
table(credit1$Checking.account)
## 
##   little moderate     rich 
##      261      256       59
table(credit1$Saving.accounts)
## 
##     little   moderate quite rich       rich 
##        576         96         60         47
summary(credit1$Duration)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    4.00   12.00   18.00   20.78   24.00   72.00
summary(credit1$Credit.amount)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##     250    1360    2302    3279    3975   18424
table(credit1$Credit.Risk)
## 
##   1   2 
## 665 289
train_sample<-sample(954,864)
str(train_sample)
##  int [1:864] 165 258 463 537 227 208 712 521 698 427 ...
credit_train<-credit1[train_sample,]
credit_test<-credit1[-train_sample,]
prop.table(table(credit_train$Credit.Risk))
## 
##         1         2 
## 0.6921296 0.3078704
credit_train$Credit.Risk <- as.factor(credit_train$Credit.Risk)
library(C50)
credit_model<-C5.0(credit_train[-11], credit_train$Credit.Risk)
credit_model
## 
## Call:
## C5.0.default(x = credit_train[-11], y = credit_train$Credit.Risk)
## 
## Classification Tree
## Number of samples: 864 
## Number of predictors: 10 
## 
## Tree size: 32 
## 
## Non-standard options: attempt to group attributes
summary(credit_model)
## 
## Call:
## C5.0.default(x = credit_train[-11], y = credit_train$Credit.Risk)
## 
## 
## C5.0 [Release 2.07 GPL Edition]      Tue Oct 21 16:46:37 2025
## -------------------------------
## 
## Class specified by attribute `outcome'
## 
## Read 864 cases (11 attributes) from undefined.data
## 
## Decision tree:
## 
## Duration <= 15:
## :...Duration <= 8: 1 (83/9)
## :   Duration > 8:
## :   :...Credit.amount > 959: 1 (235/48)
## :       Credit.amount <= 959:
## :       :...Credit.amount <= 522: 1 (6)
## :           Credit.amount > 522:
## :           :...Housing = free: 1 (2)
## :               Housing = rent:
## :               :...X <= 700: 2 (4)
## :               :   X > 700: 1 (2)
## :               Housing = own:
## :               :...Purpose in {radio/TV,domestic appliances,education,
## :                   :           business}: 1 (25/11)
## :                   Purpose in {repairs,vacation/others}: 2 (1)
## :                   Purpose = car:
## :                   :...Age <= 46: 2 (11/2)
## :                   :   Age > 46: 1 (3)
## :                   Purpose = furniture/equipment:
## :                   :...X <= 333: 1 (2)
## :                       X > 333: 2 (2)
## Duration > 15:
## :...Saving.accounts in {quite rich,NA,rich}: 1 (61/9.9)
##     Saving.accounts in {little,moderate}:
##     :...Housing = rent:
##         :...Duration > 42: 2 (7)
##         :   Duration <= 42:
##         :   :...X <= 445: 1 (25.2/5.9)
##         :       X > 445: 2 (38.1/10.6)
##         Housing in {own,free}:
##         :...Checking.account in {NA,rich}: 1 (30/6.7)
##             Checking.account = moderate:
##             :...Credit.amount > 12204: 2 (10.2/0.9)
##             :   Credit.amount <= 12204:
##             :   :...Sex = male: 1 (118.4/32.7)
##             :       Sex = female:
##             :       :...Job <= 2: 1 (37/12.6)
##             :           Job > 2: 2 (6.4/1)
##             Checking.account = little:
##             :...Job > 2: 1 (28.1/6.1)
##                 Job <= 2:
##                 :...Purpose in {radio/TV,repairs,business,
##                     :           vacation/others}: 1 (50.5/18.4)
##                     Purpose in {domestic appliances,education}: 2 (7.5/1.6)
##                     Purpose = car:
##                     :...Housing = free: 2 (12.6/2.9)
##                     :   Housing = own:
##                     :   :...Sex = male: 1 (21.7/6.7)
##                     :       Sex = female: 2 (8.3/2.7)
##                     Purpose = furniture/equipment:
##                     :...Housing = free: 1 (2)
##                         Housing = own:
##                         :...Sex = female: 1 (3.3/1.4)
##                             Sex = male:
##                             :...X > 742: 2 (5.8/1.4)
##                                 X <= 742:
##                                 :...Age <= 27: 2 (4.3/0.4)
##                                     Age > 27: 1 (10.5/2.9)
## 
## 
## Evaluation on training data (864 cases):
## 
##      Decision Tree   
##    ----------------  
##    Size      Errors  
## 
##      32  191(22.1%)   <<
## 
## 
##     (a)   (b)    <-classified as
##    ----  ----
##     577    21    (a): class 1
##     170    96    (b): class 2
## 
## 
##  Attribute usage:
## 
##  100.00% Duration
##   62.96% Credit.amount
##   56.94% Housing
##   44.44% Saving.accounts
##   32.18% Sex
##   31.13% Job
##   27.55% Purpose
##   26.27% Checking.account
##   11.57% X
##    3.70% Age
## 
## 
## Time: 0.0 secs
credit_pred<-predict(credit_model, credit_test)
library(gmodels)
CrossTable(credit_test$Credit.Risk, credit_pred, prop.chisq = FALSE, prop.c = FALSE, dnn = c('actual default', 'predicted default'))
## 
##  
##    Cell Contents
## |-------------------------|
## |                       N |
## |           N / Row Total |
## |         N / Table Total |
## |-------------------------|
## 
##  
## Total Observations in Table:  90 
## 
##  
##                | predicted default 
## actual default |         1 |         2 | Row Total | 
## ---------------|-----------|-----------|-----------|
##              1 |        62 |         5 |        67 | 
##                |     0.925 |     0.075 |     0.744 | 
##                |     0.689 |     0.056 |           | 
## ---------------|-----------|-----------|-----------|
##              2 |        16 |         7 |        23 | 
##                |     0.696 |     0.304 |     0.256 | 
##                |     0.178 |     0.078 |           | 
## ---------------|-----------|-----------|-----------|
##   Column Total |        78 |        12 |        90 | 
## ---------------|-----------|-----------|-----------|
## 
## 
credit_boost<-C5.0(credit_train[-11], credit_train$Credit.Risk, trials = 10)
credit_boost
## 
## Call:
## C5.0.default(x = credit_train[-11], y = credit_train$Credit.Risk, trials = 10)
## 
## Classification Tree
## Number of samples: 864 
## Number of predictors: 10 
## 
## Number of boosting iterations: 10 
## Average tree size: 21.8 
## 
## Non-standard options: attempt to group attributes
summary(credit_boost)
## 
## Call:
## C5.0.default(x = credit_train[-11], y = credit_train$Credit.Risk, trials = 10)
## 
## 
## C5.0 [Release 2.07 GPL Edition]      Tue Oct 21 16:46:37 2025
## -------------------------------
## 
## Class specified by attribute `outcome'
## 
## Read 864 cases (11 attributes) from undefined.data
## 
## -----  Trial 0:  -----
## 
## Decision tree:
## 
## Duration <= 15:
## :...Duration <= 8: 1 (83/9)
## :   Duration > 8:
## :   :...Credit.amount > 959: 1 (235/48)
## :       Credit.amount <= 959:
## :       :...Credit.amount <= 522: 1 (6)
## :           Credit.amount > 522:
## :           :...Housing = free: 1 (2)
## :               Housing = rent:
## :               :...X <= 700: 2 (4)
## :               :   X > 700: 1 (2)
## :               Housing = own:
## :               :...Purpose in {radio/TV,domestic appliances,education,
## :                   :           business}: 1 (25/11)
## :                   Purpose in {repairs,vacation/others}: 2 (1)
## :                   Purpose = car:
## :                   :...Age <= 46: 2 (11/2)
## :                   :   Age > 46: 1 (3)
## :                   Purpose = furniture/equipment:
## :                   :...X <= 333: 1 (2)
## :                       X > 333: 2 (2)
## Duration > 15:
## :...Saving.accounts in {quite rich,NA,rich}: 1 (61/9.9)
##     Saving.accounts in {little,moderate}:
##     :...Housing = rent:
##         :...Duration > 42: 2 (7)
##         :   Duration <= 42:
##         :   :...X <= 445: 1 (25.2/5.9)
##         :       X > 445: 2 (38.1/10.6)
##         Housing in {own,free}:
##         :...Checking.account in {NA,rich}: 1 (30/6.7)
##             Checking.account = moderate:
##             :...Credit.amount > 12204: 2 (10.2/0.9)
##             :   Credit.amount <= 12204:
##             :   :...Sex = male: 1 (118.4/32.7)
##             :       Sex = female:
##             :       :...Job <= 2: 1 (37/12.6)
##             :           Job > 2: 2 (6.4/1)
##             Checking.account = little:
##             :...Job > 2: 1 (28.1/6.1)
##                 Job <= 2:
##                 :...Purpose in {radio/TV,repairs,business,
##                     :           vacation/others}: 1 (50.5/18.4)
##                     Purpose in {domestic appliances,education}: 2 (7.5/1.6)
##                     Purpose = car:
##                     :...Housing = free: 2 (12.6/2.9)
##                     :   Housing = own:
##                     :   :...Sex = male: 1 (21.7/6.7)
##                     :       Sex = female: 2 (8.3/2.7)
##                     Purpose = furniture/equipment:
##                     :...Housing = free: 1 (2)
##                         Housing = own:
##                         :...Sex = female: 1 (3.3/1.4)
##                             Sex = male:
##                             :...X > 742: 2 (5.8/1.4)
##                                 X <= 742:
##                                 :...Age <= 27: 2 (4.3/0.4)
##                                     Age > 27: 1 (10.5/2.9)
## 
## -----  Trial 1:  -----
## 
## Decision tree:
## 
## Duration <= 8:
## :...Credit.amount <= 4139: 1 (68.9/9.8)
## :   Credit.amount > 4139: 2 (6.5/1.6)
## Duration > 8:
## :...Duration <= 30:
##     :...Purpose in {furniture/equipment,domestic appliances,
##     :   :           education}: 1 (163/62.9)
##     :   Purpose in {repairs,vacation/others}: 2 (23.7/8.2)
##     :   Purpose = car:
##     :   :...Sex = male: 1 (145.8/53.1)
##     :   :   Sex = female: 2 (71.2/32)
##     :   Purpose = radio/TV:
##     :   :...Age <= 22: 2 (16.3/3.3)
##     :   :   Age > 22: 1 (156.4/48.1)
##     :   Purpose = business:
##     :   :...Age <= 35: 1 (32.8/7.3)
##     :       Age > 35: 2 (24.5/9)
##     Duration > 30:
##     :...Age <= 29: 2 (55.6/14.8)
##         Age > 29:
##         :...Checking.account in {NA,moderate,rich}: 1 (56.3/23.2)
##             Checking.account = little:
##             :...Job <= 2: 2 (32/12.7)
##                 Job > 2: 1 (10.8/3.3)
## 
## -----  Trial 2:  -----
## 
## Decision tree:
## 
## Duration <= 8:
## :...Credit.amount <= 10623: 1 (66.9/13.1)
## :   Credit.amount > 10623: 2 (2.8)
## Duration > 8:
## :...Saving.accounts in {quite rich,NA}: 1 (52.3/17.6)
##     Saving.accounts = rich:
##     :...Housing in {own,rent}: 1 (38.3/6.4)
##     :   Housing = free: 2 (4.4/0.7)
##     Saving.accounts in {little,moderate}:
##     :...Checking.account = NA: 1 (0)
##         Checking.account = rich:
##         :...Job <= 1: 2 (17.6/5.9)
##         :   Job > 1: 1 (49.7/14.3)
##         Checking.account = moderate:
##         :...Job > 2: 2 (65.4/25.3)
##         :   Job <= 2:
##         :   :...Housing = own: 1 (175/69.7)
##         :       Housing in {free,rent}: 2 (67.3/30.4)
##         Checking.account = little:
##         :...Purpose in {radio/TV,domestic appliances,education,repairs,
##             :           vacation/others}: 2 (115.1/50.4)
##             Purpose = business: 1 (23.8/11.3)
##             Purpose = furniture/equipment:
##             :...Duration <= 16: 1 (24.8/7.6)
##             :   Duration > 16: 2 (42.7/16.9)
##             Purpose = car:
##             :...Job > 2: 1 (18.3/3.9)
##                 Job <= 2:
##                 :...Saving.accounts = moderate: 1 (7.6/1)
##                     Saving.accounts = little:
##                     :...Age <= 48: 2 (79.1/29.4)
##                         Age > 48: 1 (12.8/5.1)
## 
## -----  Trial 3:  -----
## 
## Decision tree:
## 
## Saving.accounts = NA: 1 (0)
## Saving.accounts = rich:
## :...Purpose in {car,radio/TV,furniture/equipment,domestic appliances,business,
## :   :           vacation/others}: 1 (36.3/5.9)
## :   Purpose in {education,repairs}: 2 (7.6/0.5)
## Saving.accounts = moderate:
## :...Sex = male: 1 (70.1/28.7)
## :   Sex = female: 2 (39/16.8)
## Saving.accounts = quite rich:
## :...Duration <= 11: 1 (9.4/0.2)
## :   Duration > 11:
## :   :...Job <= 1: 2 (9.5/2.8)
## :       Job > 1: 1 (38.5/14)
## Saving.accounts = little:
## :...Purpose in {domestic appliances,repairs,vacation/others}: 1 (32.2/14.8)
##     Purpose = education:
##     :...Age <= 53: 2 (32.6/13.3)
##     :   Age > 53: 1 (5.5)
##     Purpose = furniture/equipment:
##     :...Checking.account in {NA,moderate}: 2 (42.6/15.7)
##     :   Checking.account = rich: 1 (11/2.7)
##     :   Checking.account = little:
##     :   :...Housing in {own,free}: 1 (48.7/19.9)
##     :       Housing = rent: 2 (24.4/9.5)
##     Purpose = radio/TV:
##     :...Duration <= 8: 1 (15.2)
##     :   Duration > 8:
##     :   :...X <= 570: 2 (96.6/44.2)
##     :       X > 570:
##     :       :...Duration <= 9: 2 (10.9/4)
##     :           Duration > 9: 1 (51.5/9.6)
##     Purpose = business:
##     :...Housing in {free,rent}: 2 (11/2.8)
##     :   Housing = own:
##     :   :...Sex = female: 1 (10.2/3.4)
##     :       Sex = male:
##     :       :...Credit.amount <= 1905: 1 (4.6)
##     :           Credit.amount > 1905: 2 (36.4/11.5)
##     Purpose = car:
##     :...Housing = rent: 1 (46.6/16.4)
##         Housing = free:
##         :...Duration <= 9: 2 (3.5)
##         :   Duration > 9: 1 (36.1/16.6)
##         Housing = own:
##         :...Age <= 29: 2 (37.5/9.9)
##             Age > 29:
##             :...Sex = female: 1 (20.7/5)
##                 Sex = male:
##                 :...Credit.amount <= 1216: 2 (17.8/3.6)
##                     Credit.amount > 1216: 1 (58.1/17.4)
## 
## -----  Trial 4:  -----
## 
## Decision tree:
## 
## Duration <= 11:
## :...X <= 181: 1 (21.5)
## :   X > 181:
## :   :...Job > 2: 2 (16.8/4.8)
## :       Job <= 2:
## :       :...Age > 35: 1 (32.9/1.1)
## :           Age <= 35:
## :           :...Housing in {own,rent}: 1 (61.3/26.7)
## :               Housing = free: 2 (3.5)
## Duration > 11:
## :...Saving.accounts in {quite rich,NA,rich}: 1 (79.1/30.3)
##     Saving.accounts = moderate:
##     :...Checking.account in {NA,little}: 2 (21/9.1)
##     :   Checking.account = rich: 1 (2.9/0.8)
##     :   Checking.account = moderate:
##     :   :...Housing = free: 2 (9.2/3.4)
##     :       Housing = rent: 1 (18/8.9)
##     :       Housing = own:
##     :       :...Job <= 2: 1 (31.4/11.4)
##     :           Job > 2: 2 (10.3/2)
##     Saving.accounts = little:
##     :...Purpose in {furniture/equipment,education}: 1 (136.5/65)
##         Purpose in {domestic appliances,repairs,business,
##         :           vacation/others}: 2 (90.2/39.2)
##         Purpose = radio/TV:
##         :...Duration <= 39: 1 (128.8/46.1)
##         :   Duration > 39: 2 (15.5/5.1)
##         Purpose = car:
##         :...Job > 2: 1 (35.7/14.3)
##             Job <= 2:
##             :...Job <= 1: 1 (39.9/19.5)
##                 Job > 1:
##                 :...Age <= 51: 2 (98.2/37.3)
##                     Age > 51: 1 (11.3/3.1)
## 
## -----  Trial 5:  -----
## 
## Decision tree:
## 
## Checking.account in {NA,rich}: 1 (84.1/32.5)
## Checking.account = little:
## :...Purpose in {radio/TV,business,vacation/others}: 1 (121.7/52.6)
## :   Purpose in {furniture/equipment,domestic appliances,education,
## :   :           repairs}: 2 (123.9/54.4)
## :   Purpose = car:
## :   :...Housing in {own,rent}: 1 (109.5/47.6)
## :       Housing = free: 2 (26.5/9.3)
## Checking.account = moderate:
## :...Credit.amount > 9283: 2 (31.2/6.8)
##     Credit.amount <= 9283:
##     :...Purpose in {radio/TV,domestic appliances,education,repairs,business,
##         :           vacation/others}: 1 (194.1/78.2)
##         Purpose = furniture/equipment:
##         :...Sex = male: 1 (26.9/11.3)
##         :   Sex = female: 2 (31.8/11.3)
##         Purpose = car:
##         :...X > 675: 1 (29.7/6.3)
##             X <= 675:
##             :...Housing = own: 2 (61.7/24.9)
##                 Housing in {free,rent}: 1 (22.8/6.4)
## 
## -----  Trial 6:  -----
## 
## Decision tree:
## 
## Duration <= 11:
## :...X <= 181: 1 (19.3)
## :   X > 181:
## :   :...Age > 35: 1 (39.2/7.4)
## :       Age <= 35:
## :       :...Housing = free: 2 (4.8)
## :           Housing in {own,rent}:
## :           :...Sex = male: 1 (33.1/13.1)
## :               Sex = female: 2 (31.3/11.6)
## Duration > 11:
## :...Saving.accounts in {quite rich,NA,rich}: 1 (78.5/32.4)
##     Saving.accounts = moderate: 2 (94.4/44.9)
##     Saving.accounts = little:
##     :...Checking.account = NA: 2 (0)
##         Checking.account = little:
##         :...Job <= 2: 2 (252.8/111.8)
##         :   Job > 2: 1 (37.6/13.8)
##         Checking.account = rich:
##         :...Job <= 1: 2 (13.6/5)
##         :   Job > 1: 1 (34.2/11.6)
##         Checking.account = moderate:
##         :...Purpose in {furniture/equipment,business,
##             :           vacation/others}: 2 (74.6/33.9)
##             Purpose in {domestic appliances,education,repairs}: 1 (21.8/9.7)
##             Purpose = car:
##             :...Sex = male: 1 (51.8/22.3)
##             :   Sex = female: 2 (20.5/8.5)
##             Purpose = radio/TV:
##             :...X > 561: 1 (11.7)
##                 X <= 561:
##                 :...Sex = male: 2 (28.9/10.9)
##                     Sex = female: 1 (15/5.9)
## 
## -----  Trial 7:  -----
## 
## Decision tree:
## 
## Age > 34: 1 (341.7/122.2)
## Age <= 34:
## :...Duration > 28: 2 (113.1/45.9)
##     Duration <= 28:
##     :...Purpose in {furniture/equipment,domestic appliances,business,
##         :           vacation/others}: 1 (137.1/47.7)
##         Purpose in {education,repairs}: 2 (25.2/8)
##         Purpose = radio/TV:
##         :...Age <= 22: 2 (17.8/3.8)
##         :   Age > 22: 1 (89/31.5)
##         Purpose = car:
##         :...X <= 406: 1 (40.2/9.5)
##             X > 406:
##             :...Housing = free: 2 (4.7)
##                 Housing in {own,rent}:
##                 :...Credit.amount <= 2775: 2 (50/12.4)
##                     Credit.amount > 2775: 1 (27.3/7.8)
## 
## -----  Trial 8:  -----
## 
## Decision tree:
## 
## Checking.account in {NA,rich}: 1 (53.1/11.2)
## Checking.account in {little,moderate}:
## :...Saving.accounts in {quite rich,NA,rich}: 1 (58.4/14)
##     Saving.accounts = moderate:
##     :...Sex = male:
##     :   :...Age <= 23: 2 (4/0.1)
##     :   :   Age > 23: 1 (66.8/22.2)
##     :   Sex = female:
##     :   :...Housing in {own,rent}: 1 (37/16.1)
##     :       Housing = free: 2 (3.1/0.1)
##     Saving.accounts = little:
##     :...Purpose in {radio/TV,education,repairs}: 1 (179.1/64.9)
##         Purpose in {domestic appliances,vacation/others}: 2 (17.8/7.7)
##         Purpose = business:
##         :...Housing in {free,rent}: 2 (12.3/3.1)
##         :   Housing = own:
##         :   :...Sex = female: 1 (11.4/2.4)
##         :       Sex = male:
##         :       :...Credit.amount <= 1905: 1 (4.6)
##         :           Credit.amount > 1905:
##         :           :...Job <= 2: 2 (32.7/11.7)
##         :               Job > 2: 1 (8.8/3)
##         Purpose = furniture/equipment:
##         :...Housing = free: 1 (4.3)
##         :   Housing in {own,rent}:
##         :   :...Age <= 20: 2 (7.6/0.3)
##         :       Age > 20:
##         :       :...Duration > 22:
##         :           :...X <= 170: 1 (5.6)
##         :           :   X > 170: 2 (36.1/11.7)
##         :           Duration <= 22:
##         :           :...Housing = rent: 1 (21/2.8)
##         :               Housing = own:
##         :               :...Duration <= 9: 2 (10.4/2.3)
##         :                   Duration > 9: 1 (33.9/9.8)
##         Purpose = car:
##         :...Credit.amount > 12204: 2 (12.8/0.7)
##             Credit.amount <= 12204:
##             :...Housing = free: 2 (31.9/13.9)
##                 Housing = rent:
##                 :...Credit.amount <= 8588: 1 (41.2/16.9)
##                 :   Credit.amount > 8588: 2 (3)
##                 Housing = own:
##                 :...Age > 48: 1 (8.7)
##                     Age <= 48:
##                     :...Age <= 25: 2 (9.4/0.9)
##                         Age > 25:
##                         :...Credit.amount > 5234: 1 (12.5)
##                             Credit.amount <= 5234:
##                             :...Job <= 1: 1 (24.1/9)
##                                 Job > 1:
##                                 :...Credit.amount > 3878: 2 (8.2)
##                                     Credit.amount <= 3878:
##                                     :...Age > 44: 2 (9/1)
##                                         Age <= 44:
##                                         :...Job > 2: 1 (3)
##                                             Job <= 2:
##                                             :...X <= 767: 2 (35.4/15.1)
##                                                 X > 767: 1 (6.9)
## 
## -----  Trial 9:  -----
## 
## Decision tree:
## 
## Checking.account in {NA,rich}: 1 (35.6/1.7)
## Checking.account in {little,moderate}:
## :...Saving.accounts in {quite rich,NA,rich}: 1 (42.3/3.5)
##     Saving.accounts in {little,moderate}:
##     :...Housing = rent:
##         :...X <= 154: 1 (15.8/1.7)
##         :   X > 154:
##         :   :...Duration <= 13: 1 (36.5/12.1)
##         :       Duration > 13:
##         :       :...Sex = male: 2 (31/7.9)
##         :           Sex = female:
##         :           :...X <= 863: 2 (57.1/18.3)
##         :               X > 863: 1 (4.4)
##         Housing in {own,free}:
##         :...Sex = female:
##             :...Housing = free: 2 (22/7.4)
##             :   Housing = own:
##             :   :...Age > 35: 1 (28.2/2.8)
##             :       Age <= 35:
##             :       :...Saving.accounts = moderate: 2 (23.7/10)
##             :           Saving.accounts = little:
##             :           :...Job > 2: 2 (9.6/3.1)
##             :               Job <= 2:
##             :               :...Credit.amount > 4439: 2 (14.6/3.3)
##             :                   Credit.amount <= 4439:
##             :                   :...Purpose = car: 2 (11.8/2.6)
##             :                       Purpose in {radio/TV,furniture/equipment,
##             :                                   domestic appliances,education,
##             :                                   repairs,business,
##             :                                   vacation/others}: 1 (38.9/5.4)
##             Sex = male:
##             :...Job <= 1:
##                 :...Age > 36: 1 (27.2/1.2)
##                 :   Age <= 36:
##                 :   :...Job <= 0: 2 (4.4/0.3)
##                 :       Job > 0: 1 (40/13)
##                 Job > 1:
##                 :...Duration <= 11: 1 (24.9/3.2)
##                     Duration > 11:
##                     :...Age <= 24: 2 (19.2/5.4)
##                         Age > 24:
##                         :...Purpose in {furniture/equipment,
##                             :           domestic appliances,education,
##                             :           vacation/others}: 1 (68.5/23.5)
##                             Purpose = repairs: 2 (7.9/3.8)
##                             Purpose = radio/TV:
##                             :...Duration <= 28: 1 (20.4)
##                             :   Duration > 28: 2 (19.2/6.7)
##                             Purpose = business:
##                             :...Age <= 49: 1 (49.9/17.2)
##                             :   Age > 49: 2 (5)
##                             Purpose = car:
##                             :...Age > 58: 1 (8)
##                                 Age <= 58:
##                                 :...Credit.amount <= 1082: 2 (8.7/0.5)
##                                     Credit.amount > 1082:
##                                     :...Credit.amount > 12204: 2 (5.4)
##                                         Credit.amount <= 12204: [S1]
## 
## SubTree [S1]
## 
## Checking.account = moderate: 1 (44.2/11.3)
## Checking.account = little:
## :...Job > 2: 1 (11.7)
##     Job <= 2:
##     :...Age <= 30: 1 (6.4)
##         Age > 30: 2 (30.4/12.3)
## 
## 
## Evaluation on training data (864 cases):
## 
## Trial        Decision Tree   
## -----      ----------------  
##    Size      Errors  
## 
##    0     32  191(22.1%)
##    1     14  237(27.4%)
##    2     18  232(26.9%)
##    3     29  282(32.6%)
##    4     20  271(31.4%)
##    5     12  294(34.0%)
##    6     18  301(34.8%)
##    7     10  240(27.8%)
##    8     33  230(26.6%)
##    9     32  207(24.0%)
## boost            141(16.3%)   <<
## 
## 
##     (a)   (b)    <-classified as
##    ----  ----
##     584    14    (a): class 1
##     127   139    (b): class 2
## 
## 
##  Attribute usage:
## 
##  100.00% Age
##  100.00% Duration
##   99.77% Purpose
##   94.91% Job
##   94.33% Housing
##   89.47% Sex
##   89.12% Credit.amount
##   80.90% Saving.accounts
##   67.25% X
##   60.07% Checking.account
## 
## 
## Time: 0.0 secs
credit_boost_pred10<-predict(credit_boost, credit_test)
CrossTable(credit_test$Credit.Risk, credit_boost_pred10, prop.chisq = FALSE, prop.c = FALSE, prop.r = FALSE, dnn = c('actual default','predicted default'))
## 
##  
##    Cell Contents
## |-------------------------|
## |                       N |
## |         N / Table Total |
## |-------------------------|
## 
##  
## Total Observations in Table:  90 
## 
##  
##                | predicted default 
## actual default |         1 |         2 | Row Total | 
## ---------------|-----------|-----------|-----------|
##              1 |        59 |         8 |        67 | 
##                |     0.656 |     0.089 |           | 
## ---------------|-----------|-----------|-----------|
##              2 |        14 |         9 |        23 | 
##                |     0.156 |     0.100 |           | 
## ---------------|-----------|-----------|-----------|
##   Column Total |        73 |        17 |        90 | 
## ---------------|-----------|-----------|-----------|
## 
## 
matrix_dimensions<- list(c("no", "yes"), c("no","yes"))
names(matrix_dimensions)<-c("predicted", "actual")
matrix_dimensions
## $predicted
## [1] "no"  "yes"
## 
## $actual
## [1] "no"  "yes"
error_cost<-matrix(c(0,1,4,0), nrow = 2, dimnames= matrix_dimensions)
error_cost
##          actual
## predicted no yes
##       no   0   4
##       yes  1   0
levels(credit_train$Credit.Risk)
## [1] "1" "2"
error_cost <- matrix(nrow = 2, ncol = 2,dimnames = list(c('1', '2'), c('1', '2')),data = c(0, 1, 4, 0))
credit_cost<-C5.0(credit_train[-11], credit_train$Credit.Risk, costs = error_cost)
credit_cost_pred<-predict(credit_cost, credit_test)
CrossTable(credit_test$Credit.Risk, credit_cost_pred, prop.chisq = FALSE, prop.c = FALSE,prop.r = FALSE, dnn = c('actual default','predicted default'))
## 
##  
##    Cell Contents
## |-------------------------|
## |                       N |
## |         N / Table Total |
## |-------------------------|
## 
##  
## Total Observations in Table:  90 
## 
##  
##                | predicted default 
## actual default |         1 |         2 | Row Total | 
## ---------------|-----------|-----------|-----------|
##              1 |        17 |        50 |        67 | 
##                |     0.189 |     0.556 |           | 
## ---------------|-----------|-----------|-----------|
##              2 |         2 |        21 |        23 | 
##                |     0.022 |     0.233 |           | 
## ---------------|-----------|-----------|-----------|
##   Column Total |        19 |        71 |        90 | 
## ---------------|-----------|-----------|-----------|
## 
##