/100DaysOfMLCode

My journey towards expertise in Machine Learning.

Primary LanguageJupyter Notebook

Main target: I will practise Machine Learning for at least an hour every day for the next 100 days.

My journey towards expertise in Machine Learning. I decided to start a dedicated learning journey from today. I needed some motivation during the lockdown and that is when I came across the #100DaysOfMLCode challenge. I pledge to spend atleast an hour every day on machine learning for the next 100 days with all dedication and passion.

Start Date End Date
12th May, 2020 20th August, 2020

Tools

Prominent Resources

Kaggle Submissions

My Kaggle

Projects

No Project Title Completed On Concept
1 Boston House Price Prediction Day 4 Regression
2 Breast Cancer Prediction Day 10 Classification
3 Titanic Survival Prediction Day 20 Classification
4 Hand Written Digit Regonizer Day 38 Multi Class Classification Computer Vision
5 Sentiment Analysis Day 46 Ninary Classification with NLP
6 Avocado Prices Forecasting Day 60 Time Series model with Facebook Prophet tool
7 Customer Segmentation Day 70 Clustering/Unsupervised Learning
8 EY Badges Day 100 Recommendation Engine and Performance Management System

Course Certifications

Day 1

Today's Progress: Tried various techniques for feature scaling over a very small dataset. This is as a part of preprocessing for my Support Vector Regression model.

Link to work: Feature Scaling

Thoughts:

Standard Scaler Robust Scaler Min Max Scaler Normalizing

Day 2

Today's Progress: Implemented Decision Tree Regressor and Support Vector Regressor over a sample dataset. Also, I got an idea of how each of these works mathematically.

Link to work: Decision Tree Regressor Support Vector Regressor

Thoughts: It is really fun experimenting and checking out various outcomes.

Day 3

Today's Progress: Comparing all the Models implemented till now and learned about R Squrared and Advanced R Squared metrics

Link to work: Model Selection and Evaluation

Thoughts: Feeling great as I completed the Part2, Regression, from the course that I am currently pursuing. A big thanks to the tutors @kirill_eremenko and @Hadelin_de_Ponteves who made the learning so simple and fun. Can't wait the begin the Part3, Classification.

Day 3,4

For the first time, I took up a very common Regression Project (Boston House Price Prediction). So far, I have built the model but, now working on improving the results.

Please do find time to review my code here and I am open for any advice. https://github.com/SINDHUSITA/100DaysOfMLCode/tree/master/Part%202%20-%20Regression/House%20Prices%20Project

Day 6,7

Brought my first project in Regression to a final shape and learned some evaluation metrics for Regression models. Very excited as I finally enrolled myself to "Machine Learning by Stanford University" course by @AndrewYNg

Day 8

Yaay! I am now into week2 of #100DaysOfMLCode. So far, I learned regression algorithms and analyzed them not only theoretically but also with mathematics, which I believe is one of the most interesting ways to learn ML. Today, I worked on the basics of Logistic Regression.

Day 9,10

Implemented one of the classic classification algorithms, Logistic Regression, with Breast Cancer Wisconsin dataset from UCI. Check it out here: Breast Cancer Prediction

Day 11,12

Analysed how the SVM classifier works. It is definitely one of the most complex yet, powerful algorithms one can come across. I had to read many articles to get the right gist of how a few of the kernel functions work. Links in the following thread.

Here are two good articles from which I could comprehend everything I needed to know before implementing Support Vector Machine: KdNuggets

Day 13

For some reason, the Naive Bayes Classifier has always been my favorite algorithmFace with tongue. Today, I revised it and tried implementing a different type of problem using it. One good thing in Machine Learning is Mathematics and I am enjoying it.

Day 14

Implemented Decision Tree and Random Forest Classifier. It is the end of week 2 and also the end of 'Section: Classification' from my course! Want to take up an interesting project based on Classification. Please share your suggestions.Smiling face with smiling eyes

Day 15,16

Everything was so perfect until a friend of mine suggested to consider uploading solutions in #kaggle and checking where my model stands. It actually turned out to be a terrible model. I have been working on the same.

Day 17-21

Worked on the famous 'Titanic survival prediction'. Also, I am going to call this week 3 as Kaggle week. The whole week, I kept trying so hard to improve my model and advance in the leaderboard.

Check out my Kaggle profile: Sindhu Inuganti - Kaggle

Day 22-25

Stepped into Unsupervised Learning and it is going great. Can't believe that it has been 25 days since I started this. Looking forward to continuing for the rest 3 quarters with the same enthusiasm.

Day 26-30

Taking baby steps into Deep Learning. There are numerous amazing resources available online just for free to help anyone get through this. I found #Coursera and #fasiai to be very useful and of course #YouTube too.

Day 31-36

Understanding how neural networks and deep learning work with the help of Coursera. Invested more time into theoretical concepts rather than practicing them. I am going to utilize this Week5 for practical knowledge and for getting comfortable with TensorFlow. Certificate of Neural Networks and Deep Learning Course

Day 37,38

Learning Computer Vision Fundamentals with: Hand Written Digit Recognizer from famous MNIST data. Working on improving results for a kaggle submission. Also, explored how CNNs work. My Kaggle: Sindhu Inuganti - Kaggle

Sindhu Inuganti - Kaggle

Day 39

Learned more about Convolutional Neural Netwroks and Computer Vision from a Coursera and Improved Digit Recognizer model for Kaggle

Day 40

A kick start with a program with Widhya where I am learning mathematical fundamentals of various machine learning models.

Day 41

Finished the introductory course for Tensor Flow on Coursera as a part of Tensor Flow specialization. Certificate of Introductory Course for Tensor Flow

