Machine Learning by Andrew Ng - Implementation in Python
To help python programmers experiment and learn. All Machine Learning algorithms are implemented from scratch in jupyter notebook.
Prerequisites
-
Knowledge of Numpy, pandas and matplotlib libraries of python.
You can learn about them from their respective docs -
Numpy docs - https://docs.scipy.org/doc/numpy-1.13.0/user/quickstart.html
Pandas docs - https://pandas.pydata.org/pandas-docs/stable/getting_started/tutorials.html
Matplotlib docs - https://matplotlib.org/tutorials/index.html
-
You can use any editor of your choice. But I recommend using Jupyter notebook as it allows you to edit your code snippets and run them again and again, easily shareable and helps in data visualisation.
You can install jupyter notebook along with Anaconda Distribution(https://www.anaconda.com/distribution/).
Folders :
1. Algorithms & Best Practices:
The algorithms folder contains all the basic algorithms of Machine Learning implemented from scratch in python. It also has few notebooks explaining the best practices as mentioned by Andrew Ng in the course.
2. Neural Networks from Scratch:
This folder contains neural network written from scratch using numpy and pandas. The visualizations are using Matplotlib.
3. Programming Assignments :
-
The programming assignments folder contains the solutions of the programming assignments given during the course.
-
I recommend to solve them yourself first(u can take help from the algorithms folder).
-
Then you can compare your solution with mine. People with better solutions are welcome to send a pull request.
Submission of Programming Assignments for Grading :
-
The best way would be to clone diberge's repo https://github.com/dibgerge/ml-coursera-python-assignments, and submit your solutions through it.
-
Diberge's repo enables you to submit the assignments in python.
Contributing :
-
You can add new Algorithms, Best Practices and Neural Networks written from scratch in the respective folders. Follow the "fork-and-pull" Git workflow.
- Fork the repo on GitHub
- Clone the project to your own machine
- Commit changes to your own branch
- Push your work back up to your fork
- Submit a Pull request so that I can review your changes
One Friendly Advice
- Play with the code, change values, enjoy the math, experiment and learn along.
Acknowledgements
-
I would like to thank professor Andrew Ng and the crew of the Stanford Machine Learning class on Coursera for such an awesome class.
-
I would also like to thank Gerges Dib for making such a helpful repository, enabling us to submit our programming assignments.