The content explains different methods for handling missing values in a table. The methods include filling missing values with the mode, mean, median, or a specified value, using a matrix completion model, deleting rows with missing values, or leaving the column untouched. The content also provides a parameter table with optional parameters for customizing the handling of missing values.
------

SET SCHEMA DM_PAL;

DROP TABLE PAL_DATA_TBL;
CREATE COLUMN TABLE PAL_DATA_TBL(
     "ID" INTEGER,
     "X1" DOUBLE, 
     "X2" DOUBLE,
     "Y" DOUBLE
);
INSERT INTO PAL_DATA_TBL VALUES (0,0.5,0.13,0.33);
INSERT INTO PAL_DATA_TBL VALUES (1,0.15,0.14,0.37);
INSERT INTO PAL_DATA_TBL VALUES (2,0.25,0.15,0.36);
INSERT INTO PAL_DATA_TBL VALUES (3,0.35,null,0.35);
INSERT INTO PAL_DATA_TBL VALUES (4,0.45,0.17,0.37);
INSERT INTO PAL_DATA_TBL VALUES (5,null,0.18,0.38);
INSERT INTO PAL_DATA_TBL VALUES (6,0.65,null,0.39);
INSERT INTO PAL_DATA_TBL VALUES (7,0.75,0.19,0.31);
INSERT INTO PAL_DATA_TBL VALUES (8,0.85,0.11,0.32);
INSERT INTO PAL_DATA_TBL VALUES (9,0.95,0.12,0.33);

DROP TABLE PAL_PARAMETER_TBL;
CREATE COLUMN TABLE PAL_PARAMETER_TBL (
    "PARAM_NAME" VARCHAR (256),
    "INT_VALUE" INTEGER,
    "DOUBLE_VALUE" DOUBLE,
    "STRING_VALUE" VARCHAR (1000)
);

INSERT INTO PAL_PARAMETER_TBL VALUES ('FUNCTION',null,null,'EXP'); 
INSERT INTO PAL_PARAMETER_TBL VALUES ('PMML_EXPORT',2,null,null); 
INSERT INTO PAL_PARAMETER_TBL VALUES ('PARTITION_METHOD',0,null,null); 
INSERT INTO PAL_PARAMETER_TBL VALUES ('PARTITION_TRAINING_PERCENT', null,0.5,null);
INSERT INTO PAL_PARAMETER_TBL VALUES ('THREAD_RATIO', null,0.5,null);
INSERT INTO PAL_PARAMETER_TBL VALUES ('HANDLE_MISSING_VALUE',1,null,null); 

DROP TABLE PAL_DATA_MODEL_TBL;
CREATE COLUMN TABLE PAL_DATA_MODEL_TBL(
     "ROW_INDEX" INTEGER,
     "PART_INDEX" INTEGER,
     "MODEL_CONTENT" VARCHAR (5000)
);

DO BEGIN
  data_tab = SELECT * FROM PAL_DATA_TBL; 
  control_tab = SELECT * FROM PAL_PARAMETER_TBL; 
  CALL _SYS_AFL.PAL_UNIFIED_REGRESSION(:data_tab, :control_tab, model_tab, fit_tab, stats_tab, optimal_parameter_tab, place_holder_1_tab, place_holder_2_tab); 
  INSERT into PAL_DATA_MODEL_TBL SELECT * FROM :model_tab; 
END;
