Python 如何在tensorflow概率中运行线性回归,其中参数遵循不同的分布
我有以下示例数据帧:Python 如何在tensorflow概率中运行线性回归,其中参数遵循不同的分布,python,tensorflow,machine-learning,tensorflow-probability,Python,Tensorflow,Machine Learning,Tensorflow Probability,我有以下示例数据帧: 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]
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]})
如果x\u c
s的权重遵循normal
分布,而x\u p
s的权重遵循lognormal
分布,我如何使用tensorflow\u概率对y\u var
进行简单的线性回归
更新
例如,如果我尝试构建模型:
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\u p
s权重遵循lognormal
问题太广泛了,您是否阅读了TFP文档以开始使用它?有一种方法可以作为基础。@jdehesa是的,我已经阅读了TFP文档,我还发现它添加了一个(lambda)层,但我仍然不明白如何将权重“拆分/分离”为两个分布如果您使用TFP层,是的:对不起,我自己没有进一步的经验,所以我在这里真的帮不了忙…@沙漠人不用担心。无论如何,谢谢你的努力