как запустить линейную регрессию по вероятности тензорного потока, где параметры следуют за различными распределениями - PullRequest
2 голосов
/ 01 ноября 2019

У меня есть следующий пример кадра данных:

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

...