[英]How to determine the corresponding weight of values in a categorical feature while training a Linear Regression model in tensorflow?
我已经使用 tensorflow 训练了线性回归 model。 我有数字和分类特征。 对于这个例子,其中一个分类特征是“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
Output -
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
Output -
Vocabulary order is : {0, 1}
[VocabularyListCategoricalColumn(key='hasAlt', vocabulary_list=(0, 1), dtype=tf.string, default_value=-1, num_oov_buckets=0)]
如果还不清楚,会要求分享完整的代码以更好地解释。
希望这能回答你的问题。 快乐学习。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.