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 |
## ---------------|-----------|-----------|-----------|
##
##