SparkSQL fourfold table



我实现了一种随机的森林算法来预测某些内容。算法之后的DB表:

id      order       order_forecast
-----------------------------------------------
1       yes         yes
2       yes         no
3       no          yes
4       no          no
5       yes         yes
6       no          yes
7       yes         no
8       yes         yes
9       yes         yes

现在,我想创建某种四倍的表来检查随机森林是否正确。

例如。

       yes             no
   -------------------------------
yes  |  4              2
no   |  2              1

Correct classified: 5
Wrong classified: 4
Accuracy: 55,55%
Error:    44,44%

是否有任何功能或有任何短暂的方法?正如我说的那样,我正在使用浏览器界面,我不知道我正在使用哪个DBM,但是我发现窗口函数正在起作用。

如果您有表格,则:

select order, order_forecast, count(*)
from results r
group by order, order_forecast;

这会产生四行,而不是两行。然后,您可以在应用程序中进行其他计算。

要以特定格式获取数据,然后使用:

select order,
       sum(case when order_forecast = 'yes' then 1 else 0 end) as yes,
       sum(case when order_forecast = 'no' then 1 else 0 end) as no
from results
group by order;

或直接获得正确性:

select order,
       sum(case when order_forecast = order then 1 else 0 end) as correct,
       sum(case when order_forecast = order then 0 else 1 end) as incorrect
from results
group by order;

注意order是列的真正不好的名称,因为它是SQL键字。

相关内容

  • 没有找到相关文章