Day 42,43

Overview of Natural Language Processing(NLP) with Bag of Words model.

Day 44

Revised Neural networks and Deep Learning concepts with Widhya.

Day 45

Today's Progress: Implemented code to experiment Digit Recognition with Real World Images.

Link to work: Digit Reconizer

Thoughts: Had I trained the model with better data, the better would have been the Model's performance. Correctly recognized 2 Wrongly recognized 5

Day 46

Today's Progress: Introduction to NLP with machine learning. Understood what Tokenization, Bag of Words approach and how BERT works. Implemented understanding of Bag of Words approach for Sentiment Analysis on Restarant Review Dataset.

Link to work: Sentiment Analysis

Thoughts: As introduction to NLP with machine learning, This model classfies a given restaurant review as Positive or Negative review. For this Binary Classification, I used the Navie Bayes Algorithm and implemented the Bag of Words approach Though this algorithm gave lesser accuracy compared to other algoritms, it performed better with the examples that I tested the model with compared to the others.

Reviews - 1 Reviews - 2

Day 47-50:

Days' Progress: Deeper understanding of NLP. Implemented NLP with deep learning Once again implemented Sentiment Analysis with the famous BERT approach on IDMB movie reviews dataset.

Link to work: Referred from this guided project in Udemy. Will upload my version of implementation soon.

Thoughts: BERT Guide

Day 51,52:

Days' Progress: As a part of Integrated Internship Program by Widhya, finished assignments in Quantitative Modeling.

Tasks included:

  1. Covid-19 Data Collection and Visualization.
  2. Modeling a solution for exponential data from scratch.

Link to Work: Widhya - Quantitative Modeling

Thoughts: It is a pretty straight forwarded approach without any machine learning modules.

Day 53,54:

Days' Progress: As a part of Integrated Internship Program by Widhya, finished assignments in Machine Learning.

Tasks included:

  1. Instagram Data Collection and Cleaning
  2. Building a Linear Regression Machine Learning Model
  3. Making Predictions on the reach of a certain post.

Link to work: Widhya - Machine Learning

Thoughts: Pretty simple model that predicts the number of likes a post would get based on the number of followers and time since posted. Somehow got tricked in the Data Cleaning part.

Day 55:

Days' Progress: As a part of Integrated Internship Program by Widhya, finished assignments in Deep Learning.

Tasks included:

  1. Data Collection
  2. Forward Propagation
  3. Backward Propagation
  4. Updating Parameters
  5. Training the ANN

Link to work: Mostly Theoretical.

Thoughts: With reference to this, understood implementing an Artificial Neural Network from scratch.

Day 56,57:

Days' Progress: A small break to practical applications as I feel like I need more theoretical and deeper understanding of how Deep Learning works. Focusing on improving Deep Neural Networks with a course

Topics included:

  1. Understanding Bias and Variance
  2. Regularizing Neural Networks
  3. Setting up an Optimization problem

Day 58,59:

Days' Progress: Gone through this website called Analytics Vidhya whose content I underestimated for some reason. With a friend's reference, I got into it and can't help myself to distract from it. Been through many amazing blogs and projects.

Link to work:

Here are a few quite insightful blogs I came across.

Projects that are advised to be done by any fledgling Data Scientist

Others:

Thoughts: Still can't get over the amount of powerful and useful resources available online just for free. Thanks to the wonderful Data Science community!

Day 60-63:

Days' Progress: Learning about Time Series Prediction. Got familiar with basics and jumped to try out a guided project in Coursera. This uni-variate project deals with forecasting the Avocado Prices in America based on previous years' prices. Understood about a model called Prophet developed by Facebook, which makaes Time series prediction very easy and informative.

Link to work: Time Series Forecasting for Avocado Prices

Thoughts: The idea of doing guided projects felt bad for me. It is just like a code walk through which prevents the chances of exploring and learning. However, though I couldn't get enough hands-on with time series, I practised more on the visualization techniques.

Avocado Price Forecast results

Day 64-65:

Days'Progress: Spent more time on Data Visualization from Analytics Vidya and KDnuggets.

Thoughts: It is true that Data Visualization plays the most important role to understand data. It is not a good practice to directly jump into working on data even before knowing how our data looks like. After spending good enough time on understanding the data, model development is more meaningful.

Day 66-70:

Days' Progress: Implemented understanding on Clustering with a mini project called Customer Segmentation. This model with the minimal data available with retailers, lets them understand their customers better. With information of customer's gender, age and annual income, we group customers based on their spend score.

Link to work: Mall Customers Segmentation

Thoughts:

Customer Groups

A pretty much straight forwarded model.

Day 71-100:

Days' Progress: Worked on a Hackathon on HackerEarth held by Ernst & Young called the Radio - EY GDS Hackathon.

Theme: EY Badges, where in there were 2 main tasks

  1. Recommendation mechanism to the professionals on what badges they can pick up based on the varioius factors.
  2. Create a mechanism to monitor the impact of badge on individual performance in terms of new projects, increased efficiency, mentoring other team members, etc.

Link to work: EY Badges

Thoughts:

Hackathon Page

I have been thinking of a right way to end this challenge and that is when I came across the challenging Hackathon. Me, collaborated with my friend, managed to solve these complex problems to finally stand among the top 3 finalists. Got to meet Industrial experts and an opportunity to understand the greatest solutions for each theme. Will cherish the experience and learnings from the first ever hackathon.

Final Thoughts:

🥳🎉🎇 Here's the end to my challenge but not to my passionate learning process. 🎇🎉🥳