在tensorflow中训练线性回归模型时,如何确定分类特征中相应的数值权重?

问题描述 投票:1回答:1

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

我怎么知道提供的特征中0和1的值对应的权重是多少。

可能很想说第一个是0,第二个是1,但是,如果这些值是绿色和蓝色呢。那我们怎么知道呢?下面是我如何添加特征的代码片段。

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
tensorflow linear-regression tensorflow-estimator
1个回答
0
投票

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

然而,已经创建了示例代码,以更好地解释。值取决于它的顺序是存在的。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)]

如果还是不清楚,会要求分享完整的代码,以便更好的解释。

希望能回答你的问题。祝你学习愉快。

© www.soinside.com 2019 - 2024. All rights reserved.