Professional Documents
Culture Documents
Comparative Study of ML Algorithms For Heart Disease Prediction Paper Journal Ijtrs
Comparative Study of ML Algorithms For Heart Disease Prediction Paper Journal Ijtrs
International Journal of Technical Research & Science (Special Issue) ISSN No.:2454-2024 (online)
150
100
count
50
Disease Healthy
num
The results are stored in a data frame which is used for comparision among all models.
results <- data.frame(Model = character(),
Accuracy = double(),
Sensitivity = double(),
Specificity = double(), stringsAsFactors = FALSE)
4. MODELING FOR PREDICTION
4.1 Naive Bayes
It is one of the most basic models used for prediction.
nb_model = train(num ~ ., data = train, method = "nb") predictions
= predict(nb_model, newdata = test) confusionMatrix <-
confusionMatrix(predictions, test$num)
results[nrow(results) + 1, ] <- c(as.character('Naive Bayes (nb)'),
confusionMatrix$overall['Accuracy'],
confusionMatrix$byClass['Sensitivity'],
confusionMatrix$byClass['Specificity'])
rm(nb_model, predictions)
confusionMatrix
## Confusion Matrix and Statistics
##
## Reference
## Prediction Healthy Disease
## Healthy 34 7
DOI Number: https://doi.org/10.30780/specialissue-ICACCG2020/039 pg. 39
Paper Id: IJTRS-ICACCG2020-039
@2017, IJTRS All Right Reserved, www.ijtrs.com
ICACCG2020 30-31 July, 2020, Ansal University, Gurgaon, India
International Journal of Technical Research & Science (Special Issue) ISSN No.:2454-2024 (online)
## Disease 7 41
##
## Accuracy : 0.8427
## 95% CI : (0.7502, 0.9112)
## No Information Rate : 0.5393
## P-Value [Acc > NIR] : 1.452e-09
##
## Kappa : 0.6834
##
## Mcnemar's Test P-Value : 1
##
## Sensitivity : 0.8293
## Specificity : 0.8542
## Pos Pred Value : 0.8293
## Neg Pred Value : 0.8542
## Prevalence : 0.4607
## Detection Rate : 0.3820
## Detection Prevalence : 0.4607
## Balanced Accuracy : 0.8417
##
## 'Positive' Class : Healthy
##
4.2 Linear Classifier
It makes a classification decision based on the value of a linear combination of the characteristics. A (generalized)
linear model is fit using a boosting algorithm based on component-wise univariate linear model to make the
predictions.
lr_model = train(num ~ ., data = train, method = "glmboost")
predictions = predict(lr_model, newdata = test) confusionMatrix <-
confusionMatrix(predictions, test$num)
results[nrow(results) + 1, ] <- c(as.character('Linear Classifier (glmboost)'),
confusionMatrix$overall['Accuracy'],
confusionMatrix$byClass['Sensitivity'],
confusionMatrix$byClass['Specificity'])
rm(lr_model, predictions)
confusionMatrix
## Confusion Matrix and Statistics
##
## Reference
## Prediction Healthy Disease
## Healthy 33 8
## Disease 8 40
##
## Accuracy : 0.8202
## 95% CI : (0.7245, 0.8936)
## No Information Rate : 0.5393
## P-Value [Acc > NIR] : 2.567e-08
##
## Kappa : 0.6382
##
## Mcnemar's Test P-Value : 1
##
## Sensitivity : 0.8049
## Specificity : 0.8333
## Pos Pred Value : 0.8049
## Neg Pred Value : 0.8333
## Prevalence : 0.4607
## Detection Rate : 0.3708
## Detection Prevalence : 0.4607