TomekLinks is a tool that detects a type of link called Tomek's link. A Tomek's link is a link between two samples of different classes, where the distance between the two samples is smaller than the distance between either of the samples and any other sample. In simpler terms, a Tomek's link exists if two samples are each other's nearest neighbors.
------

SET SCHEMA DM_PAL;

DROP TABLE PAL_TOMEKLINKS_DATA_TBL;
CREATE COLUMN TABLE PAL_TOMEKLINKS_DATA_TBL (
    "X1" INTEGER,
    "X2" DOUBLE,
    "X3" DOUBLE,
    "TYPE" INTEGER
);
INSERT INTO PAL_TOMEKLINKS_DATA_TBL VALUES (2, 1, 3.5, 1);
INSERT INTO PAL_TOMEKLINKS_DATA_TBL VALUES (3, 10, 7.6, 1);
INSERT INTO PAL_TOMEKLINKS_DATA_TBL VALUES (3, 10, 5.5, 2);
INSERT INTO PAL_TOMEKLINKS_DATA_TBL VALUES (3, 10, 4.7, 1);
INSERT INTO PAL_TOMEKLINKS_DATA_TBL VALUES (7, 1000, 8.5, 1);
INSERT INTO PAL_TOMEKLINKS_DATA_TBL VALUES (8, 1000, 9.4, 2);
INSERT INTO PAL_TOMEKLINKS_DATA_TBL VALUES (6, 1000, 0.34, 1);
INSERT INTO PAL_TOMEKLINKS_DATA_TBL VALUES (8, 999, 7.4, 2);
INSERT INTO PAL_TOMEKLINKS_DATA_TBL VALUES (7, 999, 3.5, 1);
INSERT INTO PAL_TOMEKLINKS_DATA_TBL VALUES (6, 1000, 7, 1);


DROP TABLE #PAL_PARAMETER_TBL;
CREATE LOCAL TEMPORARY 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 ('THREAD_RATIO', NULL, 0.1, NULL);
INSERT INTO #PAL_PARAMETER_TBL VALUES ('DEPENDENT_VARIABLE', NULL, NULL, 'TYPE');
INSERT INTO #PAL_PARAMETER_TBL VALUES ('METHOD', 1, NULL, NULL); 



CALL _SYS_AFL.PAL_TOMEKLINKS(PAL_TOMEKLINKS_DATA_TBL, "#PAL_PARAMETER_TBL", ?);

