100-Days-Of-ML-Code README

The project's README from github.com/Avik-Jain/100-Days-Of-ML-Code. As one markdown file: README.md.

100-Days-Of-ML-Code

100 Days of Machine Learning Coding as proposed by Siraj Raval

Get the datasets from here

Data PreProcessing | Day 1

Check out the code from here.

Simple Linear Regression | Day 2

Check out the code from here.

Multiple Linear Regression | Day 3

Check out the code from here.

Logistic Regression | Day 4

Logistic Regression | Day 5

Moving forward into #100DaysOfMLCode today I dived into the deeper depth of what Logistic Regression actually is and what is the math involved behind it. Learned how cost function is calculated and then how to apply gradient descent algorithm to cost function to minimize the error in prediction.
Due to less time I will now be posting an infographic on alternate days. Also if someone wants to help me out in documentaion of code and already has some experince in the field and knows Markdown for github please contact me on LinkedIn :) .

Implementing Logistic Regression | Day 6

Check out the Code here

K Nearest Neighbours | Day 7

Math Behind Logistic Regression | Day 8

#100DaysOfMLCode To clear my insights on logistic regression I was searching on the internet for some resource or article and I came across this article (https://towardsdatascience.com/logistic-regression-detailed-overview-46c4da4303bc) by Saishruthi Swaminathan.

It gives a detailed description of Logistic Regression. Do check it out.

Support Vector Machines | Day 9

Got an intution on what SVM is and how it is used to solve Classification problem.

SVM and KNN | Day 10

Learned more about how SVM works and implementing the K-NN algorithm.

Implementation of K-NN | Day 11

Implemented the K-NN algorithm for classification. #100DaysOfMLCode Support Vector Machine Infographic is halfway complete. Will update it tomorrow.

Support Vector Machines | Day 12

Naive Bayes Classifier | Day 13

Continuing with #100DaysOfMLCode today I went through the Naive Bayes classifier. I am also implementing the SVM in python using scikit-learn. Will update the code soon.

Implementation of SVM | Day 14

Today I implemented SVM on linearly related data. Used Scikit-Learn library. In Scikit-Learn we have SVC classifier which we use to achieve this task. Will be using kernel-trick on next implementation. Check the code here.

Naive Bayes Classifier and Black Box Machine Learning | Day 15

Learned about different types of naive bayes classifiers. Also started the lectures by Bloomberg. First one in the playlist was Black Box Machine Learning. It gives the whole overview about prediction functions, feature extraction, learning algorithms, performance evaluation, cross-validation, sample bias, nonstationarity, overfitting, and hyperparameter tuning.

Implemented SVM using Kernel Trick | Day 16

Using Scikit-Learn library implemented SVM algorithm along with kernel function which maps our data points into higher dimension to find optimal hyperplane.

Started Deep learning Specialization on Coursera | Day 17

Completed the whole Week 1 and Week 2 on a single day. Learned Logistic regression as Neural Network.

Deep learning Specialization on Coursera | Day 18

Completed the Course 1 of the deep learning specialization. Implemented a neural net in python.

The Learning Problem , Professor Yaser Abu-Mostafa | Day 19

Started Lecture 1 of 18 of Caltech's Machine Learning Course - CS 156 by Professor Yaser Abu-Mostafa. It was basically an introduction to the upcoming lectures. He also explained Perceptron Algorithm.

Started Deep learning Specialization Course 2 | Day 20

Completed the Week 1 of Improving Deep Neural Networks: Hyperparameter tuning, Regularization and Optimization.

Web Scraping | Day 21

Watched some tutorials on how to do web scraping using Beautiful Soup in order to collect data for building a model.

Is Learning Feasible? | Day 22

Lecture 2 of 18 of Caltech's Machine Learning Course - CS 156 by Professor Yaser Abu-Mostafa. Learned about Hoeffding Inequality.

Decision Trees | Day 23

Introduction To Statistical Learning Theory | Day 24

Lec 3 of Bloomberg ML course introduced some of the core concepts like input space, action space, outcome space, prediction functions, loss functions, and hypothesis spaces.

Implementing Decision Trees | Day 25

Check the code here.

Jumped To Brush up Linear Algebra | Day 26

Found an amazing channel on youtube 3Blue1Brown. It has a playlist called Essence of Linear Algebra. Started off by completing 4 videos which gave a complete overview of Vectors, Linear Combinations, Spans, Basis Vectors, Linear Transformations and Matrix Multiplication.

