You need to enable JavaScript to run this app. 使用KerasRegressor构建多重回归模型后如何获取回归系数
优惠活动
大模型
产品
解决方案
定价
更多

使用KerasRegressor构建多重回归模型后如何获取回归系数

提取KerasRegressor封装的Sequential回归模型系数操作步骤

默认你使用的是适配x1、x2两个自变量的线性回归结构(单输出全连接层,无额外隐藏层),操作流程如下:


前置参考(对应你原有模型的典型写法)

from keras.models import Sequential
from keras.layers import Dense
# 新版本Keras回归封装器位于scikeras库,老版本可使用keras.wrappers.scikit_learn下的KerasRegressor
from scikeras.wrappers import KerasRegressor
import numpy as np

# 构建回归模型的函数
def build_reg_model():
    model = Sequential()
    # 输入维度为2对应x1、x2,输出为1个预测值,无激活函数即线性回归
    model.add(Dense(1, input_dim=2, activation='linear'))
    model.compile(loss='mean_squared_error', optimizer='adam')
    return model

# 初始化并训练模型
kr_reg = KerasRegressor(model=build_reg_model, epochs=150, batch_size=8, verbose=0)
# X_train维度为(样本数, 2),两列分别对应x1、x2
kr_reg.fit(X_train, y_train)

系数提取步骤

  • 第一步:从KerasRegressor实例中取出训练完成的底层Sequential模型
# 新版scikeras封装的KerasRegressor使用model_属性
trained_seq_model = kr_reg.model_
# 老版本keras.wrappers下的KerasRegressor替换为下面的代码即可
# trained_seq_model = kr_reg.model
  • 第二步:提取自变量系数和截距项
# get_weights()返回的列表第一个元素为权重矩阵,形状为(2,1),对应x1、x2的回归系数
coef_matrix = trained_seq_model.layers[0].get_weights()[0]
x1_coef = coef_matrix[0][0]
x2_coef = coef_matrix[1][0]

# get_weights()返回的列表第二个元素为偏置向量,对应回归模型的截距项
intercept = trained_seq_model.layers[0].get_weights()[1][0]

如果你搭建的Sequential模型包含多个隐藏层,按层索引layers[层序号]依次提取对应层的权重即可,每一层的get_weights()返回结果的结构均为[权重矩阵, 偏置向量]。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.21 10:24:03