Popular Machine Learning Algorithms from Scratch using Python, Numpy.
NOTE: This repository is only meant for understanding of under the hood working of machine learning algorithms. They are not optimized enough compared to sklearn or keras algorithms. Evaluations and comparisons with sklearn and keras will be provided.
-
Multi-layered Perceptron - A basic Neural network
- Layers:
Resembles the Keras architecture. A dense layer has been implemented with an additional parameter of keep_prob. This imitates the keras Dropout() layer. In future this will be separate layer just like in Keras. - Optimzers: Three optimizers including Adam, Momentum and Stochastic Gradient Descent can be used. RMS Prop and Adagrad will be added in future.
- Layers:
-
Support Vector Machine:
Kernel parameters are linear kernel, RBF kernel and the ploynomial kernel. Uses the cvxopt package for the quadratic optimization of the loss function. -
Decision Tree Regressor and Classifier:
Min_depth and Min_smaples parameters for reducing bias and overfitting. Random forest regressor and classifier can also be trained by using n_estimator number of decision trees. -
K-means:
An unsupervised learning algorithm that groups related data based on the number of clusters. -
Convolution Neural Network:
TODO
TODO