import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.metrics import classification_report
from keras.models import Sequential
from keras.layers import Dense

# Load data
data = pd.read_csv("SAheart.csv")

# Preprocess
data['famhist'] = data['famhist'].map({'Present': 1, 'Absent': 0})

X = data[['adiposity','age','tobacco','ldl','alcohol','obesity','typea']]
y = data['chd']

# Split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)

# Scale
scaler = StandardScaler()
X_train = scaler.fit_transform(X_train)
X_test = scaler.transform(X_test)

# Model
model = Sequential([
    Dense(16, activation='relu', input_shape=(7,)),
    Dense(16, activation='relu'),
    Dense(1, activation='sigmoid')
])

model.compile(optimizer='adam', loss='binary_crossentropy', metrics=['accuracy'])

# Train
model.fit(X_train, y_train, epochs=100, batch_size=16, verbose=0)

# Evaluate
print("Test Accuracy:", model.evaluate(X_test, y_test)[1])

# Predictions
y_pred = (model.predict(X_test) > 0.5).astype(int)
print(classification_report(y_test, y_pred))