添加线性回归聚合函数 (regr_slope、regr_intercept、regr_r2、regr_count)
作者: s5dsn-eqee创建于 2026年8月29日更新于 2026年9月16日
标签enhancementneeds decision
说明
我提议在极地上添加SQL-标准线性回归聚合函数:
pl.regr slope(y,x)'-x'上`y'最不平方位线性相通的坡度- `pl.regr intercept(y,x)'-拦截合机
- `pl.regr r2(y,x)'-确定系数
pl.regr count(y,x)' -- --y'和`x'均为无核的行数
这些是PostgreSQL、Spark SQL、DuckDB和DataFusion中的标准总和,其中SQL标准参数顺序(依赖变量y' first)和语义:双对不包含; " x " 产量的零差异对坡度/中位/r2无效;y ' 单独产量`r2=1'的零差异。
df. group by("g").agg (中文(简体) ).
p.regr slope("y","x"),
p.regr intercept("y","x"),
p.regr r2("y","x"),
(中文(简体) ).
#并通过SQL接口:
df.sql ("SELECT g, REGR SLOPE (y, x) 从自组从克")为什么它很适合极地
- 极地已经具备了 " pl.corr " / " pl.cov " ,但没有任何回归-形状;今天,用户必须手动写出 " cov(x,y) " / var(x) " (截取/r2的变体更是动词),这容易在无效处理周围出错。
- 执行工作可以重新利用
极地计算 ' (加权 ' 、正-x ' 、正-y ' 、dp-xx ' 、dp-xy'、dp-y')中已经存在的数值稳定的Pearson State ' 瞬间状态 -- -- 这一状态正是所有这些总量的充分统计数据,因此不需要新的内核,流动发动机通过类似于现有的 " Grouped Reduction " 得到充分支持(包括逐个流动)。 - SQL接口免费获得
REGR SLOPE'/REGR INTERCEPT'/REGR R2'/REGR COUNT',提高PostgreSQL的相容性。
PostgreSQL的完整家庭还包括regr-avgx'、regr-avgy'、regr-sxx'、regr-sy'、`regr-sxy';我建议从上述四个方面开始,如果有利害关系,则与其余方面继续联系,因为他们有相同的机制。
我有一个工作实施(引擎,SQL,测试对DuckDB进行了验证),并且很乐意打开一个PR.
内容来源: pola-rs/polars