У меня есть следующий пример кадра данных:
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
, используя tensorflow_probability
, где веса x_c
s следуют за распределением normal
ивеса x_p
s следуют за распределением 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