Try It Yourself
Enter values below, then hit Predict to see what the model says.
Raw Dataset (original data)
| age | sex | cp | trestbps | chol | fbs | restecg | thalach | exang | oldpeak | slope | ca | thal | target |
|---|
Cleaned Dataset (the version we feed to the model)
| age | chol | thalach | target |
|---|
The Code (how we built this model)
import pandas as pd
import numpy as np
from sklearn.model_selection import train_test_split
from sklearn.tree import DecisionTreeClassifier
from sklearn.metrics import accuracy_score
df = pd.read_csv('heart_disease_original.csv')
# Replace missing value placeholders, then select columns
df = df.replace('?', np.nan)
df = df[['age', 'chol', 'thalach', 'target']]
df = df.dropna()
# Binarize target: 0 = no disease, 1 = disease present
df['target'] = (df['target'].astype(int) > 0).astype(int)
X = df.drop('target', axis=1)
y = df['target']
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
model = DecisionTreeClassifier(max_depth=2, random_state=42)
model.fit(X_train, y_train)
y_pred = model.predict(X_test)
print(accuracy_score(y_test, y_pred))
Under the Hood (how the model thinks)
This is the actual decision tree the model learned. Starting from the top, each diamond asks a yes/no question — follow True left and False right until you reach a coloured leaf, which is the final prediction.