The pure logit model has low bias but high variance, meaning that it is not prone to systematic errors but is sensitive to fluctuations in the training data. Overfitting the training data can significantly reduce the accuracy of predictions. To address this issue, the current training procedure incorporates elastic-net regularization, which helps improve prediction accuracy.
------

SET SCHEMA DM_PAL;

DROP TABLE PAL_MCLR_DATA_TBL;
CREATE COLUMN TABLE PAL_MCLR_DATA_TBL (
    "V1" VARCHAR (50),
    "V2" DOUBLE,
    "V3" INTEGER,
    "CATEGORY" INTEGER
);
INSERT INTO PAL_MCLR_DATA_TBL VALUES ('B',2.62,0,1);
INSERT INTO PAL_MCLR_DATA_TBL VALUES ('B',2.875,0,1);
INSERT INTO PAL_MCLR_DATA_TBL VALUES ('A',2.32,1,1);
INSERT INTO PAL_MCLR_DATA_TBL VALUES ('A',3.215,2,0);
INSERT INTO PAL_MCLR_DATA_TBL VALUES ('B',3.44,3,0);
INSERT INTO PAL_MCLR_DATA_TBL VALUES ('B',3.46,0,0);
INSERT INTO PAL_MCLR_DATA_TBL VALUES ('A',3.57,1,0);
INSERT INTO PAL_MCLR_DATA_TBL VALUES ('B',3.19,2,0);

DROP TABLE PAL_PARAMETER_TBL;
CREATE COLUMN TABLE PAL_PARAMETER_TBL ( 
    "PARAM_NAME" NVARCHAR (256),
    "INT_VALUE" INTEGER,
    "DOUBLE_VALUE" DOUBLE,
    "STRING_VALUE" NVARCHAR (1000)
);
INSERT INTO PAL_PARAMETER_TBL VALUES ('MAX_ITERATION',500,NULL,NULL); 
INSERT INTO PAL_PARAMETER_TBL VALUES ('HAS_ID',0,NULL,NULL);  
INSERT INTO PAL_PARAMETER_TBL VALUES ('STANDARDIZE',1,NULL,NULL);

INSERT INTO PAL_PARAMETER_TBL VALUES('ENET_LAMBDA', NULL, 0.01, NULL);
INSERT INTO PAL_PARAMETER_TBL VALUES('ENET_ALPHA', NULL, 0.7, NULL);

DROP TABLE PAL_MCLR_MODEL_TBL;
CREATE COLUMN TABLE PAL_MCLR_MODEL_TBL (		
    "VARIABLE_NAME" NVARCHAR(1000), 
    "CLASS" NVARCHAR(100), 
    "COEFFICIENT" DOUBLE,
    "Z_SCORE" DOUBLE,
    "P_VALUE" DOUBLE
);

DROP TABLE PAL_MCLR_STATISTIC_TBL;
CREATE COLUMN TABLE PAL_MCLR_STATISTIC_TBL ("STAT_NAME" NVARCHAR(256),"STAT_VALUE" NVARCHAR(1000));

DO BEGIN
lt_data = SELECT * FROM PAL_MCLR_DATA_TBL;
lt_para = SELECT * FROM PAL_PARAMETER_TBL;
CALL _SYS_AFL.PAL_MULTICLASS_LOGISTIC_REGRESSION (:lt_data,:lt_para,lt_result,lt_json_model,lt_stat,lt_opt_para);
INSERT INTO PAL_MCLR_MODEL_TBL
SELECT * FROM :lt_result;
INSERT INTO PAL_MCLR_STATISTIC_TBL
SELECT * FROM :lt_stat;
END;

SELECT * FROM PAL_MCLR_MODEL_TBL;
SELECT * FROM PAL_MCLR_STATISTIC_TBL;
