|
import pandas as pd |
|
import pickle |
|
from keras.api.models import Sequential |
|
from keras.api.layers import Dense, Dropout, BatchNormalization |
|
from sklearn.preprocessing import StandardScaler |
|
|
|
|
|
data = pd.read_csv("diabetes.csv") |
|
data = data[data.BMI >= 5] |
|
|
|
X = data.drop("Outcome", axis=1) |
|
y = data["Outcome"] |
|
|
|
|
|
sc = StandardScaler() |
|
X = sc.fit_transform(X) |
|
|
|
|
|
model = Sequential() |
|
model.add(Dense(120, activation="relu", input_shape=(X.shape[1],))) |
|
model.add(BatchNormalization()) |
|
model.add(Dropout(0.3)) |
|
model.add(Dense(64, activation="relu")) |
|
model.add(BatchNormalization()) |
|
model.add(Dropout(0.3)) |
|
model.add(Dense(1, activation="sigmoid")) |
|
model.compile(loss="binary_crossentropy", optimizer="adam", metrics=["accuracy"]) |
|
|
|
|
|
model.fit(X, y, |
|
epochs=10, |
|
batch_size=32, |
|
validation_split=0.2, |
|
verbose=1) |
|
|
|
model.save("model.keras") |
|
joblib.dump(sc, "diabetes_scaler.pkl") |