Link to the playlist here.

Jumped To Brush up Linear Algebra | Day 27

Continuing with the playlist completed next 4 videos discussing topics 3D Transformations, Determinants, Inverse Matrix, Column Space, Null Space and Non-Square Matrices.

Link to the playlist here.

Jumped To Brush up Linear Algebra | Day 28

In the playlist of 3Blue1Brown completed another 3 videos from the essence of linear algebra. Topics covered were Dot Product and Cross Product.

Link to the playlist here.

Jumped To Brush up Linear Algebra | Day 29

Completed the whole playlist today, videos 12-14. Really an amazing playlist to refresh the concepts of Linear Algebra. Topics covered were the change of basis, Eigenvectors and Eigenvalues, and Abstract Vector Spaces.

Link to the playlist here.

Essence of calculus | Day 30

Completing the playlist - Essence of Linear Algebra by 3blue1brown a suggestion popped up by youtube regarding a series of videos again by the same channel 3Blue1Brown. Being already impressed by the previous series on Linear algebra I dived straight into it. Completed about 5 videos on topics such as Derivatives, Chain Rule, Product Rule, and derivative of exponential.

Link to the playlist here.

Essence of calculus | Day 31

Watched 2 Videos on topic Implicit Diffrentiation and Limits from the playlist Essence of Calculus.

Link to the playlist here.

Essence of calculus | Day 32

Watched the remaining 4 videos covering topics Like Integration and Higher order derivatives.

Link to the playlist here.

Random Forests | Day 33

Implementing Random Forests | Day 34

Check the code here.

But what is a Neural Network? | Deep learning, chapter 1 | Day 35

An Amazing Video on neural networks by 3Blue1Brown youtube channel. This video gives a good understanding of Neural Networks and uses Handwritten digit dataset to explain the concept. Link To the video.

Gradient descent, how neural networks learn | Deep learning, chapter 2 | Day 36

Part two of neural networks by 3Blue1Brown youtube channel. This video explains the concepts of Gradient Descent in an interesting way. 169 must watch and highly recommended. Link To the video.

What is backpropagation really doing? | Deep learning, chapter 3 | Day 37

Part three of neural networks by 3Blue1Brown youtube channel. This video mostly discusses the partial derivatives and backpropagation. Link To the video.

Backpropagation calculus | Deep learning, chapter 4 | Day 38

Part four of neural networks by 3Blue1Brown youtube channel. The goal here is to represent, in somewhat more formal terms, the intuition for how backpropagation works and the video moslty discusses the partial derivatives and backpropagation. Link To the video.

Deep Learning with Python, TensorFlow, and Keras tutorial | Day 39

Link To the video.

Loading in your own data - Deep Learning basics with Python, TensorFlow and Keras p.2 | Day 40

Link To the video.

Convolutional Neural Networks - Deep Learning basics with Python, TensorFlow and Keras p.3 | Day 41

Link To the video.

Analyzing Models with TensorBoard - Deep Learning with Python, TensorFlow and Keras p.4 | Day 42

Link To the video.

K Means Clustering | Day 43

Moved to Unsupervised Learning and studied about Clustering. Working on my website check it out avikjain.me Also found a wonderful animation that can help to easily understand K - Means Clustering Link

K Means Clustering Implementation | Day 44

Implemented K Means Clustering. Check the code here.

Digging Deeper | NUMPY | Day 45

Got a new book "Python Data Science HandBook" by JK VanderPlas Check the Jupyter notebooks here.
Started with chapter 2 : Introduction to Numpy. Covered topics like Data Types, Numpy arrays and Computations on Numpy arrays.
Check the code -
Introduction to NumPy
Understanding Data Types in Python
The Basics of NumPy Arrays
Computation on NumPy Arrays: Universal Functions

Digging Deeper | NUMPY | Day 46

Chapter 2 : Aggregations, Comparisions and Broadcasting
Link to Notebook:
Aggregations: Min, Max, and Everything In Between
Computation on Arrays: Broadcasting
Comparisons, Masks, and Boolean Logic

Digging Deeper | NUMPY | Day 47

Chapter 2 : Fancy Indexing, sorting arrays, Struchered Data
Link to Notebook:
Fancy Indexing
Sorting Arrays
Structured Data: NumPy's Structured Arrays

Digging Deeper | PANDAS | Day 48

