|
| 1 | +# A Complete Machine Learning Package |
| 2 | + |
| 3 | + |
| 4 | +***Techniques, tools, best practices and everything you need to build effective Machine Learning Systems!*** |
| 5 | + |
| 6 | + |
| 7 | +This is a comprehensive repository containing 30+ notebooks on Python programming, data manipulation, data analysis, data visualization, data cleaning, classical machine learning, Computer Vision and Natural Language Processing(NLP). |
| 8 | + |
| 9 | +As much as I can, I tried to care much about things that can be useful to anyone who is looking an intensive machine learning resource, either for learning or solving real problems. Everything is explained, and further resources are provided in some cases. |
| 10 | + |
| 11 | +You can view or run the notebooks with |
| 12 | + |
| 13 | +* Blender |
| 14 | +* DeepNotes |
| 15 | +* Colab |
| 16 | +* Github Notebooks |
| 17 | + |
| 18 | + |
| 19 | +## Tools Overview |
| 20 | + |
| 21 | +The following are the tools that are covered in the notebooks. They are popular tools that machine learning engineers and data scientists need in one way or another an day to day. |
| 22 | + |
| 23 | +* **Python** is a high level programming language that has got a lot of popularity in the data community and with the rapid growth of the libraries and frameworks, this is a right programming language to do ML. |
| 24 | + |
| 25 | +* **NumPy** is a scientific computing tool used for array or matrix operations. |
| 26 | + |
| 27 | +* **Pandas** is a great and simple tool for analyzing and manipulating data from a variety of different sources. |
| 28 | + |
| 29 | +* **Matplotlib** is a visualization tool that will help us to make sense of datasets by making plots. |
| 30 | + |
| 31 | +* **Seaborn** is another data visualization tool built on top of Matplotlib which is pretty simple to use. |
| 32 | + |
| 33 | +* **Scikit-Learn**: Instead of building machine learning models from scratch, Scikit-Learn makes it easy to use classical models in a few lines of code. This tool is adapted by almost the whole of the ML community and industries, from the startups to the big techs. |
| 34 | + |
| 35 | +* **TensorFlow and Keras** for neural networks: TensorFlow is a popular deep learning framework used for building models suitable for different fields such as Computer Vision and Natural Language Processing. At its backend, it uses Keras which is a high level API for building neural networks easily. TensorFlow has gained a lot of popularity in the ML community due to its complete ecosystem made of wholesome tools including TensorBoard, TF Datasets, TensorFlow Lite, TensorFlow Extended, TensorFlow.js, etc... |
| 36 | + |
| 37 | + |
| 38 | + |
| 39 | +## Outline |
| 40 | + |
| 41 | + |
| 42 | +## Part 1 - Intro to Python and Working with Data |
| 43 | + |
| 44 | + |
| 45 | +### [0 - Intro to Python for Machine Learning]() |
| 46 | + |
| 47 | +### [1 - Data Computation With NumPy]() |
| 48 | + |
| 49 | +* Creating a NumPy Array |
| 50 | +* Selecting Data: Indexing and Slicing An Array |
| 51 | +* Performing Mathematical and other Basic Operations |
| 52 | +* Perform Basic Statistics |
| 53 | +* Manipulating Data |
| 54 | + |
| 55 | +#### [2 - Data Manipulation with Pandas]() |
| 56 | + |
| 57 | + |
| 58 | +* Basics of Pandas for data manipulation: |
| 59 | +* Series and DataFrames |
| 60 | +* Data Indexing and Selection, and Iteration (Add Iteration) |
| 61 | +* Dealing with Missing data |
| 62 | +* Basic operations and Functions |
| 63 | +* Aggregation Methods |
| 64 | +* Groupby |
| 65 | +* Merging, Joining and Concatenate |
| 66 | +* Beyond Dataframes: Working with CSV, and Excel |
| 67 | +* Real World Exploratory Data Analysis (EDA) |
| 68 | + |
| 69 | + |
| 70 | +### 3 - Data Visualization with Matplotlib and Seaborn |
| 71 | + |
| 72 | + |
| 73 | +* [Data Visualization with Matplotlib]() |
| 74 | +* [Data Visualization with Seaborn]() |
| 75 | +* [Optional: Data Visualization with Pandas]() |
| 76 | + |
| 77 | +### 4 - Real World Data - Exploratory Analysis and Data Preparation |
| 78 | + |
| 79 | +* [Exploratory Data Analysis]() |
| 80 | +* [Intro to Data Preparation]() |
| 81 | +* [Handling Missing Values]() |
| 82 | +* [Handling Categorical Features]() |
| 83 | +* [Feature Scaling]() |
| 84 | + |
| 85 | + |
| 86 | +## Part 2 - Classical Machine Learning |
| 87 | + |
| 88 | + |
| 89 | +### [5 - Intro to Machine Learning]() |
| 90 | + |
| 91 | +* Intro to Machine Learning |
| 92 | +* Machine Learning Workflow |
| 93 | +* Evaluation Metrics |
| 94 | +* Handling Underfitting and Overfitting |
| 95 | + |
| 96 | + |
| 97 | +### 6 - Classical Machine Learning with Scikit-Learn |
| 98 | + |
| 99 | +* [Intro to Scikit-Learn for Machine Learning]() |
| 100 | +* [Linear Models for Regression]() |
| 101 | +* [Linear Models for Classification]() |
| 102 | +* [Support Vector Machines: Intro and Regression]() |
| 103 | +* [Support Vectot Machines for Classification]() |
| 104 | +* [Decision Trees: Intro and Regression]() |
| 105 | +* [Decision Trees for Classification]() |
| 106 | +* [Random Forests: Intro and Regression]() |
| 107 | +* [Random Forests for Classification]() |
| 108 | +* [Beyond Random Forests: More Ensemble Models]() |
| 109 | +* [Intro to Unsupervised Learning with KMeans Clustering]() |
| 110 | +* [A Practical Intro to Principal Component Analysis]() |
| 111 | + |
| 112 | + |
| 113 | +## Part 3 - Deep Learning |
| 114 | + |
| 115 | +### 7 - Intro to Artificial Neural Networks and TensorFlow |
| 116 | + |
| 117 | +* [Intro to Articial Neural Networks]() |
| 118 | + |
| 119 | + * Why Deep Learning |
| 120 | + * A Single Layer Neural Network |
| 121 | + * Activation Functions |
| 122 | + * Types of Deep Learning Architectures |
| 123 | + * Densely Connected Networks |
| 124 | + * Convolutional Neural Networks |
| 125 | + * Recurrent Neural Networks |
| 126 | + * Transformers |
| 127 | + |
| 128 | + * Challenges in Training Deep Neural Networks |
| 129 | + |
| 130 | +* [Intro to TensorFlow for Artificial Neural Networks]() |
| 131 | + |
| 132 | + * What is TensorFlow? |
| 133 | + * TensorFlow Model APIs |
| 134 | + * A Quick Tour into TensorFlow Ecosystem |
| 135 | + * Basics of Tensors |
| 136 | + |
| 137 | +* [Neural Networks for Stuctured data: Regression]() |
| 138 | + |
| 139 | +* [Neural Networks for Stuctured data: Classification]() |
| 140 | + |
| 141 | + |
| 142 | +### 8 - Deep Computer Vision with TensorFlow |
| 143 | + |
| 144 | +* [Intro to Computer Vision with Convolutional Neural Networks(CNN)]() |
| 145 | + |
| 146 | + * Intro to Computer Vision and CNNs |
| 147 | + * What is Convolutional Neural Networks? |
| 148 | + * A Typical Architecture of Convolutional Neural Networks |
| 149 | + * Coding ConvNets: Image Classification |
| 150 | + |
| 151 | +* [ConvNets for Real World Data and Image Augmentation]() |
| 152 | + |
| 153 | + * Intro - Real World Datasets and Data Augmentation |
| 154 | + * Getting Started: Real World Datasets and Overfitting |
| 155 | + * Image Augmentation with Keras Image Augmentation Layers |
| 156 | +* [CNN Architectures and Transfer Learning]() |
| 157 | + |
| 158 | + * Looking Back: A Review on State of the Art CNN Architectures |
| 159 | + * Intro to Transfer Learning and using Pretrained Models |
| 160 | + * Quick Image Classification with Pretrained Models |
| 161 | + * Transfer Learning and FineTuning in Practice |
| 162 | + * Quick Image Classification and Transfer Learning with TensorFlow Hub |
| 163 | + |
| 164 | +### 9 - Natural Language Processing with TensorFlow |
| 165 | + |
| 166 | +* [Intro to NLP and Text Processing with TensorFlow]() |
| 167 | + |
| 168 | + * Intro to Natural Language Processing |
| 169 | + * Text Processing with TensorFlow |
| 170 | + * Using TextVectorization Layer |
| 171 | +* [Using Word Embeddings to Represent Texts]() |
| 172 | + |
| 173 | + * Intro Word Embeddings |
| 174 | + * Embedding In Practice |
| 175 | + * Using Pretrained Embeddings |
| 176 | +* [Recurrent Neural Networks (RNNs)]() |
| 177 | + |
| 178 | + * Intro to Recurrent Neural Networks |
| 179 | + * Simple RNNs In Practice: Movies Sentiment Analysis |
| 180 | + * Intro to Long Short Terms Memories |
| 181 | + * LSTMs in Practice : News Classification |
| 182 | + |
| 183 | +* [Using Convolutional Neural Networks for Texts Classification]() |
| 184 | + |
| 185 | + * Intro Convolutional Neural Networks for Texts |
| 186 | + * CNN for Texts in Practice: News Classification |
| 187 | + * Combining ConvNets and RNNs |
| 188 | + |
| 189 | +* [Using Pretrained BERT for Text Classification]() |
| 190 | + |
| 191 | + * Intro to BERT |
| 192 | + * In Practice: Finetuning a Pretrained BERT |
| 193 | + |
| 194 | +## Used Datasets |
| 195 | + |
| 196 | +Many of the datasets used for this repository are from the following sources: |
| 197 | + |
| 198 | +* [UC OpenML](https://www.openml.org) |
| 199 | +* [Seaborn Datasets](https://github.com/mwaskom/seaborn-data) |
| 200 | +* [Scikit-Learn datasets](https://scikit-learn.org/stable/datasets.html) |
| 201 | +* [Kaggle](https://www.kaggle.com/datasets) |
| 202 | +* [TensorFlow datasets](https://www.tensorflow.org/datasets/catalog/overview) |
| 203 | + |
| 204 | +As much as I can, I used unfamiliar datasets wherever possible, especially if I were not motivated enough for the day. |
| 205 | + |
| 206 | +## Running The Code |
| 207 | + |
| 208 | +To run the codes, you need to install the above tools into your machine. It is advised to create a virtual environment. |
| 209 | + |
| 210 | +If you don't want to install anything, you can run all notebooks in Google Colab, or view the notebooks interactively through Brender. You can also run them in DeepNote. |
| 211 | + |
| 212 | +## Sponsoring the Project |
| 213 | + |
| 214 | +I would appreciate very much if you can show me some love by sponsoring this work. I initially started it with the idea of having all things anyone might need in one repository, and I am so amazed by how far this has got. |
| 215 | + |
| 216 | +You can sponsor me through Patreon or here. Or buy him a coffee. |
| 217 | + |
| 218 | +******* |
| 219 | + |
| 220 | +This repository was created by Jean de Dieu Nyandwi. You can find him on: |
| 221 | +* [Twitter](https://twitter.com/jeande_d) |
| 222 | +* [Newsletter: Deep Learning Revision](https://www.getrevue.co/profile/deepyearning) |
| 223 | +* [LinkedIn](https://linkedin.com/in/nyandwi) |
| 224 | +* [Medium](https://jeande.medium.com) |
| 225 | +* [Hashnode](https://jeande.tech) |
| 226 | +* [Instagram](https://instgram.com/jeande_d) |
| 227 | + |
| 228 | + |
| 229 | +### *If you find any of this thing helpful, shoot me a [tweet](https://twitter.com/jeande_d) or a mention. I will appreciate it a lot :)* |
| 230 | + |
| 231 | + |
| 232 | +```python |
| 233 | + |
| 234 | +``` |
0 commit comments