Cardiovascular disease (CVD) is one of the major causes of death worldwide. Early detection of this disease can decrease the mortality rate significantly and it can also reduce the costs of medical treatment. Researchers are trying to develop automated systems using data mining techniques that can help in this regard. Although they would be extremely difficult to build, Machine Learning (ML) based methods for heart disease prediction might be very useful in clinical settings. Moreover, the majority of nations lack doctors specialized in cardiovascular treatments, and a high percentage of cases are misdiagnosed. These issues could be resolved by creating an accurate and effective early-stage heart disease prediction system using ML. In this paper, we propose an ML technique to identify cvd patients depending on different features. We collected a heart disease dataset from the Center for Disease Control and Prevention (CDC) then applied different pre-processing steps, and transformed several attributes to make them readable for the ML algorithms. 5 supervised ML algorisms were implemented and the Random Forest algorithm provided the best outcomes in all the performance metrics that we studied, with maximum accuracy of 91% and, ROC-AUC (Area under the ROC Curve) of 0.91. It also surpasses the performance of other algorithms with a maximum True Positive Rate (TPR) of 0.922 and a minimum False Negative Rate (FNR) of.078.