Algorithm Selector is a web application that uses Reinforcement Learning to select the best machine learning algorithm for a given dataset. The project leverages Deep Q Networks and Q Learning to evaluate and choose among several algorithms: Support Vector Machine (SVM), Decision Tree, k-Nearest Neighbors (kNN), and Random Forest. The web interface is built using Flask, allowing users to upload datasets and receive recommendations on the best algorithm to use.
- Algorithm Selection: Utilizes Deep Q Networks and Q Learning to determine the most suitable machine learning algorithm for your dataset.
- Multiple Algorithms Supported: Compares SVM, Decision Tree, kNN, and Random Forest.
- User-friendly Web Interface: Easy-to-use interface for uploading datasets and receiving algorithm recommendations.
- Automatic Learning: The system improves its recommendations over time through reinforcement learning.
- Flask: Web framework used for creating the web interface.
- Scikit-Learn: Machine learning library for implementing the algorithms.
- Pandas: Data manipulation and analysis library for handling datasets.
- NumPy: Library for numerical computations.
- Reinforcement Learning: Deep Q Networks and Q Learning for algorithm selection.
- Python 3.6 or higher
- Pip (Python package installer)
-
Clone the repository:
git clone https://github.com/your-username/algorithm-selector.git cd algorithm-selector
-
Create a virtual environment:
python -m venv venv source venv/bin/activate # On Windows, use `venv\Scripts\activate`
-
Install the required packages:
pip install -r requirements.txt
-
Install the required packages:
pip install -r requirements.txt
- Start the Flask application:
python app.py
- pen your web browser and navigate to:
http://127.0.0.1:5000
-
Upload a CSV file:
- Ensure your CSV file has a proper format and the target variable column.
- The target variable is the column you want the algorithms to predict.
-
Select the target variable:
- Enter the name of the target variable in the provided form.
-
Get the recommendation:
- The application will process the dataset and recommend the best algorithm based on its learning.
- Automated Selection: Saves time by automatically determining the best algorithm for your dataset.
- Improves Over Time: The reinforcement learning model improves its accuracy with more data and usage.
- User-Friendly: Simple and intuitive web interface for ease of use.
- Versatile: Supports multiple machine learning algorithms, making it suitable for various types of datasets.