【问题标题】:How to determine the corresponding weight of values in a categorical feature while training a Linear Regression model in tensorflow?如何在张量流中训练线性回归模型时确定分类特征中值的相应权重?
【发布时间】:2020-04-03 08:17:47
【问题描述】:

我已经使用 tensorflow 训练了一个线性回归模型。我有数字和分类特征。对于这个例子,其中一个分类特征是“has_Alt”,它的值为 0 或 1。当我尝试获取与此特征对应的权重值时,我得到一个二维向量——[[0.23342037 ] [0.22178642]]。

我如何知道所提供功能中的值 0 和 1 对应的权重。

可能会说第一个是 0,第二个是 1。但是,如果值是绿色和蓝色会怎样。那时我们怎么知道?下面是我如何添加功能的代码 sn-p。

def get_feature_columns(dftrain):
    CATEGORICAL_COLUMNS = ['hasAlt']

    feature_columns = []
    for feature_name in CATEGORICAL_COLUMNS:
        vocabulary = dftrain[feature_name].unique()
        feature_columns.append(tf.feature_column.categorical_column_with_vocabulary_list(feature_name, vocabulary))
    return feature_columns

【问题讨论】:

  • 您好 dhamechaSpeaks,您能否包含其余代码或最小可重现代码?

标签: tensorflow linear-regression tensorflow-estimator


【解决方案1】:

如果你能分享完整的代码,答案会更清楚。

但是,已经创建了示例代码以更好地解释。这些值取决于它在vocabulary 中出现的顺序。

例如:

代码: 如果分类列是绿色和蓝色。

dftrain = {'hasAlt': ['green','blue','blue','blue','blue','blue','green','green']}
CATEGORICAL_COLUMNS = ['hasAlt']

feature_columns = []
for feature_name in CATEGORICAL_COLUMNS:
    vocabulary = set(dftrain[feature_name])
    feature_columns.append(tf.feature_column.categorical_column_with_vocabulary_list(feature_name, vocabulary))

print("Vocabulary order is :",vocabulary)
feature_columns

输出 -

Vocabulary order is : {'blue', 'green'}
[VocabularyListCategoricalColumn(key='hasAlt', vocabulary_list=('blue', 'green'), dtype=tf.string, default_value=-1, num_oov_buckets=0)]

代码: 如果分类列是 0 和 1。

dftrain = {'hasAlt': [1,0,0,0,0,1,1,1]}
CATEGORICAL_COLUMNS = ['hasAlt']

feature_columns = []
for feature_name in CATEGORICAL_COLUMNS:
    vocabulary = set(dftrain[feature_name])
    feature_columns.append(tf.feature_column.categorical_column_with_vocabulary_list(feature_name, vocabulary))

print("Vocabulary order is :",vocabulary)
feature_columns

输出 -

Vocabulary order is : {0, 1}
[VocabularyListCategoricalColumn(key='hasAlt', vocabulary_list=(0, 1), dtype=tf.string, default_value=-1, num_oov_buckets=0)]

如果还不清楚,请分享完整代码以便更好地解释。

希望这能回答您的问题。快乐学习。

【讨论】:

  • @dhamechaSpeaks - 希望我们已经回答了您的问题。如果您对答案感到满意,请您接受并投票。
猜你喜欢
  • 2018-05-03
  • 2015-04-27
  • 2021-03-03
  • 2020-02-11
  • 2016-03-02
  • 2021-11-15
  • 1970-01-01
  • 2021-12-24
  • 2017-11-05
相关资源
最近更新 更多