Machine Learning vs Programming
- Programming: the implementation of the logic and/or math. You need to know exactly what to do, step-by-step.
- Machine Learning: based on the observations, experiments and statistics. You provide input and output, machine will fill in the blank.
The target, the true, the tagging of positive/negative, good/bad, car/bike/human .
The input variables, the traits that describe the instance or the item.
The instances of the data, each instance is either a combination of the feature vector and the label, as a "labeled example":
or only the features, as an "unlabeled example":
Model and Inference
Model is a "trained" function , which takes a feature vector as input, and outputs an inference .
By comparing inference and label , we can evaluate the performance of the model.
A Typical End-to-end Machine Learning System
- Data acquisition/collection: acquire data from third party, or collect from mobile, browser, devices, sensor, etc.
- Data dictionary/feature store
- Data warehouse
- Data Pipeline(ETL): move data to analytics platform(e.g. a Hadoop cluster)
- Driver Set: define the population of training/testing/validation; append proper meta data for evaluation.
- Feature Engineering: some variables are generated on the fly so can be logged; newly created variables needs to be simulated offline
- Data Sanity Check: check if data is clean and usable.
- Model Building: training and testing ML models
- Online Variable: on-the-fly(velocity), pre-generated lookups loaded in cache(aerospike, ehcache)
- Model Deployment: run models in offline batch mode or deploy to online system for real-time scoring.
- Risk Management And Anti-Fraud
- Precise Marketing: customer profiling, segmentation, and acquisition
- Network Security
- Predict churn
- customer value: predict customer value, identify high value accounts
- inactive account reactivate: predicts the probability that an inactive account will become reactivated
- Image recognition: face recognition, OCR, autonomous vehicle
- Machine translation
- and more...
Machine Learning Tools Abstraction Layers
- declarative ML framework: provides common abstractions for many different model architectures. This enables users to change the underlying model with a single line of code
- lib: tensorflow