我有以下示例数据框:
import pandas as pd
df_test = pd.DataFrame({'y_var':[0,0,0,1,1],
'x_c1':[1,2,3,4,5],
'x_c2':[6,7,8,9,9],
'x_p1':[2,2,2,3,3],
'x_p2':[5,6,7,9,9]})
如何y_var
使用stensorflow_probability
的权重x_c
遵循normal
分布和 s 的权重x_p
遵循分布的位置进行简单的线性回归lognormal
?
更新
因此,例如,如果我尝试这个来构建模型:
import tensorflow as tf
import tensorflow_probability as tfp
tfk = tf.keras
tfkl = tf.keras.layers
tfd = tfp.distributions
tfpl = tfp.layers
model = tfk.Sequential([
tfkl.Dense(1),
tfpl.DistributionLambda(lambda t: tfd.Normal(loc=0, scale=1)),
tfpl.DistributionLambda(lambda t: tfd.LogNormal(loc=0, scale=1)),
tfkl.Dense(1, activation='linear')
])
然后这将创建 4 层,最后所有参数都将遵循对数正态,而我只希望x_p
s 权重遵循lognormal