转换目标数据(角度/度),使得1度和359度被类似地处理

时间:2017-11-11 00:17:32

标签: machine-learning neural-network regression

我正在研究预测角度的模型。什么是转换目标的好方法(目前它们采用0到360度的值),以便近似处理相似的角度?我怀疑离开它们,因为它们现在不是最佳的,因为接近360和0的值相似,但具有完全不同的量值。

1 个答案:

答案 0 :(得分:0)

你可以为他们使用正弦和余弦变换!当然,您的模型不会完美地预测它们,因此您需要在预测后重新标准化您的结果。请参阅示例代码:

DROP TABLE some_tab;

CREATE TABLE some_tab (some_id NUMBER, some_date DATE, some_bool NUMBER, some_data VARCHAR2(50));

INSERT INTO some_tab VALUES (001, TO_DATE('11.13.2017', 'MM.DD.YYYY'), 0,  'value 1');
INSERT INTO some_tab VALUES (001, TO_DATE('09.13.2017', 'MM.DD.YYYY'), 1,  'value 2');
INSERT INTO some_tab VALUES (001, TO_DATE('01.01.2017', 'MM.DD.YYYY'), 0,  'value 0');
INSERT INTO some_tab VALUES (002, TO_DATE('06.15.2017', 'MM.DD.YYYY'), 1,  'value 3');
INSERT INTO some_tab VALUES (003, TO_DATE('04.23.2017', 'MM.DD.YYYY'), 1,  'value 4');
INSERT INTO some_tab VALUES (003, TO_DATE('12.13.2017', 'MM.DD.YYYY'), 0,  'value 5');

SELECT * FROM some_tab;

UPDATE some_tab
   SET some_bool = 1
 WHERE rowid IN (SELECT v.r_id
                   FROM (SELECT rowid AS r_id, ROW_NUMBER() OVER(PARTITION BY some_id ORDER BY some_date DESC) AS r_num
                           FROM some_tab) v
                  WHERE v.r_num = 1);

UPDATE some_tab
   SET some_bool = 0
 WHERE rowid IN (SELECT v.r_id
                   FROM (SELECT rowid AS r_id, ROW_NUMBER() OVER(PARTITION BY some_id ORDER BY some_date DESC) AS r_num
                           FROM some_tab) v
                  WHERE v.r_num <> 1);

SELECT * FROM some_tab;