المشروع ده يهدف إلى **التنبؤ إذا كانت عينة مياه صالحة للشرب (Potable) أم لا** باستخدام تقنيات **Machine Learning**. يعتمد الحل على استخدام عدة **ML Algorithms** لتصنيف عينات المياه، ويتضمن **Data Preprocessing Pipeline** كامل بالإضافة إلى **Graphical User Interface (GUI)** سهلة الاستخدام لعمل **Real-time Predictions**.
**Dataset:**
تحتوي الـ **Dataset** على مجموعة من الخصائص الفيزيائية والكيميائية لعينات المياه مثل:
`pH`, `Hardness`, `Solids`, `Chloramines`, `Sulfate`, `Conductivity`, `Organic Carbon`, `Trihalomethanes`, `Turbidity`، بالإضافة إلى **Target Label** يوضح ما إذا كانت المياه صالحة للشرب (`1` = Potable، `0` = Not Potable).
**Preprocessing Steps:**
* **Null Handling:** تم تحديد القيم المفقودة في الـ Dataset والتعامل معها بشكل مناسب.
* **Outlier Detection and Removal:** تم اكتشاف القيم الشاذة (Outliers) ومعالجتها لضمان جودة البيانات.
* **Categorical Encoding:** تم تحويل أي بيانات **Categorical** إلى صيغة رقمية لتكون متوافقة مع نماذج **Machine Learning**.
* **Feature Scaling:** تم تطبيق **Feature Scaling** على جميع الخصائص الرقمية لتوحيد نطاق البيانات.
* **Data Balancing:** نظرًا لأن الـ Dataset كانت **Imbalanced**، تم استخدام تقنية **SMOTE (Synthetic Minority Over-sampling Technique)** لتوليد عينات صناعية وتحقيق توازن في توزيع الفئات.
**Modeling:**
تم تدريب واختبار عدة خوارزميات من **Machine Learning** منها:
* **Support Vector Machine (SVM)**
* **K-Nearest Neighbors (KNN)**
* **Logistic Regression**
* **Decision Tree**
* **Random Forest**
تمت مقارنة النماذج باستخدام **Performance Metrics** مثل:
`Accuracy`, `Precision`, `Recall`, و `F1-score` لاختيار النموذج الأكثر كفاءة.
**Automation Script:**
تم تطوير **Data Preprocessing Script** مستقل يقوم تلقائيًا بتنظيف وتجهيز أي بيانات جديدة. هذا الـ **Script** يطبق جميع خطوات الـ **Preprocessing** مثل **Null Handling**, **Outlier Removal**, **Scaling**, و **Encoding**، مما يجعله قابلًا لإعادة الاستخدام مع أي بيانات مستقبلية.
**Deployment:**
النظام النهائي يتضمن **Graphical User Interface (GUI)** مبنية باستخدام **Streamlit**، تسمح للمستخدم بإدخال بيانات عينة مياه جديدة والحصول فورًا على **Potability Prediction**. هذا يجعل الأداة سهلة الاستخدام حتى لغير المتخصصين.
**Languages & Libraries:**
Python, Pandas, NumPy, Scikit-learn, Streamlit, SMOTE (from imbalanced-learn)
**Tools:**
Jupyter Notebook, Streamlit (for GUI)