Last Updated on February 19, 2017
Stories of how students and developers get started in applied machine learning are an inspiration.
In this post, you will hear about Álvaro Lemos story and his transition from student to getting a machine learning internship. Including:
- How interest in genetic algorithms lead to the discovery of neural networks and the broader field of machine learning.
- How tutorial-based blog posts and books helped pass a test for a machine learning internship on a data science team
Let’s get started.
- Update Feb/2017: Corrections made regarding Álvaro’s internship.
Q. Can you share a little about yourself?
I’m from Salvador, Bahia (Brazil), but currently, I live in Belo Horizonte, Minas Gerais (also in Brazil).
I am studying Electrical Engineering at the Federal University of Minas Gerais and since the beginning of my undergraduation course, I’ve been involved with software development in some way.
On my first week as a freshman, I joined a research group called LabCOM to help a colleague on his master’s degree project. He wanted to build a self-managed traffic engineering system in which the network operation and maintenance are performed efficiently and without human intervention. It was built on top of a network simulator and I was assigned to deliver a module to measure some network parameters.
After that, I kept doing things related to software development, like the maintenance of a Linux server on my university, did a bunch of web development courses on sites like Code School, Codecademy and Coursera and a year ago I got my first internship job on a big software company.
It was an amazing experience, because I could work with state of the art technologies, very experienced developers, with whom I learned a lot of good practices and procedures.
When I was going to complete a year there, I received a proposal to work on another company on a Data Science team that was being formed, so I decided to accept that.
Q. How did you first get interested in machine learning?
I first heard of it during one meeting of the research group that I mentioned.
To make a long story short, we were using a genetic algorithm to get some results and, although they were reasonably good, they were taking longer than we could afford to be processed.
To overcome this, a colleague suggested to train a neural network with these results, because once we had a trained model, it would output results really fast.
I was one of the assigned people to implement this solution, but I didn’t know anything about it, so I googled it.
When I realized that an algorithm could provide the expected output without being explicitly programmed to do so and that it did so by mimicking the human brain, I was like “wooooow, that’s magic!”
Q. What books and courses have you tried?
When I decided that I wanted to learn machine learning, my first goal was to start the Johns Hopkins Data Science specialization on Coursera.
After completing two (out of ten!) courses, I let it go. I wasn’t really needing to apply that knowledge at that moment, I just wanted to learn machine learning and I felt that attending ten courses just to get that knowledge was quite overwhelming. I got distracted with other things and forgot about it.
One year after that, I decided to give a second shot to my “learning machine learning” quest. I registered myself on the famous Andrew Ng’s machine learning course on Coursera. It was just one course (instead of ten!), so I thought it would be okay. I really liked his lessons, he knows how to explain complex stuff in an easy way.
I was making progress there quite fast, but after finishing 60%, my first internship started and I started to use my spare time to learn the technologies I was using there. Then my classes at my university started and yes, I never came back to Coursera to finish that course again.
On the next semester, I attended an “Artificial Neural Network” class at my university. It was a good experience, reminded me of Andrew Ng’s approach, but I left that class with the same feeling that I still didn’t know machine learning enough, or that I wasn’t allowed to say that I know it.
Nobody told me, but I started thinking that in order to say that you can apply machine learning, you have to do some master’s degree program, because I saw a lot of students doing that.
Oh, another thing that I tried was to learn from articles (research papers). Please, do not do that. That’s by far the worst approach I have ever tried.
Maybe I was naive, but well, some teachers encourage you to learn that way. I think they are good to find techniques and/or algorithms that do what you want, but after making a short list, leave them and start googling for YouTube videos, blog posts and books.
Q. How did ML Mastery help you on your journey?
It helped me a lot.
I was doing fine on my previous job when I heard of a machine learning internship opportunity. It was with a company that I had already heard good things about, so I decided to give it a shot.
They gave me three machine learning challenges to do within a week, but since I was working and studying, I just had a weekend to do so.
- The first problem asked us to train a logistic regression model to predict a target variable from a dataset with four features. I was supposed to do an exploratory data analysis, order the most relevant features, estimate the error and do some prediction on a test dataset. For this one I was able to use the knowledge that I already had, just had to learn the Scikit Learn API.
- The second one was quite similar, but the dataset was heavily imbalanced and I had no clue on how to deal with that, so I started googling and I found your blog. It really helped me because I discovered that I could use other metrics instead of the default accuracy, do cross validation, stratified cross validation, undersample and oversample the dataset, compare algorithms, etc. With all this new information, I created a Python module that would do that automatically for me and rank the models based on their F1-Score.
- The third one was the most challenging. I was supposed to find the most relevant features in a classification dataset with 128 features. Your blog posts also helped me with that.
I couldn’t simply send them the results, I also had to write a detailed report, so your blog posts were fundamental as they helped to fill my knowledge gap very fast.
Now, in my new job, your books are helping me a lot, our manager bought the Super Bundle for us 😀
Q. Congratulations on the new job! Tell us about it?
The company is called Radix and I just joined the Data Science team.
My first project was already finishing when I got there, but was very interesting. It’s a system called Oil X!pert, which receives as input oil sample of trucks, loaders and other equipment and output both the criticality level of the part and a diagnosis text, as shown in the figure below:
Now we’re using data-driven approaches in other projects to reach better solutions.
Specifically, the project I’m currently working on aims to find the root cause of fouling deposition on heat exchangers.