You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

KDB如何编写高级函数/对象并输出线性回归拟合的结构化结果

KDB线性回归结果结构化输出解决方案

报错原因

你之前构造字典时触发非方形报错,核心是KDB的列表语法规则:

  • 用空格分隔的列表(如(intercept coef))默认要求所有元素为同类型、同长度的同构数据,而intercept是原子数值、coef是系数向量,二者长度不一致,自然构造失败。
  • 包含异构元素的列表必须用分号分隔,写法为(intercept; coef; rSquared)。

修正后的完整代码

同时你原代码中的截距、R²计算逻辑存在适用范围限制,这里也给出标准最小二乘的修正实现:

fit: {
  // 计算回归系数
  coef: enlist[y] lsq flip x;
  // 标准截距计算(原逻辑仅适用于x已提前去中心化的场景)
  intercept: avg[y] - avg[x] mmu raze coef;
  // 计算拟合值与R²
  yPred: intercept + raze[coef] mmu flip x;
  ssRes: sum (y - yPred) xexp 2;  // 残差平方和
  ssTot: sum (y - avg y) xexp 2;  // 总平方和
  rSquared: 1 - ssRes % ssTot;
  // 用分号分隔异构值构造字典返回
  `intercept`coef`rSquared!(intercept; coef; rSquared)
}

配套predict函数实现

返回的字典可以直接传入预测函数调用:

// 预测函数:输入拟合模型、新的x特征数据,返回预测结果
predict: {[model; newX]
  model[`intercept] + raze model[`coef] mmu flip newX
}

// 调用示例
model: fit[x;y]    // 拟合得到模型字典
predY: predict[model; newX]  // 新数据预测

内容的提问来源于stack exchange,提问作者cjm2671

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 10:15:03