Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,12 @@ __pycache__/
*.py[cod]
*$py.class

models/
data/processed/
# C extensions
*.so
venv/
.venv/

# Distribution / packaging
.Python
Expand Down
307 changes: 0 additions & 307 deletions Project.py

This file was deleted.

File renamed without changes.
43 changes: 43 additions & 0 deletions main.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
from src.load_data import load_data, save_data
from src.preprocessing import prepare_features
from src.train_and_evaluate import train_and_evaluate
from src.visualization import menu_plots
from src.inference import save_model_artifacts, predict_from_input, load_model_artifacts
import os

DATA_PATH = "data/raw/AI-Data.csv"


def main():

df = load_data(DATA_PATH)
if df is None:
return

menu_plots(df)

print("\nPreparing features...")
X, y, numeric_features, le_target = prepare_features(df, target_col="Class")
print(f"Prepared features: {numeric_features}")

print("\nTraining and evaluating models...")
results, X_train, X_test, y_train, y_test = train_and_evaluate(X, y)
print("Training complete.\n")

save_data(df)

best_name = max(results, key=lambda k: results[k]["test_acc"])
best_pipeline = results[best_name]["pipeline"]
print(f"Best model: {best_name} (test_acc={results[best_name]['test_acc']:.3f})")
save_model_artifacts(best_pipeline, le_target, model_name=f"{best_name}.joblib")

if input("\nDo you want to test a custom input interactively? (y/n): ").lower().startswith("y"):

pipeline, le = load_model_artifacts(f"{best_name}.joblib")
predict_from_input(pipeline, numeric_features, le)

print("\nAll done.")


if __name__ == "__main__":
main()
1 change: 1 addition & 0 deletions requirements.txt
Original file line number Diff line number Diff line change
Expand Up @@ -3,5 +3,6 @@ seaborn
matplotlib
scikit-learn
numpy
joblib

#to run: pip install -r requirements.txt
Loading