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

KDB中使用BFGS求解线性模型报type错误的原因是什么

问题原因

  • 目标函数参数解析错误:.ml.optimize.BFGS会将待优化参数以单个一维向量的形式传入你定义的误差函数,你传入的初始值x0:1 1是长度为2的向量,对应要拟合的斜率、截距两个参数,但你写的error函数没有正确解构该入参,还用到了未定义的变量y,直接导致类型报错。
  • 误差计算公式逻辑错误:你写的残差计算逻辑(yy - (xx*x) + y)不符合线性回归残差实际值 - 预测值的要求,符号使用错误,正确的预测值应该是斜率*xx + 截距,残差为yy - (斜率*xx + 截距)。

修正后代码

\l ml/ml.q
.ml.loadfile`:optimize/init.q

xx: 9h$til 10
yy: ((xx)*3) + 4

x0: 1 1    
// 先解构入参向量,再计算误差
error:{[params] 
    w: params[0];
    b: params[1];
    sum xexp[yy - (w*xx + b); 2];
}

// 运行优化
.ml.optimize.BFGS[error;x0;();::]

运行后返回的结果会接近你预期的3 4。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 13:15:04