A machine learning model to classify objects as rocks or mines based on SONAR signals.
This project leverages Machine Learning to classify SONAR signals as either rock or mine using supervised learning techniques.
β Key Features:
- Binary classification of SONAR signals π οΈ
- Exploratory Data Analysis (EDA) π
- Feature selection & model training π―
- Performance evaluation using accuracy metrics β
- π’ Python (Pandas, NumPy, Matplotlib, Seaborn)
- π’ Scikit-learn (Logistic Regression, SVM, Random Forest)
- π’ Jupyter Notebook / Google Colab
- SONAR signal dataset from UCI Machine Learning Repository
- Features: 60 frequency-based attributes
- Labels: Rock (R) / Mine (M)
# Clone the repository
git clone https://github.com/Rishita-rm/SONAR-Rock-vs-Mine-Prediction-with-Python.git
# Navigate to the project folder
cd SONAR-Rock-vs-Mine-Prediction-with-Python
# Install dependencies
pip install -r requirements.txt
# Run the Jupyter Notebook
jupyter notebook
1οΈβ£ Load & preprocess dataset
2οΈβ£ Perform exploratory data analysis
3οΈβ£ Train models (Logistic Regression, SVM, Random Forest)
4οΈβ£ Evaluate performance using accuracy, precision, recall
5οΈβ£ Predict new SONAR readings
π Model Accuracy:
- Logistic Regression: 85%
- SVM: 88%
- Random Forest: 92% β (Best Model)
π Confusion Matrix & Performance Metrics:
- Precision, Recall, F1-Score calculated for each model
- Load dataset in the Jupyter Notebook
- Train models using provided scripts
- Test the classifier on new SONAR readings
- Deploy the model for real-world classification
β
Implement deep learning models for better accuracy π§
β
Deploy as a web app using Flask / Streamlit π
β
Optimize feature selection for improved model performance
Want to contribute? Follow these steps:
- Fork the repository
- Create a new branch (
feature-xyz
) - Commit changes
- Push to the branch
- Open a Pull Request