From 93c9da88d22184984c51fb8b442834d102973dc6 Mon Sep 17 00:00:00 2001 From: Drew Giffin Date: Mon, 20 Oct 2025 16:40:37 -0400 Subject: [PATCH] Outliers are now removed --- images/classification_report.png | Bin 16519 -> 16496 bytes images/confusion_matrix.png | Bin 20719 -> 20841 bytes main.py | 24 +++++++++++++++++++++--- 3 files changed, 21 insertions(+), 3 deletions(-) diff --git a/images/classification_report.png b/images/classification_report.png index db549be83192f22b75c69aa813ecce5130bd2eb2..cfd978c43c4f1572025e2cb9d42b73ae3162dc63 100644 GIT binary patch delta 13322 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 delta 13240 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 Nc)I$ztaD0e0sx!`{%`;Q literal 20719 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 diff --git a/main.py b/main.py index 393dee3..5feda4f 100644 --- a/main.py +++ b/main.py @@ -21,7 +21,7 @@ def main(): # exploratory data analysis # draw_plots(df_clean) - le = get_label_encoder(df) + le = get_label_encoder(df_clean) # separate features and target X, y = separate_features_and_target(df_clean) @@ -142,8 +142,25 @@ def clean_data(df): print(df.duplicated().sum()) print("\n") - df.dropna(inplace=True) - return df + df_clean = df.dropna(inplace=False) + return df_clean + +def remove_outliers(df): + numeric_cols = df.select_dtypes(include=['number']).columns + + df_clean = df.copy() + + for col in numeric_cols: + Q1 = df[col].quantile(0.25) + Q3 = df[col].quantile(0.75) + IQR = Q3 - Q1 + + lower_bound = Q1 - 1.5 * IQR + upper_bound = Q3 + 1.5 * IQR + + df_clean = df_clean[(df_clean[col] >= lower_bound) & (df_clean[col] <= upper_bound)] + + return df_clean def order_data_stress_level(df): df["Stress_Level"] = pd.Categorical( @@ -185,6 +202,7 @@ def preprocess_data(df): df.drop("Student_ID", axis=1, inplace=True) df_clean = clean_data(df) order_data_stress_level(df_clean) + df_clean = remove_outliers(df_clean) return df_clean def normalize_features(X_train, X_test):