RumbleML
RumbleDB ML
RumbleDB ML is a Machine Learning library built on top of the RumbleDB engine that makes it more productive and easier to perform ML tasks thanks to the abstraction layer provided by JSONiq.
The machine learning capabilities are exposed through JSONiq function items. The concepts of "estimator" and "transformer", which are core to Machine Learning, are naturally function items and fit seamlessly in the JSONiq data model.
Training sets, test sets, and validation sets, which contain features and labels, are exposed through JSONiq sequences of object items: the keys of these objects are the features and labels.
The names of the estimators and of the transformers, as well as the functionality they encapsulate, are directly inherited from the SparkML library which RumbleDB ML is based on: we chose not to reinvent the wheel.
Transformers
A transformer is a function item that maps a sequence of objects to a sequence of objects.
It is an abstraction that either performs a feature transformation or generates predictions based on trained models. For example:
Tokenizer is a feature transformer that receives textual input data and splits it into individual terms (usually words), which are called tokens.
KMeansModel is a trained model and a transformer that can read a dataset containing features and generate predictions as its output.
Estimators
An estimator is a function item that maps a sequence of objects to a transformer (yes, you got it right: that's a function item returned by a function item. This is why they are also called higher-order functions!).
Estimators abstract the concept of a Machine Learning algorithm or any algorithm that fits or trains on data. For example, a learning algorithm such as KMeans is implemented as an Estimator. Calling this estimator on data essentially trains a KMeansModel, which is a Model and hence a Transformer.
Parameters
Transformers and estimators are function items in the RumbleDB Data Model. Their first argument is the sequence of objects that represents, for example, the training set or test set. Parameters can be provided as their second argument. This second argument is expected to be an object item. The machine learning parameters form the fields of the said object item as key-value pairs.
Type Annotations
RumbleDB ML works on highly structured data, because it requires full type information for all the fields in the training set or test set. It is on our development plan to automate the detection of these types when the sequence of objects gets created in the fly.
RumbleDB supports a user-defined type system with which you can validate and annotate datasets against a JSound schema.
This annotation is required to be applied on any dataset that must be used as input to RumbleDB ML, but it is superfluous if the data was directly read from a structured input format such as Parquet, CSV, Avro, SVM or ROOT.
Examples
Tokenizer Example:
KMeans Example:
RumbleDB ML Functionality Overview:
RumblDB eML - Catalogue of Estimators:
AFTSurvivalRegression
Parameters:
ALS
Parameters:
BisectingKMeans
Parameters:
BucketedRandomProjectionLSH
Parameters:
ChiSqSelector
Parameters:
CountVectorizer
Parameters:
CrossValidator
Parameters:
DecisionTreeClassifier
Parameters:
DecisionTreeRegressor
Parameters:
FPGrowth
Parameters:
GBTClassifier
Parameters:
GBTRegressor
Parameters:
GaussianMixture
Parameters:
GeneralizedLinearRegression
Parameters:
IDF
Parameters:
Imputer
Parameters:
IsotonicRegression
Parameters:
KMeans
Parameters:
LDA
Parameters:
LinearRegression
Parameters:
LinearSVC
Parameters:
LogisticRegression
Parameters:
MaxAbsScaler
Parameters:
MinHashLSH
Parameters:
MinMaxScaler
Parameters:
MultilayerPerceptronClassifier
Parameters:
NaiveBayes
Parameters:
OneHotEncoder
Parameters:
OneVsRest
Parameters:
PCA
Parameters:
Pipeline
Parameters:
QuantileDiscretizer
Parameters:
RFormula
Parameters:
RandomForestClassifier
Parameters:
RandomForestRegressor
Parameters:
StandardScaler
Parameters:
StringIndexer
Parameters:
TrainValidationSplit
Parameters:
VectorIndexer
Parameters:
Word2Vec
Parameters:
RumbleDB ML - Catalogue of Transformers:
AFTSurvivalRegressionModel
Parameters:
ALSModel
Parameters:
Binarizer
Parameters:
BisectingKMeansModel
Parameters:
BucketedRandomProjectionLSHModel
Parameters:
Bucketizer
Parameters:
ChiSqSelectorModel
Parameters:
ColumnPruner
Parameters:
CountVectorizerModel
Parameters:
CrossValidatorModel
Parameters:
DCT
Parameters:
DecisionTreeClassificationModel
Parameters:
DecisionTreeRegressionModel
Parameters:
DistributedLDAModel
Parameters:
ElementwiseProduct
Parameters:
FPGrowthModel
Parameters:
FeatureHasher
Parameters:
GBTClassificationModel
Parameters:
GBTRegressionModel
Parameters:
GaussianMixtureModel
Parameters:
GeneralizedLinearRegressionModel
Parameters:
HashingTF
Parameters:
IDFModel
Parameters:
ImputerModel
Parameters:
IndexToString
Parameters:
Interaction
Parameters:
IsotonicRegressionModel
Parameters:
KMeansModel
Parameters:
LinearRegressionModel
Parameters:
LinearSVCModel
Parameters:
LocalLDAModel
Parameters:
LogisticRegressionModel
Parameters:
MaxAbsScalerModel
Parameters:
MinHashLSHModel
Parameters:
MinMaxScalerModel
Parameters:
MultilayerPerceptronClassificationModel
Parameters:
NGram
Parameters:
NaiveBayesModel
Parameters:
Normalizer
Parameters:
OneHotEncoder
Parameters:
OneHotEncoderModel
Parameters:
OneVsRestModel
Parameters:
PCAModel
Parameters:
PipelineModel
Parameters:
PolynomialExpansion
Parameters:
RFormulaModel
Parameters:
RandomForestClassificationModel
Parameters:
RandomForestRegressionModel
Parameters:
RegexTokenizer
Parameters:
SQLTransformer
Parameters:
StandardScalerModel
Parameters:
StopWordsRemover
Parameters:
StringIndexerModel
Parameters:
Tokenizer
Parameters:
TrainValidationSplitModel
Parameters:
VectorAssembler
Parameters:
VectorAttributeRewriter
Parameters:
VectorIndexerModel
Parameters:
VectorSizeHint
Parameters:
VectorSlicer
Parameters:
Word2VecModel
Parameters:
Last updated