Module Reflection
Unit 12
General Thoughts
The Machine Learning (ML) module was an enriching experience that gradually ramped up to the development of a complex model. As I mentioned in other artefacts, I had previous experience with machine learning and models, nonetheless I had plenty to take away by the end of the module. It not only strengthened my knowledge of core concepts such as correlation and regression but also offered the opportunity to solidify other concepts that were left in a premature state during my previous studies, specially related to neural networks. Through hands-on exercises and collaborative projects, I worked with real-world datasets, sharpened my technical skills, and refined my ability to evaluate and improve machine learning models. Moreover, I had the change to work with a group (for the first time during my masters in the university) which really emphasized the importance of teamwork, leadership, and communication in the development of a machine learning project.
Foundational Concepts
In the early stages of this module, we were introduced to EDA practices and foundational statistical concepts such as covariance and Pearson’s correlation coefficient, which are essential for understanding the relationships between variables in data. I was previously using only covariance to make such analysis, but the artifact delivered during Unit 3 proved that the Pearson’s correlation provides a bounded, more interpretable measure of the linear relationship between two variables, ranging from -1 to 1. The exercises using synthetic data allowed me to visualize these concepts and strengthen my understanding of their practical applications.
The linear regression exercise served as a valuable review, as I was already familiar with how to model relationships between variables and make predictions. It provided a practical opportunity to revisit the process of calculating the regression line, evaluating the slope and intercept, and reinforcing the connection between regression and correlation.
Simple Regression, Clustering and Team Development Project
As the module progressed, we revisited linear regression using Scipy and explored clustering methods. As part of exploring similarity measures in unsupervised learning, we conducted an exercise calculating the Jaccard coefficient by hand. This hands-on approach reinforced the underlying mathematical principles, reminding me that, even in an era of abstraction and code-based implementations, the core of these techniques is rooted in fundamental mathematics. However, the highlight was the group project involving the analysis of the 2019 Airbnb NYC dataset. We applied data preprocessing, exploratory data analysis (EDA), correlation analysis, and K-means clustering to uncover insights on pricing patterns, availability trends, and factors influencing customer preferences.
Throughout the project, my primary role involved leveraging my technical skills while ensuring quality work and meeting deadlines. The team functioned well, with clear leadership and early preparation that allowed us to meet the deadline very comfortably. One teammate took the lead in organizing the project, while another ensured we started early and continuously finished the prevised task. Overall, even if the project was simple and involved basic concepts, I am very happy with the experience and how the group functioned.
Reflecting on my individual contributions, I feel confident in my technical abilities but recognize the need to develop stronger leadership skills. I aim to improve my ability to offer project direction and propose new ideas, which will help me contribute more proactively to future team projects. Going forward, I will greatly appreciate that technical skills alone are not enough for a successful project.
Neural Networks and Training
Units 7 and 8 diverged from the simplicity (though usefulness) of the previous lessons as they introduced neural networks and learning algorithms such as gradient descent. Here I became more invested with the module and was challenged by the activities. We started off with the perceptron, a simple neural network model, and observed how it learns logical functions by adjusting weights through iterative updates. As we moved on to the multilayer perceptron, I gained an understanding of how more complex architectures handle non-linear problems, such as XOR, through activation functions and backpropagation.
The concept of gradient descent was explored in depth, especially in its application to fitting linear models. In the delivered artefacts, I experimented with the effects of key hyperparameters, particularly the learning rate and iteration count, to understand how they influence the training process. Since these parameters are often set by default or randomly, it was valuable to learn how to make informed decisions when setting them.
Convolutional Neural Networks & Model Evaluation
The final units of the module focused on Convolutional Neural Networks (CNNs) and model evaluation. I was introduced to image classification tasks and learned how CNNs are designed to handle these types of problems. By reviewing a prebuilt CNN model and later developing my own, I gained valuable experience in optimizing model architectures, tuning hyperparameters, and evaluating performance using metrics like accuracy, precision, recall, and F1 score.
CNN Development and Team Project Revision
The final units of the module focused on Convolutional Neural Networks (CNNs) and model evaluation. I was introduced to image classification tasks and learned how CNNs are specifically designed to handle these problems. By reviewing a prebuilt CNN model and later developing my own, I gained valuable experience in optimizing model architectures, tuning hyperparameters, and evaluating performance using metrics like accuracy, precision, recall, and F1 score.
On a personal level, the CNN project marked a significant shift compared to the team project. The team project was well-defined, with a clear structure, and the K-means model didn’t offer much room for variation or fine-tuning. In contrast, the CNN project was far more flexible, allowing for multiple configurations and experimentation. Unlike the more rigid approach with K-means, the neural network required careful consideration of several components, such as the activation function and optimizer, which added complexity but also provided more opportunities for optimization. This flexibility was also required for such more complex task.
Final Thoughts
The module, specially the latter half, had a significant impact on my professional and personal development, as it allowed me to reinforce and obtain valuable knowledge of multiple, separate components of machine learning. While I typically work with prebuilt models, having a deeper understanding of each individual component, such as activation functions, optimizers, and model architecture, greatly enhances my ability to make informed decisions and improve the models I work with in the future.