Back to Postgresml

Regression

pgml-cms/docs/open-source/pgml/guides/supervised-learning/regression.md

2.10.010.3 KB
Original Source

Regression

We currently support regression algorithms from scikit-learn, XGBoost, LightGBM and Catboost.

Example

This example trains models on the sklean diabetes dataset. This example uses multiple input features to predict a single output variable.

postgresql
-- load the dataset
SELECT pgml.load_dataset('diabetes');

-- view the dataset
SELECT * FROM pgml.diabetes LIMIT 10;

-- train a simple model on the data
SELECT * FROM pgml.train('Diabetes Progression', 'regression', 'pgml.diabetes', 'target');

-- check out the predictions
SELECT target, pgml.predict('Diabetes Progression', ARRAY[age, sex, bmi, bp, s1, s2, s3, s4, s5, s6]) AS prediction
FROM pgml.diabetes 
LIMIT 10;

Algorithms

Gradient Boosting

AlgorithmReference
xgboostXGBRegressor
xgboost_random_forestXGBRFRegressor
lightgbmLGBMRegressor
catboostCatBoostRegressor

Examples

postgresql
SELECT * FROM pgml.train('Diabetes Progression', algorithm => 'xgboost', hyperparams => '{"n_estimators": 10}');
SELECT * FROM pgml.train('Diabetes Progression', algorithm => 'xgboost_random_forest', hyperparams => '{"n_estimators": 10}');
SELECT * FROM pgml.train('Diabetes Progression', algorithm => 'lightgbm', hyperparams => '{"n_estimators": 1}');
SELECT * FROM pgml.train('Diabetes Progression', algorithm => 'catboost', hyperparams => '{"n_estimators": 10}');

Ensembles

AlgorithmReference
ada_boostAdaBoostRegressor
baggingBaggingRegressor
extra_treesExtraTreesRegressor
gradient_boosting_treesGradientBoostingRegressor
random_forestRandomForestRegressor
hist_gradient_boostingHistGradientBoostingRegressor

Examples

postgresql
SELECT * FROM pgml.train('Diabetes Progression', algorithm => 'ada_boost', hyperparams => '{"n_estimators": 5}');
SELECT * FROM pgml.train('Diabetes Progression', algorithm => 'bagging', hyperparams => '{"n_estimators": 5}');
SELECT * FROM pgml.train('Diabetes Progression', algorithm => 'extra_trees', hyperparams => '{"n_estimators": 5}');
SELECT * FROM pgml.train('Diabetes Progression', algorithm => 'gradient_boosting_trees', hyperparams => '{"n_estimators": 5}');
SELECT * FROM pgml.train('Diabetes Progression', algorithm => 'random_forest', hyperparams => '{"n_estimators": 5}');
SELECT * FROM pgml.train('Diabetes Progression', algorithm => 'hist_gradient_boosting', hyperparams => '{"max_iter": 10}');

Support Vector Machines

AlgorithmReference
svmSVR
nu_svmNuSVR
linear_svmLinearSVR

Examples

postgresql
SELECT * FROM pgml.train('Diabetes Progression', algorithm => 'svm', hyperparams => '{"max_iter": 100}');
SELECT * FROM pgml.train('Diabetes Progression', algorithm => 'nu_svm', hyperparams => '{"max_iter": 10}');
SELECT * FROM pgml.train('Diabetes Progression', algorithm => 'linear_svm', hyperparams => '{"max_iter": 100}');

Linear

AlgorithmReference
linearLinearRegression
ridgeRidge
lassoLasso
elastic_netElasticNet
least_angleLARS
lasso_least_angleLassoLars
orthoganl_matching_pursuitOrthogonalMatchingPursuit
bayesian_ridgeBayesianRidge
automatic_relevance_determinationARDRegression
stochastic_gradient_descentSGDRegressor
passive_aggressivePassiveAggressiveRegressor
ransacRANSACRegressor
theil_senTheilSenRegressor
huberHuberRegressor
quantileQuantileRegressor

Examples

postgresql
SELECT * FROM pgml.train('Diabetes Progression', algorithm => 'linear');
SELECT * FROM pgml.train('Diabetes Progression', algorithm => 'ridge');
SELECT * FROM pgml.train('Diabetes Progression', algorithm => 'lasso');
SELECT * FROM pgml.train('Diabetes Progression', algorithm => 'elastic_net');
SELECT * FROM pgml.train('Diabetes Progression', algorithm => 'least_angle');
SELECT * FROM pgml.train('Diabetes Progression', algorithm => 'lasso_least_angle');
SELECT * FROM pgml.train('Diabetes Progression', algorithm => 'orthogonal_matching_pursuit');
SELECT * FROM pgml.train('Diabetes Progression', algorithm => 'bayesian_ridge');
SELECT * FROM pgml.train('Diabetes Progression', algorithm => 'automatic_relevance_determination');
SELECT * FROM pgml.train('Diabetes Progression', algorithm => 'stochastic_gradient_descent');
SELECT * FROM pgml.train('Diabetes Progression', algorithm => 'passive_aggressive');
SELECT * FROM pgml.train('Diabetes Progression', algorithm => 'ransac');
SELECT * FROM pgml.train('Diabetes Progression', algorithm => 'theil_sen', hyperparams => '{"max_iter": 10, "max_subpopulation": 100}');
SELECT * FROM pgml.train('Diabetes Progression', algorithm => 'huber');
SELECT * FROM pgml.train('Diabetes Progression', algorithm => 'quantile');

Other

AlgorithmReference
kernel_ridgeKernelRidge
gaussian_processGaussianProcessRegressor

Examples

postgresql
SELECT * FROM pgml.train('Diabetes Progression', algorithm => 'kernel_ridge');
SELECT * FROM pgml.train('Diabetes Progression', algorithm => 'gaussian_process');