>
> library(party)
> library(caret)
> library(e1071)
> heart_failure_clinical$name <- NULL
>
> heart_failure_clinical$DEATH_EVENT <- as.factor(heart_failure_clinical$DEATH_EVENT)
> heart_failure_clinical$DEATH_EVENT <- as.character(heart_failure_clinical$DEATH_EVENT)
> heart_failure_clinical$DEATH_EVENT[heart_failure_clinical$DEATH_EVENT==1] <- 'Yes'
> heart_failure_clinical$DEATH_EVENT[heart_failure_clinical$DEATH_EVENT==0] <- 'No'
> heart_failure_clinical$DEATH_EVENT <- as.factor(heart_failure_clinical$DEATH_EVENT)
> table(heart_failure_clinical$DEATH_EVENT)
No Yes
203 96
>
> # Sampling Replacement
> set.seed(123)
> index<-sample(200:nrow(heart_failure_clinical), 299, replace = TRUE )
> index
[1] 230 278 250 213 266 241 249 242 213 224 289 290 268 290 256 291 208 292 298 271 225 206 241 208 282 235 277 280 242 275 214 231
[33] 206 208 240 273 222 226 259 252 206 252 226 295 237 288 233 292 268 271 275 262 212 281 296 290 224 237 220 278 240 246 289 259
[65] 294 215 293 205 271 285 285 238 230 280 249 233 203 212 268 224 251 221 288 231 224 286 234 239 229 211 230 229 263 298 213 292
[97] 295 270 266 222 278 284 236 207 250 273 249 297 273 285 275 283 245 216 261 245 253 234 293 278 223 286 206 292 278 222 225 231
[129] 206 226 241 204 269 215 223 231 220 254 274 235 282 288 238 253 289 208 270 297 247 276 282 255 238 267 200 239 229 293 288 215
[161] 287 253 274 247 219 266 292 235 251 221 248 241 258 283 210 254 207 245 284 265 276 245 269 271 243 231 235 244 213 215 286 232
[193] 239 239 209 288 271 281 208 206 206 257 260 273 223 262 253 222 225 232 256 228 209 252 253 276 210 224 251 225 206 224 286 289
[225] 231 283 223 256 272 222 213 205 290 200 289 257 280 228 225 226 284 206 259 225 240 283 205 293 230 292 216 263 236 256 219 234
[257] 288 232 265 203 273 296 204 224 207 254 288 284 244 217 241 230 205 270 260 247 216 244 291 262 252 252 262 270 283 281 292 216
[289] 296 201 248 201 212 223 248 266 281 201 236
> heart_failure_clinical[index,]
age anaemia creatinine_phosphokinase diabetes ejection_fraction high_blood_pressure platelets serum_creatinine serum_sodium
230 72 0 211 0 25 0 274000 1.20 134
278 70 0 582 1 38 0 25100 1.10 140
250 53 0 207 1 40 0 223000 1.20 130
213 78 0 224 0 50 0 481000 1.40 138
266 50 1 298 0 35 0 362000 0.90 140
241 70 0 81 1 35 1 533000 1.30 139
249 40 0 624 0 35 0 301000 1.00 142
242 65 0 582 1 30 0 249000 1.30 136
213.1 78 0 224 0 50 0 481000 1.40 138
224 47 0 582 0 25 0 130000 0.80 134
289 65 0 892 1 35 0 263358 1.10 142
290 90 1 337 0 38 0 390000 0.90 144
268 56 1 135 1 38 0 133000 1.70 140
290.1 90 1 337 0 38 0 390000 0.90 144
256 52 1 191 1 30 1 334000 1.00 142
291 45 0 615 1 55 0 222000 0.80 141
208 85 0 212 0 38 0 186000 0.90 136
292 60 0 320 0 35 0 133000 1.40 139
298 45 0 2413 0 38 0 140000 1.40 140
271 44 0 582 1 30 1 263358 1.60 130
225 58 0 582 1 25 0 504000 1.00 138
206 50 1 167 1 45 0 362000 1.00 136
241.1 70 0 81 1 35 1 533000 1.30 139
208.1 85 0 212 0 38 0 186000 0.90 136
282 70 0 582 0 40 0 51000 2.70 136
235 53 1 582 0 45 0 305000 1.10 137
277 70 0 618 0 35 0 327000 1.10 142
280 55 0 84 1 38 0 451000 1.30 136
242.1 65 0 582 1 30 0 249000 1.30 136
275 60 1 257 1 30 0 150000 1.00 137
214 48 1 131 1 30 1 244000 1.60 130
231 60 0 166 0 30 0 62000 1.70 127
206.1 50 1 167 1 45 0 362000 1.00 136
208.2 85 0 212 0 38 0 186000 0.90 136
240 55 1 180 0 45 0 263358 1.18 137
273 67 0 213 0 38 0 215000 1.20 133
222 65 0 118 0 50 0 194000 1.10 145
226 75 0 675 1 60 0 265000 1.40 125
259 45 1 66 1 25 0 233000 0.80 135
252 55 0 572 1 35 0 231000 0.80 143
206.2 50 1 167 1 45 0 362000 1.00 136
252.1 55 0 572 1 35 0 231000 0.80 143
226.1 75 0 675 1 60 0 265000 1.40 125
295 62 0 61 1 38 1 155000 1.10 143
237 75 0 119 0 50 1 248000 1.10 148
288 45 0 582 1 55 0 543000 1.00 132
233 40 1 129 0 35 0 255000 0.90 137
292.1 60 0 320 0 35 0 133000 1.40 139
268.1 56 1 135 1 38 0 133000 1.70 140
271.1 44 0 582 1 30 1 263358 1.60 130
275.1 60 1 257 1 30 0 150000 1.00 137
262 62 1 655 0 40 0 283000 0.70 133
212 50 0 582 0 62 1 147000 0.80 140
281 70 0 2695 1 40 0 241000 1.00 137
296 55 0 1820 0 38 0 270000 1.20 139
290.2 90 1 337 0 38 0 390000 0.90 144
224.1 47 0 582 0 25 0 130000 0.80 134
237.1 75 0 119 0 50 1 248000 1.10 148
220 55 0 582 1 35 1 371000 0.70 140
278.1 70 0 582 1 38 0 25100 1.10 140
240.1 55 1 180 0 45 0 263358 1.18 137
246 61 1 80 1 38 0 282000 1.40 137
289.1 65 0 892 1 35 0 263358 1.10 142
259.1 45 1 66 1 25 0 233000 0.80 135
294 63 1 103 1 35 0 179000 0.90 136
215 65 1 135 0 35 1 290000 0.80 134
293 52 0 190 1 38 0 382000 1.00 140
205 78 1 64 0 40 0 277000 0.70 137
271.2 44 0 582 1 30 1 263358 1.60 130
285 50 1 54 0 40 0 279000 0.80 141
285.1 50 1 54 0 40 0 279000 0.80 141
238 70 0 232 0 30 0 173000 1.20 132
230.1 72 0 211 0 25 0 274000 1.20 134
280.1 55 0 84 1 38 0 451000 1.30 136
249.1 40 0 624 0 35 0 301000 1.00 142
233.1 40 1 129 0 35 0 255000 0.90 137
gender smoking time DEATH_EVENT
230 0 0 207 No
278 1 0 246 No
250 0 0 214 No
213 1 1 192 No
266 1 1 240 No
241 0 0 212 No
249 1 1 214 No
242 1 1 212 No
213.1 1 1 192 No
224 1 0 201 No
289 0 0 256 No
290 0 0 256 No
268 1 0 244 No
290.1 0 0 256 No
256 1 1 216 No
291 0 0 257 No
208 1 0 187 No
292 1 0 258 No
298 1 1 280 No
271 1 1 244 No
225 1 0 205 No
206 0 0 187 No
241.1 0 0 212 No
208.1 1 0 187 No
282 1 1 250 No
235 1 1 209 No
277 0 0 245 No
280 0 0 246 No
242.1 1 1 212 No
275 1 1 245 No
214 0 0 193 Yes
231 0 0 207 Yes
206.1 0 0 187 No
208.2 1 0 187 No
240 1 1 211 No
273 0 0 245 No
222 1 1 200 No
226 0 0 205 No
259 1 0 230 No
252 0 0 215 No
206.2 0 0 187 No
252.1 0 0 215 No
226.1 0 0 205 No
295 1 1 270 No
237 1 0 209 No
288 0 0 250 No
233 1 0 209 No
292.1 1 0 258 No
268.1 1 0 244 No
271.1 1 1 244 No
275.1 1 1 245 No
262 0 0 233 No
212 1 1 192 No
281 1 0 247 No
296 0 0 271 No
290.2 0 0 256 No
224.1 1 0 201 No
237.1 1 0 209 No
220 0 0 197 No
278.1 1 0 246 No
240.1 1 1 211 No
246 1 0 213 No
289.1 0 0 256 No
259.1 1 0 230 No
294 1 1 270 No
215 1 0 194 No
293 1 1 258 No
205 1 1 187 No
271.2 1 1 244 No
285 1 0 250 No
285.1 1 0 250 No
238 1 0 210 No
230.1 0 0 207 No
280.1 0 0 246 No
249.1 1 1 214 No
233.1 1 0 209 No
[ reached 'max' / getOption("max.print") -- omitted 223 rows ]
> # Training and Testing data sets
> p=0.70 # Percentage split
> n.train=as.integer(nrow(heart_failure_clinical)*p) # get number of data rows to sample
> indx=sample(1:nrow(heart_failure_clinical),n.train) # generate random sampling indicies
> TrainData=heart_failure_clinical[indx,] # get training data
> TestData=heart_failure_clinical[-indx,] # get testing data
> # Fit model
> Fit.ctree <- ctree(DEATH_EVENT ~., data=TrainData)
>
> # plot tree
> plot(Fit.ctree, type='simple')
>
> # get predicted values for testing data
> pred=predict(Fit.ctree,newdata=TestData)
>
> # tabulate actuall and predicted class values
> table(TestData$DEATH_EVENT,pred)
pred
No Yes
No 61 3
Yes 11 15
> confusionMatrix(pred,TestData$DEATH_EVENT)
Confusion Matrix and Statistics
Reference
Prediction No Yes
No 61 11
Yes 3 15
Accuracy : 0.8444
95% CI : (0.7528, 0.9123)
No Information Rate : 0.7111
P-Value [Acc > NIR] : 0.002468
Kappa : 0.5833
Mcnemar's Test P-Value : 0.061369
Sensitivity : 0.9531
Specificity : 0.5769
Pos Pred Value : 0.8472
Neg Pred Value : 0.8333
Prevalence : 0.7111
Detection Rate : 0.6778
Detection Prevalence : 0.8000
Balanced Accuracy : 0.7650
'Positive' Class : No
> library(pROC)
> pred <- predict(Fit.ctree, newdata = TestData,type='prob')
> pred
[[1]]
[1] 0.1724138 0.8275862
[[2]]
[1] 0.1724138 0.8275862
[[3]]
[1] 0.1724138 0.8275862
[[4]]
[1] 0.1724138 0.8275862
[[5]]
[1] 0.1724138 0.8275862
[[6]]
[1] 0.1724138 0.8275862
[[7]]
[1] 0.1724138 0.8275862
[[8]]
[1] 0.1724138 0.8275862
[[9]]
[1] 0.1724138 0.8275862
[[10]]
[1] 0.1724138 0.8275862
[[11]]
[1] 0.1724138 0.8275862
[[12]]
[1] 0.1724138 0.8275862
[[13]]
[1] 0.1724138 0.8275862
[[14]]
[1] 0.1724138 0.8275862
[[15]]
[1] 0.1724138 0.8275862
[[16]]
[1] 0.1724138 0.8275862
[[17]]
[1] 0.1724138 0.8275862
[[18]]
[1] 0.1724138 0.8275862
[[19]]
[1] 0.92 0.08
[[20]]
[1] 0.92 0.08
[[21]]
[1] 0.92 0.08
[[22]]
[1] 0.92 0.08
[[23]]
[1] 0.92 0.08
[[24]]
[1] 0.92 0.08
[[25]]
[1] 0.92 0.08
[[26]]
[1] 0.92 0.08
[[27]]
[1] 0.92 0.08
[[28]]
[1] 0.92 0.08
[[29]]
[1] 0.92 0.08
[[30]]
[1] 0.92 0.08
[[31]]
[1] 0.92 0.08
[[32]]
[1] 0.92 0.08
[[33]]
[1] 0.92 0.08
[[34]]
[1] 0.5384615 0.4615385
[[35]]
[1] 0.92 0.08
[[36]]
[1] 0.92 0.08
[[37]]
[1] 0.92 0.08
[[38]]
[1] 0.92 0.08
[[39]]
[1] 0.92 0.08
[[40]]
[1] 0.5384615 0.4615385
[[41]]
[1] 0.92 0.08
[[42]]
[1] 0.5384615 0.4615385
[[43]]
[1] 0.5384615 0.4615385
[[44]]
[1] 0.92 0.08
[[45]]
[1] 0.5384615 0.4615385
[[46]]
[1] 0.92 0.08
[[47]]
[1] 0.92 0.08
[[48]]
[1] 0.92 0.08
[[49]]
[1] 0.92 0.08
[[50]]
[1] 0.92 0.08
[[51]]
[1] 0.92 0.08
[[52]]
[1] 0.92 0.08
[[53]]
[1] 0.92 0.08
[[54]]
[1] 0.92 0.08
[[55]]
[1] 0.92 0.08
[[56]]
[1] 0.92 0.08
[[57]]
[1] 0.92 0.08
[[58]]
[1] 0.92 0.08
[[59]]
[1] 0.5384615 0.4615385
[[60]]
[1] 0.92 0.08
[[61]]
[1] 0.92 0.08
[[62]]
[1] 0.5384615 0.4615385
[[63]]
[1] 0.92 0.08
[[64]]
[1] 0.92 0.08
[[65]]
[1] 0.5384615 0.4615385
[[66]]
[1] 0.92 0.08
[[67]]
[1] 0.5384615 0.4615385
[[68]]
[1] 0.5384615 0.4615385
[[69]]
[1] 0.92 0.08
[[70]]
[1] 0.92 0.08
[[71]]
[1] 0.92 0.08
[[72]]
[1] 0.92 0.08
[[73]]
[1] 0.92 0.08
[[74]]
[1] 0.5384615 0.4615385
[[75]]
[1] 0.92 0.08
[[76]]
[1] 0.5384615 0.4615385
[[77]]
[1] 0.92 0.08
[[78]]
[1] 0.92 0.08
[[79]]
[1] 0.92 0.08
[[80]]
[1] 0.92 0.08
[[81]]
[1] 0.92 0.08
[[82]]
[1] 0.92 0.08
[[83]]
[1] 0.92 0.08
[[84]]
[1] 0.5384615 0.4615385
[[85]]
[1] 0.5384615 0.4615385
[[86]]
[1] 0.92 0.08
[[87]]
[1] 0.92 0.08
[[88]]
[1] 0.92 0.08
[[89]]
[1] 0.92 0.08
[[90]]
[1] 0.5384615 0.4615385
> head(pred)
[[1]]
[1] 0.1724138 0.8275862
[[2]]
[1] 0.1724138 0.8275862
[[3]]
[1] 0.1724138 0.8275862
[[4]]
[1] 0.1724138 0.8275862
[[5]]
[1] 0.1724138 0.8275862
[[6]]
[1] 0.1724138 0.8275862
> curve <- roc(TestData$DEATH_EVENT=='Yes',pred$Yes)
Error in roc.default(TestData$DEATH_EVENT == "Yes", pred$Yes) :
No valid data provided.
> plot(curve)
Error: node stack overflow
Error during wrapup: node stack overflow
Error: no more error handlers available (recursive errors?); invoking 'abort' restart
This topic was automatically closed 21 days after the last reply. New replies are no longer allowed.
If you have a query related to it or one of the replies, start a new topic and refer back with a link.