- Hugo Dutra
- Zuzanna Rybok
- Mateusz Janowski
This project implements advanced machine learning techniques, including Generalized Additive Models (GAMs), Decision Trees, Random Forests, Support Vector Machines (SVMs), Principal Component Analysis (PCA), and Reinforcement Learning with Q-Learning. The focus is on exploring these methods to build predictive models for vegetation classification through feature selection and dimensionality reduction.
The project explores various machine learning approaches for vegetation classification. It implements and compares different feature selection techniques, dimensionality reduction methods, and classification algorithms to establish a comprehensive methodology for environmental data analysis.
- Working with three primary datasets:
df_1,df_2, anddf_4 - Target variable: Vegetation_Type
- Features include topographic data and soil characteristics
Required Python packages:
pip install pandas numpy scikit-learn scipy matplotlib seabornTo run the project:
git clone [repository-url]
cd [project-directory]
jupyter notebook Project2.ipynb- Q-Learning implementation for feature selection
- Two versions of Q-Learning agents:
- Baseline agent with standard Q-table
- Improved agent with feature importance integration
- Epsilon-greedy exploration strategy
- Custom reward function based on model performance
- Random Forest feature importance analysis
- Correlation analysis
- Feature ranking based on importance scores
- Generalized Additive Models (GAMs)
- Lasso Classifier
- ElasticNet Classifier
- Logistic Regression with CV
- Decision Trees
- Random Forest Classifier
- Hyperparameter tuning
- Feature importance analysis
- RBF kernel implementation
- Grid search for hyperparameter optimization
- Cross-validation strategy
- Two implementations:
- 18-feature dataset
- 55-feature dataset
- Variance retention analysis
- Component selection methodology
GAM's Decision Trees Random Forest PCA Reinforcemente Learning
- Data preprocessing and feature engineering
- Implementation of feature selection methods
- Model development and training
- Dimensionality reduction analysis
- Model evaluation and comparison
- Documentation and code organization
To contribute to this project:
- Fork the repository
- Create a feature branch
- Commit your changes
- Push to the branch
- Create a Pull Request
MIT