| --------------------------------------------------------------------------- |
| -- Rules: |
| -- ------ |
| -- 1) Any DB objects should be created w/o schema prefix, |
| -- since this file is executed in a separate schema context. |
| -- 2) There should be no DROP statements in this script, since |
| -- all objects created in the default schema will be cleaned-up outside. |
| --------------------------------------------------------------------------- |
| |
| --------------------------------------------------------------------------- |
| -- Test: |
| --------------------------------------------------------------------------- |
| select MADLIB_SCHEMA.svm_generate_reg_data('svm_train_data', 10000, 5); |
| select * from MADLIB_SCHEMA.svm_regression('svm_train_data', 'regs', false, 'MADLIB_SCHEMA.svm_dot'); |
| select MADLIB_SCHEMA.svm_predict('regs', '{1,2,4,20,10}') > 0; |
| select MADLIB_SCHEMA.svm_predict('regs', '{1,2,4,20,-10}') < 0; |
| |
| -- To learn multiple support vector regression models |
| select * from MADLIB_SCHEMA.svm_regression('svm_train_data', 'regp', true, 'MADLIB_SCHEMA.svm_dot'); |
| select pred.prediction > 0 from MADLIB_SCHEMA.svm_predict_combo('regp', '{1,2,4,20,10}') as pred; |
| select pred.prediction < 0 from MADLIB_SCHEMA.svm_predict_combo('regp', '{1,2,4,20,-10}') as pred; |
| |
| -- Score data points stored in a table |
| create temp table svm_reg_test ( id int, ind float8[] ); |
| insert into svm_reg_test (select id, ind from svm_train_data limit 20); |
| |
| select MADLIB_SCHEMA.svm_predict_batch('svm_reg_test', 'ind', 'id', 'regs', 'svm_reg_output1', false); |
| select * from svm_reg_output1; |
| |
| select MADLIB_SCHEMA.svm_predict_batch('svm_reg_test', 'ind', 'id', 'regp', 'svm_reg_output2', true); |
| select * from svm_reg_output2; |
| |
| -- Example usage for classification: |
| select MADLIB_SCHEMA.svm_generate_cls_data('svm_train_data', 10000, 4); |
| select * from MADLIB_SCHEMA.svm_classification('svm_train_data', 'clss', false, 'MADLIB_SCHEMA.svm_dot'); |
| select MADLIB_SCHEMA.svm_predict('clss', '{10,-20,5,5}') > 0; |
| select MADLIB_SCHEMA.svm_predict('clss', '{-10,20,5,5}') < 0; |
| |
| -- To learn multiple support vector models, replace the above by |
| select * from MADLIB_SCHEMA.svm_classification('svm_train_data', 'clsp', true, 'MADLIB_SCHEMA.svm_dot'); |
| select pred.prediction > 0 from MADLIB_SCHEMA.svm_predict_combo('clsp', '{10,-20,5,5}') as pred; |
| select pred.prediction < 0 from MADLIB_SCHEMA.svm_predict_combo('clsp', '{-10,20,5,5}') as pred; |
| |
| -- Example usage for LINEAR classification, replace the above by |
| select * from MADLIB_SCHEMA.lsvm_classification('svm_train_data', 'lclss', false); |
| select MADLIB_SCHEMA.lsvm_predict('lclss', '{10,-20,5,5}') > 0; |
| select MADLIB_SCHEMA.lsvm_predict('lclss', '{-10,20,5,5}') < 0; |
| |
| -- To learn multiple LINEAR support vector models, replace the above by |
| select * from MADLIB_SCHEMA.lsvm_classification('svm_train_data', 'lclsp', true); |
| select pred.prediction > 0 from MADLIB_SCHEMA.lsvm_predict_combo('lclsp', '{10,-20,5,5}') as pred; |
| select pred.prediction < 0 from MADLIB_SCHEMA.lsvm_predict_combo('lclsp', '{-10,20,5,5}') as pred; |
| |
| -- Example usage for novelty detection: |
| select MADLIB_SCHEMA.svm_generate_nd_data('svm_train_data', 10000, 4); |
| select * from MADLIB_SCHEMA.svm_novelty_detection('svm_train_data', 'nds', false, 'MADLIB_SCHEMA.svm_dot'); |
| select MADLIB_SCHEMA.svm_predict('nds', '{10,-5,2,2}') > 0; |
| select MADLIB_SCHEMA.svm_predict('nds', '{-1,-1,2,2}') < 0; |
| |