Chapter 3 : Data Manipulation with Pandas
Covered Various topics like Pandas Objects, Data Indexing and Selection, Operating on Data, Handling Missing Data, Hierarchical Indexing, ConCat and Append.
Link To the Notebooks:
Data Manipulation with Pandas
Introducing Pandas Objects
Data Indexing and Selection
Operating on Data in Pandas
Handling Missing Data
Hierarchical Indexing
Combining Datasets: Concat and Append

Digging Deeper | PANDAS | Day 49

Chapter 3: Completed following topics- Merge and Join, Aggregation and grouping and Pivot Tables.
Combining Datasets: Merge and Join
Aggregation and Grouping
Pivot Tables

Digging Deeper | PANDAS | Day 50

Chapter 3: Vectorized Strings Operations, Working with Time Series
Links to Notebooks:
Vectorized String Operations
Working with Time Series
High-Performance Pandas: eval() and query()

Digging Deeper | MATPLOTLIB | Day 51

Chapter 4: Visualization with Matplotlib Learned about Simple Line Plots, Simple Scatter Plotsand Density and Contour Plots.
Links to Notebooks:
Visualization with Matplotlib
Simple Line Plots
Simple Scatter Plots
Visualizing Errors
Density and Contour Plots

Digging Deeper | MATPLOTLIB | Day 52

Chapter 4: Visualization with Matplotlib Learned about Histograms, How to customize plot legends, colorbars, and buliding Multiple Subplots.
Links to Notebooks:
Histograms, Binnings, and Density
Customizing Plot Legends
Customizing Colorbars
Multiple Subplots
Text and Annotation

Digging Deeper | MATPLOTLIB | Day 53

Chapter 4: Covered Three Dimensional Plotting in Mathplotlib.
Links to Notebooks:
Three-Dimensional Plotting in Matplotlib

Hierarchical Clustering | Day 54

Studied about Hierarchical Clustering. Check out this amazing Visualization.

100-Days-Of-ML-Code (Avik-Jain/100-Days-Of-ML-Code)

Searching Database…

这是什么?这是 Avik Jain 的个人学习日志,记录他为期 100 天的机器学习编程练习,参与的是 Siraj Raval 发起的 #100DaysOfMLCode 挑战。日志每天记录机器学习主题的学习进度,附有笔记、代码和信息图。
这是库还是学习日志?这不是库,也不是工具,而是一份按天记录的日记。每篇有简短的总结、代码实现的链接,以及每个机器学习主题的信息图。
这份日志是怎么组织的?我该从哪里开始?内容按天顺序排列(从第 1 天到第 54 天及以后),每天都有一个主题标题,例如“简单线性回归”或“K 均值聚类”。初学者应从第 1 天(数据预处理)开始,按顺序往下读,因为后面的内容建立在线性代数和微积分等前面的概念之上。
跟着学需要装 Python 或特定的库吗?需要。代码示例主要使用 Python,大部分经典机器学习算法(SVM、朴素贝叶斯、决策树、K-NN)用 scikit-learn 实现;后面的数据处理和可视化会用到 NumPy、Pandas 和 Matplotlib。
每一天的内容都有同样详细的代码吗?并非如此。有些天只有信息图,或者是对外部视频讲座和课程的笔记,没有配套代码;只有部分天的内容链接到了实际的实现代码。
这份日志适合谁看?适合想入门机器学习的自学者。它提供了一份逐日的学习路线图,内容从回归、分类一直到神经网络和深度学习框架。
100 天里都学了哪些主题?这份日志涵盖数据预处理、线性回归和逻辑回归、SVM、K-NN、朴素贝叶斯、决策树、随机森林、K 均值聚类、层次聚类,以及线性代数和微积分的复习,还有基于 TensorFlow/Keras 的深度学习入门。
数据集从哪里来?作者链接到了一个单独的来源,练习中用到的数据集都来自那里。不过具体的数据集仓库链接嵌在 README 里,没有详细说明。
Siraj Raval 是谁?他为什么和这里有关?Siraj Raval 提出了最初的 #100DaysOfMLCode 挑战,启发了这份日志。作者把他的挑战作为每天坚持编程的动力。
作者推荐了什么外部资料吗?推荐了。日志多次提到外部资料,例如 3Blue1Brown 的线性代数和微积分 YouTube 系列、Bloomberg 的机器学习讲座系列、Caltech 的 CS 156 课程,以及 Jake VanderPlas 的《Python Data Science Handbook》一书。
Creator
Avik-Jain
Size
10.7 MB
Stars
51.9K
Updated
CommitJul 15
Age
8y
Commits · 90 Days