blob: 2e8a4b2dc818e579a60c865ac9935f126c6c2a40 [file] [log] [blame]
---------------------------------------------------------------------------
-- 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;