Machine Learning - a subset of Artificial Intelligence.
We use ML to build a music recommender algorithm. Then we persist our data model with the joblib module.
The algorithm we use here is the Decision Tree Classifier from Scikit-learn. A decision tree is a decision support tool that uses a tree-like model of decisions and their possible consequences, including chance event outcomes, resource costs, and utility. It is one way to display an algorithm that only contains conditional control statements. This is an example of alignment.
Alignment refers to a model’s ability to follow user objectives. (Random Forests are a way of averaging multiple deep decision trees, trained on different parts of the same training set, with the goal of reducing the variance.)
The secondary implementation I am using on my Boutique ecommerce dotcom is a Feed Forward Neural network (FNN) with 2 hidden linear layers. A FNN is an artificial neural network wherein connections between the nodes do not form a cycle. As such, it is different from its descendant: recurrent neural networks.
The feedforward neural network was the first and simplest type of artificial neural network (ANN) devised. In this network, the information moves in only one direction - forward - from the input nodes, through the hidden nodes (if any) and to the output nodes. There are no cycles or loops in the network.
These Natural Language Processing (NLP) methods propelling my experimental A.I. Assistant are trained on PyTorch. The data is cached by Redis.
Scikit-learn (with it's package sklearn) is the software ML library with efficient tools for predictive data analysis. It features neural networks and decision trees. Sklearn also boasts classification, regression and clustering algorithms including support vector machines, random forests, gradient boosting and DBSCAN.
It is designed to interoperate with the Python numerical and scientific libraries NumPy, SciPy and matplotlib.
Scikit-learn features 100 to 200 models (called "estimators"), split into 3 categories:
- Supervised Learning (linear regression, support vector machines, random forest, neural nets ...)
- Unsupervised Learning (clustering, PCA, mixture models, manifold learning ...)
- Dataset Transformation (preprocessing, text feature extraction, one-shot encoding ...)
