Spaces:
Runtime error
Runtime error
File size: 1,496 Bytes
f7b331f | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 | import os
import joblib
from sklearn.neighbors import KNeighborsClassifier
from sklearn.svm import SVC
from sklearn.linear_model import LogisticRegression
from sklearn.ensemble import RandomForestClassifier
from sklearn.neural_network import MLPClassifier
import pandas as pd
import sys
sys.path.append(os.path.dirname(os.path.abspath(__file__)))
from preprocessing import get_train_test_split, resolve_model_dir
def train_models():
data_path = '/app/data/patient_dataset.csv' if os.path.exists('/app/data') else '../data/patient_dataset.csv' if os.path.exists('../data') else 'data/patient_dataset.csv'
model_dir = resolve_model_dir()
os.makedirs(model_dir, exist_ok=True)
print("Loading data...")
df = pd.read_csv(data_path)
X_train, X_test, y_train, y_test = get_train_test_split(df)
models = {
'knn': KNeighborsClassifier(n_neighbors=5),
'svm': SVC(kernel='linear', probability=True, max_iter=2000),
'logreg': LogisticRegression(max_iter=1000),
'rf': RandomForestClassifier(n_estimators=30, max_depth=5, random_state=42),
'small_nn': MLPClassifier(hidden_layer_sizes=(16, 8), max_iter=500, random_state=42)
}
for name, model in models.items():
print(f"Training {name}...")
model.fit(X_train, y_train)
joblib.dump(model, f'{model_dir}/{name}.pkl')
print("Training Complete.")
if __name__ == '__main__':
train_models()
|