Automating ML Workflows with Ease
The Automated ML is a Python application designed to automate the process of building, tuning, and evaluating machine learning models based on json provided in RTF/JSON?/TXT file format.
This application follows a structured flow to read the json file, extract dataset information, transform features, split data, build and tune models, and evaluate their performance.
To use the Automated ML Pipeline, follow these steps:
-
Clone this repository to your local machine:
git clone https://github.com/Rupanshu-Kapoor/AutomateML.git
-
Install the required dependencies:
pip install -r requirements.txt
-
Run the application:
streamlit run app.py
You can use the application in following two ways:
- Upload the dataset on the tool on which you want to train the different model.
- Once the data is uploaded, you can preview the dataset.
- Select prediction parameters (prediction type, target variable, k-fold, etc.).
- Select features to be used for prediction.
- When you select any feature, you can choose how to handle it. (rescaling, encoding, etc.)
- Select the model to be used for prediction.
- When you select any model, you can choose hyperparameters for tuning.
- Once all the parameters are selected, click on
Generate Json and Train Model
button. - Application will generate the json file and train the model and display the results.
- Upload the json file that contains all the dataset information.
- Click on Train Models.
- Application will train the model and display the results.
The application performs the following tasks in sequence:
- Read the JSON File and Parse JSON Content: The RTF/JSON file is read, converted to plain text, and JSON content is extracted.
- Extract Dataset Information: Extract dataset information such as feature names, target variable, problem type (regression/classification), feature handling, etc.
- Transform Features: Features are transformed based on the specified feature handling methods.
- Sample Data and Train-Test Split: Data is sampled and split into training and testing sets.
- Model Building: Models are built based on the problem type (regression/classification).
- Hyperparameter Tuning: Hyperparameters of the models are tuned using grid search.
- Model Evaluation: Trained models are evaluated using specified evaluation metrics. <! --8. Save Results: Trained models and evaluation metrics are saved in the results/ directory. -->
This application can be used for various use cases, including but not limited to:
- Automated machine learning (AutoML) pipelines.
- Data preprocessing and feature engineering tasks.
- Model training and evaluation for regression or classification problems.
- Hyperparameter tuning and model selection.
- Experimentation with different datasets and configurations.
Possible future enhancements for the application include:
- Adding support for additional data formats (e.g., CSV, Excel).
- Implementing more advanced feature engineering techniques.
- Incorporating more sophisticated model selection and evaluation methods.
- Enhancing the user interface for easier interaction.
- Integrating with external APIs or databases for data retrieval.