亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

我們如何從 Keras 線性回歸模型中獲取回歸系數?

我們如何從 Keras 線性回歸模型中獲取回歸系數?

眼眸繁星 2022-12-20 12:05:44
具有 k 個預測變量 X1、X2、...、Xk 和響應 Y 的多元線性回歸模型可以寫為 y = β0 + β1X1 + β2X2 + ··· βkXk + "。我按照此處的教程使用 tf.keras 進行基本回歸。https://www.tensorflow.org/tutorials/keras/regression。是否可以輸出 β 變量以便我可以檢查它們對響應的貢獻?順便說一下,本教程讓您構建的模型看起來像這樣:def build_model():  model = keras.Sequential([    layers.Dense(64, activation='relu', input_shape=[len(train_dataset.keys())]),    layers.Dense(64, activation='relu'),    layers.Dense(1)  ])  optimizer = tf.keras.optimizers.RMSprop(0.001)  model.compile(loss='mse',                optimizer=optimizer,                metrics=['mae', 'mse'])  return model哪里len(train_dataset.keys())是9。
查看完整描述

1 回答

?
楊魅力

TA貢獻1811條經驗 獲得超6個贊

權重存儲在:


model.layers[n].weights

帶有layers列表和n模型中的圖層索引。


在您的示例中,因為輸入形狀是(9,)


>>> len(model.layers[0].weights)

2

>>> model.layers[0].weights[0].shape

TensorShape([9, 64])

>>> model.layers[0].weights[1].shape

TensorShape([64])

為了解釋這些,假設第一層是h = ReLU(Ax+b)用x一個向量計算(9,)然后A是一個形狀矩陣(9,64)和b一個形狀向量(64,),h還有一個形狀向量(64,)。因此,model.layers[0].weights是兩個權重張量的列表[A, b]。


它不是線性回歸。如果你想要它,你需要制作一個更簡單的模型:


def build_model():

  model = keras.Sequential([

    layers.Dense(1, input_shape=[len(train_dataset.keys())])

  ])


  optimizer = tf.keras.optimizers.RMSprop(0.001)


  model.compile(loss='mse',

                optimizer=optimizer,

                metrics=['mae', 'mse'])

  return model

然后,用數據訓練后,model.layers[0].weights[0]會有形狀(9,1),也就是你的 β1, β2, ..., βk; 并且model.layers[0].weights[1]會有形狀(1,),這是你的 β0


查看完整回答
反對 回復 2022-12-20
  • 1 回答
  • 0 關注
  • 167 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號