我已经用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
如果你能分享完整的代码,答案会更清楚。
然而,已经创建了示例代码,以更好地解释。值取决于它的顺序是存在的。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)]
如果还是不清楚,会要求分享完整的代码,以便更好的解释。
希望能回答你的问题。祝你学习愉快。