首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何从python pygam.LinearGAM中提取截取参数

如何从python pygam.LinearGAM中提取截取参数
EN

Stack Overflow用户
提问于 2019-02-26 23:45:59
回答 1查看 1.3K关注 0票数 0

我希望从一个适合与pygam匹配的模型中提取合适的参数。这里是一个可重复的例子。

代码语言:javascript
运行
复制
from pygam import LinearGAM, s, f
from pygam.datasets import wage
X, y = wage()
gam = LinearGAM(s(0) + s(1) + f(2)).fit(X, y)

以下是我尝试过的几件事。

代码语言:javascript
运行
复制
#gam.summary() ## This does not show it.
#gam.intercept_ ## This does not exit.
#gam.terms.info ## This does not contain it.
#gam.partial_dependence(-1) ## This raises an error.

下面是一个尚未实现的相关GitHub问题:https://github.com/dswah/pyGAM/issues/85

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-02-27 00:18:45

TL;DR

  • 默认存储截距作为系数的最后一个,并且可以通过gam.coef_[-1]提取。
  • 可以打印terms属性来验证此行为。
  • 通过导入pygam.intercept并将其包含到您的公式(例如gam = LinearGAM(intercept + s(0) + s(1) + f(2)).fit(X, y))中,您可以更加显式化。

默认行为和条款

默认存储截距作为系数的最后一个,并且可以通过gam.coef_[-1]提取。打印terms属性以验证这一点。

代码语言:javascript
运行
复制
from pygam import LinearGAM, s, f
from pygam.datasets import wage
X, y = wage()
gam = LinearGAM(s(0) + s(1) + f(2)).fit(X, y)
print(gam.terms)
# s(0) + s(1) + f(2) + intercept
print(gam.coef_[-1])
# 96.31496573750117

显式声明拦截

将截距显式地包含在公式中是一个好主意,这样您就不会依赖于截距是系数的最后一个元素。

代码语言:javascript
运行
复制
from pygam import intercept
gam = LinearGAM(intercept + s(0) + s(1) + f(2)).fit(X, y)
print(gam.terms)
# intercept + s(0) + s(1) + f(2)
print(gam.coef_[0])
# 96.31499924945388
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54895945

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档